Limitless Futures Trading on Synfutures Protocol
The explosion of decentralized spot trading on AMMs such as Uniswap and Sushiswap has paved the way for onchain derivatives. Despite Synthetix, one of the biggest derivative protocols being in operation since 2018, its volume is lesser than the younger spot AMMs. Two main reasons for this: most investors in crypto are interested in buying spot(investing) over the more technical futures(trading), and, derivatives traders still prefer centralized exchanges to their decentralized counterparts. With the volume on derivative products trouncing spot volume for most markets, it is expected that today’s onchain derivatives volume will grow to at least spot volume numbers if not more. Another case for derivative products is the ongoing regulatory scrutiny of centralized exchanges. Derivative protocols offer alternative censorship-resistant permissionless access to financial instruments. The strong performance of Perpetual Protocol and Synthetix tokens, the two leading derivative protocols, during the crypto bear market confirms the growing importance of these platforms.
To tap into the demand for cryptocurrency futures, Synfutures has built a decentralized non-custodial futures protocol on Ethereum for anyone to trade from.
Anyone can speculate, hedge or invest on Synfutures’ markets. That’s not all. Anyone can add any market they fancy as long as it has the irreducible minimums including reliable oracle feeds and liquidity unlocking limitless futures trading.
Synfutures currently-running closed alpha is open to the public. Mainnet version will be deployed to Ethereum and Polygon and subsequently Arbitrum in August.
A number of markets will be activated since launch. The community can create additional futures contracts through the Synfutures smart contract defining parameters including contract expiry. More on how to create a futures contract below in the sAMM section.
When fully operational, Synfutures will support a basket of assets including indexes, metals, currencies, cryptocurrencies, and stocks among others. Oracles to be used are Uniswap and Chainlink- two of the most battle-tested solutions on the market. An OracleController contract is going to make it possible to create new oracles for newer markets without reliable oracle solutions.
Traditional futures contracts & Funding
On V1, futures contracts on Synfutures will be similar to traditional contracts with maturity dates. Funding payments are not implemented in Synfutures since the contracts will automatically converge approaching settlement. V2 of Synfutures will include a feature that would automatically carry forward the dates into new contracts mimicking perpetual contracts.
Providing liquidity to the sAMM
Unlike spot AMMs, Synthetix has designed a novel synthetic AMM(sAMM) designed for derivatives trading. There is only one liquidity pool in the sAMM, and unlike Uniswap’s liquidity pool, this AMM has expiry dates preconfigured during creation.
Creating a new futures contract involves creating a liquidity pool on Synfutures with the maturity date set.
Pairs in a liquidity pool in a futures AMM are for the base and quote assets. When a user provides liquidity to a pool(to earns fees rewards) say ETH/USDC, they provide the quote asset, USDC in this case, half of which remains in the quote asset USDC while the other half is used to create a synthetic 1x long on ETH to represent the base asset(fully collateralized of course). In addition, the market contract, also creates a short position equal to the long position to counteract the risk when a user adds liquidity to a pool. Upon adding liquidity, the liquidity provider becomes a pseudo-trader due to the short position initiated, hence they will have to maintain the margin. A user’s share of the liquidity pool is represented by a LP token which is burnt when they redeem their assets from the pool.
The insurance fund rewards liquidators when an account balance is negative. Liquidation in Synfutures is achieved through two mechanisms:
Conventional approach — a liquidator takes over the position of a liquidatable account, and earns some maintenance margin
Automated approach — an initiator, who doesn’t supply any margin, instead uses the liquidity in the AMM, sends a transaction to the smart contract, which autoexecutes the trade.
Trading on Synfutures
There are four contract states on the Synfutures contract:
Normal state when both traders and liquidity providers can access the contract functions fully. Traders can build and unwind positions while liquidity providers can add and remove liquidity.
The contract confirms whether the current state the contract should be in Settling state before processing transactions in trading state. This is done by checking current time against the maturity time defined on the futures contract during creation.
This is activated one hour to predefined contract expiry time. During this period, liquidity providers can only remove but not add liquidity. Similarly, traders can only close positions and neither build nor add positions. This window ensures the contract is settled as close as possible to preset maturity time.
Both liquidity providers and traders claim their funds in that order.
Activated in case of emergency conditions such as oracle hack. Both liquidity providers and traders are unable to interact with the contract during this period until the admin restores trading state.
Expiry dates on liquidity pools with similar base and quote assets are virtually siloed in Synfutures v1.
In V2, cross margin will be enabled.
Settling will occur at 8 am UTC every Friday on V1 for all futures contracts. This will be made more flexible over time.
The design of leveraged products require utmost risk configuration. In addition to derivatives-specific failsafes, Synfutures also implements protective measures meant to reduce the protocols attack surface from vectors such as anti-flashloan attacks and EMA smoothing.
Derivatives’ risk parameters include:
Max price slippage ratio — checks price manipulation due to a single big transaction in a block.
Max initial daily basis — max difference between futures price to spot price.
Max user trade OI ratio — checks total OI from being dominated by a few users.
Min AMM OI ratio — required for both liquidity providers and traders to prevent abnormal slippages.
Max spot index change per second ratio — checks against oracle manipulation.
Synfutures has already raised $14m from VCs. There is no reveal date for the public sale or tokenomics currently.
For more information on Synfutures: you can check out the website here.