sudoswap v2 is a new NFT marketplace protocol designed to support every type of token.
It's live at sudoswap.xyz.
v2 comes with the following features:
- On-chain royalties so that creators automatically get paid when their works are re-sold
- Custom liquidity settings so creators control the market for their assets
- ERC1155 token support so users can swap more types of assets
- Customizable conditions for submitting bids to buy just the NFTs you want
- Fee streaming to automatically claim fees or split them among multiple parties
- Gas optimizations to save when buying, selling, and setting up liquidity pools
On-chain Royalty Enforcement
sudoswap v2 comes with on-chain royalties built into the smart contracts.
If your project inherits ERC-2981 or was minted via Zora, ArtBlocks, SuperRare, Foundation, Known Origin, Rarible, or Manifold, you're already supported. For all other collections, you can use the Manifold’s Royalty Registry to set up your royalty configuration. The sudoswap v2 contracts automatically calculate the royalty amount and send it to your specified recipients on both buys and sells.
This process is entirely on-chain; no need to rely on an off-chain database or an intermediary to set these values.
Beyond royalties, sudoswap v2 introduces Creator Settings, a new type of smart contract with parameters decided by the NFT creator. This feature lets creators offer a reduced royalty in return for a share of trading fees earned by liquidity pools.
How does it work?
If the collection's owner has decided to set up a Creator Setting, liquidity providers can choose to enroll in the Settings program when they create a pool. The pool owner has the option to either pay the full royalty or pay the reduced royalty amount on swaps in that pool and share trading fees with the creator (using whatever split the creator specifies).
Like other components in sudoswap v2, Creator Settings are highly flexible and on-chain. In addition to deciding trading-fee splits, creators can set additional conditions for LPs who want to enroll, such as an upfront fee, or a minimum liquidity-lockup period.
For collection creators, having a Setting means they no longer need to directly manage a pool to benefit from trading activity. For LPs, Creator Settings signal which collections encourage liquidity and allow them to set up trade pools with low spreads.
Just as sudoswap v2 incorporates more control for creators, it also increases flexibility and customizability for buyers and sellers. The smart contracts have been upgraded to support even more asset types, pricing models, and order styles.
v2 adds full support for ERC-1155 assets on a granular ID-specific level. You can now list, bid, sweep, and pool ERC-1155 NFTs in bulk. This unlocks a large new segment of NFTs like Open Editions and game-fi NFTs like Parallel trading cards.
You can now place bids on NFTs matching specific criteria. This could be a specific NFT trait or a range of IDs, or something entirely custom.
sudoswap v2 lets you specify your own custom conditions for fulfilling an order. This enables a wide range of potential applications, from creating private orders to utilizing oracle values to determine which assets or prices you want to buy at.
v2 incorporates fee streaming. Trading pools can now automatically send fees to your wallet after every swap. Pool owners can configure this address. This opens up new avenues like splitting fees by streaming them to a 0xSplits or moneypipe.
Even with all these new features, creating a new pool is now 15-20% cheaper gas-wise in sudoswap v2. Buys and sells are also 5-25% cheaper, depending on the number of NFTs traded. There's also built-in support for gas-efficient partial fills, so your order won't revert even if some items become unavailable when doing a sweep.
The GitHub has links to all the code, licensed under AGPLv3.
The v2 smart contracts have been audited by Spearbit, Narya, and Cyfrin.
The Pair Factory is live and verified at 0xa020d57ab0448ef74115c112d18a9c231cc86000.
The Router is live and verified at 0x090c236b62317db226e6ae6cd4c0fd25b7028b65.