LNFT fee Mechanism
After many back and forth discussions on the LNFT fee mechanism design, we have come to a final decision. The aim of this blog post is to explain the design, as well as the rationale behind the decision.
Quick recap: The only way to mint a LNFT is by permanently locking XFIT tokens. LNFT holders own a share of the swap fees generated by the Xfai DEX. The amount of fees that go to a LNFT depends on the amount of XFIT locked, as well as on the time of the LNFT mint.
After a lot of back and forth, we have decided that the best way to go forward is for LNFT holders to accumulate fees on a pool-basis. This means that a LNFT will accumulate fees for every pool in the DEX. If fees get redeemed, they gets redeemed in terms of a particular pool token. If for example an LNFT redeem their whole share of the ETH pool, they will still get fees accumulated in the other pools. The amount of fees accumulated in other pools, depends on the number and volume of swaps in those pools.
A lot of users asked to receive fees in one particular token (e.g. USDC, or XFIT). There are two reasons why we decided not to implement the LNFT mechanism like that:
- It would be harmful for both the DEX and the LNFT holders. If we picked a stablecoin as the fee token of choice, we would have a constant negative pressure on that pool’s exchange value. That would not be desirable for liquidity providers. Beyond that, the fee mechanism should not have an influence on the impermanent loss of a pool. If all the DEX fees were redeemable from one pool, then that pool would suffer from impermanent loss. The same argument holds true if its an XFIT pool.
- The fee mechanism, though a bit inconvenient UX-wise, is actually better for LNFT holders. Even if a LNFT holder redeems all their fees from a list of top tokens hypothetically, overtime new tokens and gems will be hosted on the DEX. If a new token shows up that performs well, LNFT holders will already have fees in terms of that token accumulated. Having passive “premium access” to any long-tail token, also means having access to any new gem.
Things to keep in mind
The LNFT behaves more like a portfolio of tokens, than a conventional NFT. But with great power, comes great responsibility! 🧐 In Uniswap for example, it is very easy for a malicious actor to create a token pair with a malicious token, which when swapped with, can drain a user’s wallet. Similar attacks can be performed on LNFT holders that are not careful. Since the LNFT is a token, one could host a malicious token on the Xfai DEX, which when redeemed by a LNFT holder, takes away that user’s LNFT. One should therefore not redeem fees from pools that they do not know or trust. It could cost them their LNFT.
This problem could have been easily solved by permanently linking one specific user address to a portfolio (LNFT), but many users, understandably so, wish to have the ability to transfer ownership of the portfolio (i.e. wish to be able to transfer the LNFT to a new address). It is therefore the responsibility of every LNFT holder to manage from which pool’s they wish to redeem, and from which one’s not. The UI of the LNFT redeeming page will only show the top N tokens. If a user wishes to redeem the fees from an unknown token, they will have to click the “select” option and paste the token’s address (see Figure 1.). This is similar to how DEXs UI-wise swaps between unknown tokens. If the token is not listed on the swap page, one has to provide the token address and acknowledge the risks associated with their choice.
XFai develops tooling for the DeFi space, graphing it to build game-changing products. The XFai DEX is set to invite mid and small-cap tokens to start earning APY on their token holdings. We are aiming to become industry-first in providing a more efficient, transparent, and fair way for everyone to get involved at an early stage. The LGE for XFai’s native token, XFIT, was launched on 16th April 2021. We invite everyone to join the DeFi revolution, spearheaded by XFai.
Website | Telegram | Telegram Announcement| Twitter | GitHub