Article by @0xgp_
The information provided in this article does not constitute investment advice, financial advice, or any other sort of advice and you should not treat any of the website's content as such. Do your own research and remember this information is provided for educational purposes only.
Today we are studying an extremely complex protocol, designed by a brilliant team, which could have a significant impact on DeFi.
Today we are studying Primitive
Before cutting to the chase, let me remind you that for some protocols, contracts need to directly interact with external data, such as asset prices which cannot be obtained directly. These contracts therefore call on oracles (or other solutions), such as chainlink, that everyone knows and that allows, among other things, to link a smart contract to external data in a reliable, downtime-free and sustainable manner.
If I start this article in this way, it is because today oracles and more generally price feeds are based on various smarts contracts. It is exactly these that are susceptible to manipulation and this represents one of the biggest attack vectors on the protocols.
The centralisation of oracles and the trust placed in them (often wrongly) could in the future become a real systemic risk for the whole DeFi ecosystem, hence the need to try to find different models.
First of all, Primitive offers a solution that does not require an oracle at all.
But remember that as with any product in DeFi, even more so when they are innovative/experimental products, there are still risks inherent in the ecosystem.
What Primitive also offers is the ability to provide liquidity without Impermanent Loss, or at least to handle the risk associated with IL completely.
Primitive is a Replicated Market Maker (RMM) and aims to become a DEX where liquidity providing is totally redesigned and where options are combined with decentralised exchange to create a totally different model than what we know with Uniswap or Curve.
To quickly compare RMMs to what is currently being done, we can review the different functions :
RMM curves with different implied volatilities will have different costs when swapping. Trading in a higher IV (Implied Volatility) curve will lead to a higher price of the asset being purchased, while trading in a lower IV curve is the opposite.
This will affect the external arbitrageurs who only rebalance pools when it is profitable to do so - there must be a larger profit opportunity in higher IV pools to warrant a rebalance. This has the consequence of affecting the fees that will be generating, as less rebalancing means less fees.
The problem with the current CFMM (Constant Function Market Makers) model used by Uniswap and others, is that liquidity providers cannot adapt their positions or define a different response to the volatility or price variation of the underlying assets. They are therefore subject to IL and lack adaptability on their positions.
However CFMMs facilitate trades between two counterparties, "traders" (users that swap one token for another) and "liquidity providers" (users that make their tokens available for trades to earn fees).
And this is exactly where Primitive comes in, by proposing a CFMM Covered Call.
This allows the liquidity provider to:
- Choose the point at which the impermanent loss begins on their position.
- Bet on volatility and earn more or less trading fees depending on the accuracy of the prediction.
- Earn more fees as the contract expiry time comes closer.
This also allows the liquidity provider to sell options while being a liquidity provider.
In concrete terms, if we look at the advantages compared to Uniswap (xy=k):
- It is possible to set the impermanent loss with the strike price.
- It is possible to concentrate liquidity as with Uniswap V3, but in addition it can be concentrated over time, which is not available with Uniswap.
- The fees are designed to be volatility AND time dependent.
And if we compare it to the Covered Call Options of DeFi (Ribbon for example) we have:
- A product that does not depend on oracles: this reduces risk and can support many more tokens.
- The ability to withdraw assets directly, without having to wait days/weeks.
- A better composability because the underlying assets are directly retrievable.
You will find in this extremely complete "mirror" made by the Primitive team some concrete examples of use :
https://primitive.mirror.xyz/Audtl29HY_rnhN4E2LwnP7-zjDcDGAyXZ4h3QpDeajg
Like Uniswap or Curve which rely on different trading functions, Primitive also aims to become a key hub for trading through the DeFi.
It is by combining options strategies with the existing AMM model that they come up with a product that :
- significantly reduces the risk.
- is a capital efficient model because, yes, unlike all covered call protocols, it is not necessary to wait for expiration to recover assets.
- provides a great deal of flexibility for liquidity providers, who will be able to define the parameters of their LP much better.
At the moment, only the liquidity providers collect fees, no part of which goes to the team.
The protocol has no token yet, but in the future (ποΈ) this model could be the subject of extremely powerful tokenomics. Like Curve, which was able to revolutionise the world of tokenomics with the veModel by proposing a governance token that is not only used to vote but also to take a place in the monetary/issuing policy to encourage the provision of liquidity on this or that token. Or to use one' s tokens to direct the provision of liquidity in a particular range. The possibilities are quite vast and I deplore that $UNI is not a useful token when there is so much to do, if only in terms of revenue sharing.
If it sees the light of day, the primitive token could become a game changer, which I don't doubt for a second given the quality of the team.
As far as the builders are concerned (yes, I'm only talking about them at the end because this is not the point and I'm not doing due diligence to invest), the protocol has been under construction since 2020. In February 2021 the team hacked their own product following the discovery of a critical vulnerability (think what you will, I think it's a good point in terms of decentralisation because there is no backdoor on the contracts but also a good follow-up and monitoring on their part) and they have of course returned the funds to the users.
The team also worked closely (for gas optimisation) with rari team & especially t11 (https://twitter.com/transmissions11) who is probably one of the most competent dev in the ecosystem.
The final word:
This is the first time in months that I've followed a protocol that really tries to redesign what a decentralised exchange can be, as Uniswap has done in the past. It remains an extremely complex product, even at my level where I humbly try to make the content digestible for all, it quickly becomes complicated.
On the other hand, even if the product is very complex, it remains a no-brainer for market-makers. The Primitive team has a real shot at integrating with DEX aggregators (1inch, Paraswap...) that will drive a lot of volume if the product is gamechanger. All this without complicating the user's life.
An exemplary communication with detailed documentation, infographics... will also greatly help future users to understand the ins and outs behind Primitive.
Many thanks to The DeFi Titan and his very comprehensive thread which I recommend you read
https://twitter.com/billionxdev/status/1518978791120379904.
A thread from the same chad to introduce you to options as well:
https://twitter.com/billionxdev/status/1517437847841636353?s=20&t=SRqnIcAvxr1nHsDxPoVLTQ.
A big thanks also to the Primitive team for their content & their extremely detailed documentation. For those who would like to learn more about this protocol, which I have only approached in an idea of introduction, do not hesitate to read:
- https://primitive.xyz/learn
- https://primitive.mirror.xyz/Audtl29HY_rnhN4E2LwnP7-zjDcDGAyXZ4h3QpDeajg
- https://primitive.xyz/whitepaper-rmm-01.pdf
- https://library.primitive.xyz/technical/smart-contracts/overview
- https://primitive.xyz/
- πΊπΈπ¬π§ version by @0x_Groova -