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.
Thales AMM Mechanism
Thales' AMM uses the Black–Scholes algorithm to derive a realistic price for each Positional Token available within a Positional Market.
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
metrics 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:
- Minimum price impact possible on a derived price for a trade using Thales AMMmax_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.
UNDERSTAND THE RISKS
If your purchased Positional Tokens do not win on Market Maturity, they are deemed worthless (your losing positions are worth 0).
The Thales AMM accepts BUYS and SELLS at all times for individual markets, with exceptions when certain configurable limits have been reached.
There might be instances where your Positions you've purchased can’t be sold back to the AMM and you have to wait for Market Maturity to finalize your positions.
Thales AMM on-demand liquidity limits:
Odds pricing limit: The AMM only offers liquidity if the Implied Odds of a position are between 8% and 95%, or in other words if UP and DOWN token prices are between $0.08 and $0.95 (see TIP-107 for specifications). If the market movement takes these metrics outside of the specified range, the AMM stops offering liquidity for the respective market.
Time limit: The AMM only offers liquidity for a specific market until 24 hours before Market Maturity. After the market crosses the 24rth hour before maturity, the AMM stops offering liquidity for that market.
Cap limit: The AMM only offers liquidity for a limited amount of UP, DOWN, IN and OUT tokens for specific markets based on the amount of risk the AMM takes on from a specific market.
Exercising your winnings is not influenced by the current AMM liquidity in any way!
Your winning Positional Tokens will always be redeemable for USD winnings on Market Maturity!