Solidly: An Updated Iteration on AMM Functionality and Mechanism Design
Solidly is an automated market maker (AMM) built on Fantom that enables low cost, near zero slippage trades for both highly correlated and uncorrelated digital assets. Unlike most AMMs, its mechanism design is focused on incentivizing fee generation rather than just simply incentivizing liquidity provision itself. This helps Solidly to improve some of the current issues within the AMM space, including fee distribution, liquidity mining, and bootstrapping. Solidly iterates on existing AMM frameworks such as boosted rewards, bribes, and vote-escrow tokens, and also preserves popular features like flashloan proof time-weighted average price (TWAP) while developing novel ones of it own, including upkeep-free TWAP and flashloan-proof quoting.
The AMM ecosystem is highly saturated and competition amongst protocols is intense. Two key problems in which nearly all AMMs share are around core functionality and mechanism design. In terms of the former, transactions can be quite expensive and users are not sufficiently protected against slippage. As a result, users can often encounter high transaction costs when executing larger orders. Moreover, most AMMs do not offer adequate coverage for both highly correlated digital assets like stablecoins (e.g. $USDC-$MIM) and uncorrelated assets (e.g. $FTM-$AVAX). So users must navigate between different protocols when executing different trade types in order to optimize pricing.
In terms of the underlying mechanism design of AMMs, most protocols tend to focus almost exclusively on incentivizing liquidity provision. That is, liquidity providers (LPs) are incentivized to provide liquidity and earn rewards, usually in the form of token emissions, in return. The result is that LPs are incentivized to simply provide liquidity to a given pool and are not necessarily incentivized to facilitate transactions or optimize protocol revenue. A more effective path forward, however, may be to align emissions to incentives.
To account for the shortcomings of existing AMM functionality, Solidly natively supports swaps between uncorrelated assets and closely correlated assets. This is designed to improve upon Curve’s stable swap mechanism while adding additional functionality to non-stables. Interestingly, Solidly was designed to implement a 0.01% fee for stable swaps, whereas Curve’s fee is approximately 0.04%. Paired with sufficient liquidity and low slippage, this positions Solidly to be able to compete directly in the space of stable swaps.
In addition, Solidly iterates on popular AMM features, many of which are derived from Uniswap V2 such as a flashloan proof TWAP function, and has developed its own novel additions along the way. Two particularly interesting new features are the upkeep-free TWAP in which no additional user maintenance is required, enabling users to quote directly from the pair, and flashloan proof reserve quoting. These improvements give users more flexibility and functionality, and help Solidly differentiate itself amongst AMMs. One other design worth noting is that fees are paid out in base assets, not converted. While subtle at first glance, this potentially boosts the liquidity of the converted assets and reduces the liquidity around the base asset (i.e. the base asset is getting sent to the AMM’s treasury, not the converted asset).
To iterate on existing mechanism design, Solidly focuses on aligning emissions to incentives in a way that is sustainable and that accounts for possible incentive-gaming, such as wash trading. In short, Solidly directs the most incentives (i.e. emissions) to the liquidity pools with the highest fees and users only receive fees from the pool that they vote for. This helps eliminate cases in which users can earn incentives through poorly performing pools. For instance, on Curve $veCRV token holders receive 50% of all fees, regardless of which pool they voted for the emissions to be distributed to. So they could vote to send emissions to a pool that generated 0 fees for the protocol yet they still earn the reward of the fees generated by more active pools.
Tokenomics and Mechanism Design
Solidly is composed of two tokens to manage its utility and governance. $SOLID is the protocol’s native utility token and is used for rewarding LPs in the form of fees they have earned through liquidity provision, rather than for simply just providing liquidity. This creates a positive feedback loop around liquidity provision and trading volume. So the more fees generated (i.e. the more protocol revenue) the more LPs stand to benefit as they receive some portion of the total amount generated. Overall, there is a total supply of 100,000,000 tokens, with emissions being distributed on a weekly basis.
$veSOLID is the vote-escrowed token of the protocol, a DeFi primitive pioneered largely by Curve. Similar to Curve’s $veCRV token, $veSOLID functions primarily around governance, gauge rewards, and gauge voting. It also serves as a reward booster, as LPs that hold $veSOLID receive 40%-100% of the reward. $veSOLID is non-transferable and can only be obtained by locking $SOLID for a specified amount of time. Users receive more rewards the longer they lock their tokens, which helps keep value locked within the protocol.
So users that own $SOLID that wish to participate in governance and receive a share of the revenue generated by the protocol can lock their $SOLID tokens for a given amount of time and begin to receive $veSOLID. This time lock can last as short as six months or as long as four years. Once a $SOLID token lock is created, a user will begin to earn $veSOLID tokens and can then vote on different gauges to receive trading fees from the gauges that the user has voted for. The following is a general overview of the different time lock based rewards:
- Four Year Lock: 1 $SOLID = 1 $veSOLID
- Two Year Lock: 1 $SOLID = 0.5 $veSOLID
- Six Month Lock: 1 $SOLID = 0.125 $veSOLID
Similar to Curve’s vote-escrow token design, a user’s $veSOLID balance decays linearly over time and must be actively renewed to avoid decay. Although this is not a novel mechanism, it does help keep constant locking pressure on $SOLID tokens. Once the given time lock expires, then the original $SOLID deposit can be withdrawn from the smart contract.
Another iteration on existing vote-escrow token models is that Solidly actively attempts to mitigate dilution of existing early $SOLID lockers through the concept of ve(3,3). This is essentially a game theoretic application intended to keep lockers staked for longer periods of time and is accomplished through the provision of emissions. In short, $SOLID lockers also receive a share of $SOLID emissions, based on the circulating supply (i.e. total $veSOLID supply/ total $SOLID supply). As more token holders lock, therefore, less $SOLID rewards are distributed to LPs.
The other core designs of Solidly are around trading fees, emissions, reward boosting, and bribes:
Trading Fees: All trading fees generated on Solidly go to users that voted for the gauge attached to a given liquidity pool. This approach creates a powerful incentive whereby liquidity pools that generate the most fees will also attract the more voters and thus the more $SOLID incentives.
Emissions: LPs receive LP tokens that they can then use to stake into a guage attached to that specific liquidity pool. In turn, LPs begin to receive $SOLID emissions. Each week, $SOLID emissions are distributed (at a 2% decay rate) so LPs are incentivized to participate early on. $veSOLID token holder decide which LPs receive these emissions. So overall, participants have the discretionary power to determine which pools in specific will receive $SOLID emissions reward. The underlying assumption of this mechanism is that those vested in the network will be able to discern which pools are best (i.e. generate the most fees) and therefore will direct emissions rewards in those directions. This helps direct on-chain liquidity in a more hands-on way. The trade off, however, is that users may incorrectly allocate resources. Having the power to dictate which pools are to receive SOLID emissions is extremely valuable for protocols that wish to deepen their on-chain liquidity. It’s equally important for $veSOLID, who have an interest in directing emissions towards pools that will net the most fees for themselves.
Boosting: Token lockers have essentially two core functions: (1) deciding where $SOLID emissions are distributed top of deciding where SOLID emissions should go, and (2) boosting their $SOLID rewards by increasing their $veSOLID balance. Overall, a user could receive a boost of 2.5x to their $SOLID rewards.
Bribes: Solidly natively supports gauge bribes and automatically adjusts them according to user votes. In addition to traditional bribes, which allows a protocol to expand their on-chain liquidity by bribing voting-escrow token holders to vote in a specific way (e.g. Convex bribing $veCRV token holders), Solidly has developed the concept of “negative voting” in which users can attempt to prevent emissions from going to a pool. So Solidly allows any user to permissionlessly attach bribes onto a gauge as well as to participate in negative voting to prevent a particular pool from receiving emission rewards.
Currently Solidly has approximately $1.3B in TVL, and was able to amass over $2B in TVL shortly after its launch on 2/24/22.
Since its initial launch in late February, $SOLID has stayed coupled with $BTC and $ETH, mirroring essentially every major price movement. As more emissions are deployed, rewards are generated, and more users ultimately are drawn to the platform to generate protocol revenue, there is potential for some decoupling, particularly in the short-term.
Another interesting area is $SOLID distribution. While the protocol is relatively new and emissions are distributed on a weekly basis, the top 10 wallets account for roughly 90% of token supply. It might be useful to monitor over the next few months as the protocol establishes itself within the AMM space, user activity on the Fantom network grows, and $SOLID goes through price discovery. Perhaps most importantly, it will help test the ve(3,3) application and determine whether or not user end up holding tokens or selling them on the secondary market.
Cryptofunds, market makers, and trading desks can engage in DeFi and Web3 with MetaMask Institutional
MetaMask Institutional offers unrivaled access to the DeFi ecosystem without compromising on institution-required security, operational efficiency, or compliance requirements. We enable funds to trade, stake, borrow, lend, invest, and interact with over 17,000 DeFi protocols and applications.
Found this research useful? Connect with the ConsenSys Cryptoeconomic Research team at [email protected]
Disclaimer: ConsenSys Software Inc. is not a registered or licensed advisor or broker. This report is for general informational purposes only. It does not constitute or contain any individual investment advice and is made without any regard to the recipient’s objectives, financial situation, or means. It is not an offer to buy or sell, or a solicitation of any offer to buy, any token or other investment, nor is it intended to be used for marketing purposes to anyone in any jurisdiction. ConsenSys does not intend for any person or entity to rely on any facts, opinions, or ideas, and any financial or economic commentary expressed in this report may not be relied upon. ConsenSys makes no representations as to the accuracy, completeness, or timeliness of the information or opinions in this report and, along with its employees, does not assume any responsibility for any loss to any person or entity that may result from any act or omission based upon this report. This report is subject to correction, completion, and amendment without notice; however, ConsenSys has no obligation to do so.