Thales AMM Design
To offer guaranteed liquidity and negate the shortcomings of the Constant Function Market Maker (CFMM) model, Thales has built a completely novel AMM (Automated Market Maker) contract tailored specifically to offer users on-demand liquidity of Positional Tokens from Positional Markets in the trading phase.
For crypto markets, Thales AMM uses a Black–Scholes pricing algorithm in combination with spread and price impact logic to derive an accurate price for each UP, DOWN, IN and OUT ERC-20 token which is ultimately based on the odds of success for each outcome.
The Thales AMM algorithm uses the following data inputs to price Positional Tokens:
- Current Asset Price - Chainlink provided price feeds
- Distance to Strike Price - Current distance to Strike Price precondition set on Market Creation
- Distance to Strike Date - Current distance to Strike Date precondition set on Market Creation
- Implied Market Volatility - Current Implied Volatility of an asset is manually updated for each contract on a daily basis until Chainlink Implied Volatility feeds are available on-chain. BTC and ETH Implied Volatility numbers are derived from Deribit's Orderbook
Ask IVmetrics for the nearest Friday expiries. Any other offering's Implied Volatility is derived by superimposing the Implied Volatility of ETH on a difference of 15 Day Historical Volatility between ETH and the asset in question.
In addition to these inputs, the Thales AMM also uses novel inputs to offset the risk the AMM takes on when offering on-demand liquidity on both ends of a Positional Market. These inputs are:
min_spread- Minimum price impact possible on a derived price for a trade using Thales AMM
max_spread- Maximum price impact possible on a derived price for a trade using Thales AMM (in case a trade depletes all liquidity for a certain side of the AMM)
These last two parameters introduce a Skew mechanism that serves as an incentive to keep the AMM liquidity balanced between UP and DOWN sides of a market. The Skew makes "overbought" Positional Tokens more expensive than the opposite side of the market, keeping the AMM in balance and unexposed to the risk of a market maturing in an unfavorable direction for the AMM.
Additional safety mechanisms that are introduced are Cap per Market and Price Range Limits.
- Risk Cap per Market is introduced for the first iteration of the AMM to keep the AMM's exposure to individual markets limited. It is denominated in how much USD per market the AMM is risking.
- Price Range Limits are set to a range between 0.08 USD <-> 0.95 USD per Positional Token to avoid potential edge cases in large market swings and front-running instances.
Important disclaimer: AMM trading is disabled 24 hours before a Market matures since the pricing algorithm cannot provide optimal results in such short timeframes up until Market Maturity. This could lead to potential front-running opportunities and edge-case exploits.
The Thales AMM uses a single liquidity pool to support multiple individual markets with on-demand liquidity. The risk cap and skew impact allows the AMM to market-make in units of risk rather than token prices. This means that the AMM has theoretically unlimited capital efficiency so long as the risk exposure of a pool remains within the risk cap.
Tip-51 introduced discounted positions on skewed markets. Discounted positions incentivize traders to balance the AMM's exposure to overbought positions by offering a discount to the calculated price for a position that is underbought. These discounts are available for markets on all supported chains, including Optimism, Arbitrum, Polygon and BNB Chain.
Discount (if available) is included next to ROI for each strike price
Discounted positions provide a maximum discount of up to 10% for underbought positions. For example, if UP is overbought then the DOWN side of the market is discounted.