About the NFT fractionalizer primitive
An NFT Fractionalizer allows users to transform a non-fungible token into fractional tokens. Fractionalizing has been used to allow fractional ownership of popular NFTs, among other things. On Shell, you can use an NFT Fractionalizer to simply swap one NFT for any other NFT in the pool. A Fractionalizer is also a necessary component of an NFT AMM.
The Proteus AMM Engine only works with assets that are considered interchangeable, or fungible. In order to use Proteus, we need to temporarily “fungibilize” the NFTs. This is something you’d only do to an NFT if you consider its value equivalent to any other NFT in the set.
In other words: DO NOT put rare NFTs into a Fractionalizer! It only makes sense to use common NFTs, aka “floor” NFTs, since these all have similar value.
The FractionalizerFactory contract includes a mapping that associates each NFT collection with a fractionalizer contract address. This mapping is used to ensure that there are no duplicate deployments of Fractionalizers for the same NFT collection.
Users can invoke the
deployfunction to deploy a new Fractionalizer by providing the address of the Ocean contract, the address of the NFT collection, the exchange rate (the number of fungible tokens exchanged for one NFT), and a boolean value indicating whether the NFT collection is an ERC-721 or ERC-1155 contract.
getFractionalizerfunction can be used to retrieve the address of the Fractionalizer contract associated with a specific NFT collection.
The Fractionalizer primitive is responsible for facilitating the exchange between NFTs and its fractional tokens. It can be queried for all the relevant information, including the NFT collection address, the exchange rate, the Ocean ID of the fungible token, and the supply of fungible tokens.
For example, the Toucan Fractionalizer is a pool that holds shToucans. If you give it a shToucan, it will mint you 100 Toucoin. If you give it 100 Toucoin, you can withdraw any Toucan in the pool. The fractionalizer does not care which Toucan you give or take. Regardless of whether your Toucans are common or extremely rare, all Toucans are exchangeable for the same 100 Toucoin.