THALES stakers now able to provide liquidity for Overtime’s sports AMM
Today we got some pretty exciting news related to the execution of the long-awaited TIP-99, and the novel mechanism proposed to scale Overtime’s sports AMM (Automated Market Maker) to efficiently accommodate bigger trades on both Optimism and Arbitrum.
We highly recommend you read the full blog post before jumping in, so you can better understand what providing liquidity entails, how the mechanism works, and how you can calculate how much stablecoin collateral you are able to deposit.
Let’s get into it!
TIP-99 motivation and a brief explanation
Since the debut of Overtime (DeFi’s first decentralized sports markets platform based on the Thales AMM infrastructure) on July 2022 (almost exactly 8 months ago) the premise has been to iteratively expand its offering in terms of supported leagues (now around 20!), have sharp and reliable odds, and be able to accommodate larger positions with competitive fees and enough liquidity to support it.
In the beginning, Overtime AMM was fully seeded by Thales DAO treasury with 100k sUSD on Optimism, and given its capital-efficient mechanism (that fully collateralizes every position taken on a given sports market) it’s been able to facilitate over 8.7m USD in trading volume, reaching a PnL (without counting any protocol fees) of around +230k USD (at the moment of writing this post), and sustaining it in the positive side for the last 3 months (after committing to only support high-liquidity sports and incorporate changes from TIP-114).
You can check all these stats in Overtime’s dune dashboard for Optimism.
This is where TIP-99 comes into place, as it was the missing piece that would let the liquidity used by the Overtime AMM have a controlled and iterative expansion, open it up to those interested in participating, and at the same time allow bigger trades against the AMM with better quotes (less affected by position size) on both Optimism and Arbitrum.
What does it mean to provide liquidity in the AMM?
Well, basically participant funds (stablecoins, sUSD in the case of Optimism, and USDC in Arbitrum) deposited in the Sports AMM will be used as collateral for all positions bought on the Overtime dapp through Overtime’s sports AMM for that specific chain.
Take into consideration that this deployment is decoupled in terms of staking allowance per chain:
If you stake THALES on Optimism you’ll be able to provide liquidity (in sUSD) on that chain, and if you stake THALES on Arbitrum you’ll be able to provide liquidity (in USDC) there.
There are 3 main things you should know about providing liquidity:
- Allowance based on the amount of THALES staked
- Weekly round-based system
- Deposit and withdrawal mechanics
We’ll go one by one.
Allowance based on THALES staked
Every THALES token staker will have a capped allowance on how much they can provide liquidity based on the amount of THALES tokens they are staking. The ratio between this allowance and the amount of THALES staked will be controlled by a variable called
This multiplier represents how much sUSD or USDC you are allowed to deposit into the AMM for each 1 THALES token staked.
The currentstakedThalesMultiplier value (as per TIP-99) is
0.1, meaning that you can deposit 1 sUSD (or USDC) per 10 THALES staked. More THALES can always be staked to increase one's sUSD or USDC deposit allowance respectively.
You are not able to unstake your THALES while you are providing liquidity into the sports AMM. If you wish to unstake your THALES you have to withdraw funds from the Sports AMM first.
If you need a step-by-step guide on how to deposit or withdraw please check the documentation here.
Weekly round-based system
The Overtime’s sports AMM work in 7-day rounds, so liquidity providing (and its performance) will also be calculated according to these rounds.
The deposited sUSD (or USDC in the case of Arbitrum) will be used to collateralize the sports AMM on a weekly round basis. A single game market can only belong to one round, which is defined based on the maturity date of the market (when a game ends).
When a round ends, the sports AMM performance from all markets in that round is summed up, and allocated to all liquidity providers proportional to their share of the pool.
Deposit and Withdrawal mechanics
Participants can deposit at any time during any 7-day round.
The deposited funds will be utilized as collateral in the Sports AMM starting with the next round from the time of depositing.
Funds roll over to the next round automatically until a withdrawal is signaled. So, if you don’t want to stop providing liquidity you can leave your deposit inside the contract. No extra tasks are needed.
Participants can signal a withdrawal at any time during any round.
The funds that are signaled for withdrawal will be unlocked at the start of the next round from the time of signaling.
It’s important to note that initially the maximum amount to be deposited into the sports AMM, as per TIP-99, is 200,000 sUSD on Optimism, 200,000 USDC on Arbitrum, and a maximum of 100 users allowed per chain. These numbers allow for expanded liquidity and were chosen as a first step and will be iteratively raised depending on AMM performance by the Thales DAO governance.
Providing liquidity exposes you to various risks including potential losses due to users winning against Overtime’s AMM on any given round, as well as smart contract security risks. Also please be aware that the past performance of the AMM cannot predict future performance. Please make sure you understand these risks before depositing.
Time for an example
So, do you need an example of how depositing into a Round works? Let’s get it!
We’ll use the basis of the same example presented on TIP-99:
- Participants deposit 100,000 sUSD for Round 1 on Optimism and then the round is started.
- Round 1 starts on the 14th of March with 100,000 sUSD. If you provided 1000 sUSD your share is equal to 1% of the deposits.
- Round 2 receives $20k of new deposits (while Round 1 is ongoing).
- Round 1 ends with a total of 110,000 sUSD in the AMM. Your balance is now 1,100 sUSD entering Round 2.
- The total in Round 2 at the start (one week after Round 1 started, March 21st in this example) is 130,000 sUSD. Your share now is 1100*100/130000 = 0.84615% of the deposits.
- During Round 2 a trade is made on a market that belongs to Round 3 for an amount of 100 sUSD.
defaultLiquidityProvider(all participant’s deposits) seeds the 100 sUSD and thus becomes a depositor for Round 3.
- Let's assume Round 2 had 0 PnL so the whole 130,000 sUSD is carried over. The total deposited into Round 3 when it starts is now 130,100 sUSD and your share is 1100*100/130100 = 0.8455% of the deposits.
Clear enough? If not, we highly suggest you read the documentation for a more comprehensive review. We’ll also be more than happy to answer your questions in Thales Discord.
This release’s pretty exciting as it’s been one of the longest from inception to execution (around 5 months) given all the factors that needed to be researched, tested, and ultimately incorporated into it.
For this same reason, we wanna remind you that providing liquidity exposes you to various risks including potential losses due to users winning against Overtime’s AMM on any given round, as well as smart contract security risks. Also please be aware that the past performance of the AMM cannot predict future performance. Please make sure you understand these risks before depositing.
Thales protocol (and the products built on top, like Overtime) keep evolving and pioneering decentralized solutions to bring the benefits of open finance (and open markets) to everyone who needs it around the world.
We would be happy to answer any questions, doubts, or feedback/comments in the Thales Discord.