Sudoswap is a decentralized exchange for NFTs. It is built on top of Uniswap and uses the same smart contracts. It is a fork of Uniswap, but with a few modifications to support NFTs.
- Create a pool for any NFT (NFT/ERC20, ERC20/ERC20, NFT/NFT)
- Trade NFTs
- LP provider
- Trader
- NFT project (launching a pool)
- Uses of the minimal proxy pattern (EIP-1167)
- For math calculation, Curve uses the FixedPoint library from solamte repo
Sudoswap invented the sudoAMM algorithm to support NFTs. The algorithm is based on the AMM algorithm, but with a few modifications to support NFTs.
In the classic product contant invariant, the liquidity is distributed over the entire range of potential prices (from 0 to infinity). As a result, LPs do not need to rebalance their liquidity. On the other side, a pool cannot be drained from on or the other asset (price will reach inifinity making it impossible to drain). For NFT, this doesn't seem like an option.
The sudoAMM introduces 2 different invariants:
- Linear: Each time someone trades with a pool with a linear curve, the pool's pricing will be shifted by a fixed amount.
- Exponential: Each time someone trades with a pool with an exponential curve, the pool's pricing will be multiplied by a fixed amount.
Result: better pricing and possibility to deflate a pool (very similar to uniswap v3).
No governance for now. The project is still in its early stage.
- Create arbitrage opportunities with OpenSea. A pool created might introduce a floor price higher than the current price on OpenSea. So buying from OpenSea and selling to the pool will create an arbitrage opportunity.
- Analytics tools (price, volume, liquidity, etc. per Collection or LP)
- Connect NFTLender with sudoswap for
- getting the price of a NFT
- liquidating by selling it (potentially only allow lending to collections with a pool).
- Rarity not taken into consideration