Fractional is a protocol for splitting the value of a single NFT across many accounts. In its first 2 months it has created $450 million of fractionalized liquidity from NFTs.
The protocol follows these steps:
- An account tells the protocol to exchange their NFT for ERC20 tokens. They specify a name and symbol for the ERC20, the number of ERC20 tokens to mint, and a reserve price for the NFT.
- The owner is now referred to as a curator, and should distribute the ERC20 tokens (usually by putting it on a DEX like Uniswap)
- ERC20 token holders vote to update auction's reserve price
- After sufficient voting to negotiate price, bidding starts in an auction to purchase the NFT
- After the auction ends, ERC20 holders can cash out by exchanging their tokens for ETH from the sale
- The original owner gets a curation fee through an innovative inflation model
- ERC20 holders should cash out as soon as the auction closes, to prevent dilution from curator-fee inflation.
- The protocol is currently governed by a 3-5 Gnosis Safe multisig and is not taking any governance fee, but this is subject to change.
The rest of this essay breaks down the Fractional's technical components: how NFTs become ERC20 tokens, how voting, auctioning, and cashing out works, and how governance is structured.
Exchange an NFT for ERC20 Tokens
The game starts when the NFT owner creates a TokenVault, which is both an auction and an ERC20 token. This happens through a special factory contract that transfers the NFT into the TokenVault.
The original NFT owner becomes the curator of the auction, and can specify the initial reserve price and the number of ERC20 tokens that will exist. The curator receives all of these ERC20 tokens, and will need to distribute them manually (e.g. on Uniswap).
The Fractional UI integrates with Uniswap (yay integration!), which will allow end users to purchase the ERC20s directly from their website.
The auction runs for 7 days by default, but can be set by the curator to a minimum of 3 days and a maximum of 2 weeks.
With each block, the total supply will inflate by a small percentage set by the curator, and the curator can claim these tokens. The token supply can also inflate by a percentage set by the protocol's governance, and these tokens go to an address controlled by governance (this address will receive ERC20 tokens for all NFTs that are fractionalized) - but the governance fee is currently set to 0%. Anyone can call the function that mints and distributes these tokens to the curator and governance address.
Auctioning the NFT
Once the ERC20 tokens are distributed, participants vote on the reserve price of the auction, with 1 vote per token. When 50% of more of the tokens have voted on the price, then bidding can start on the auction.
When the auction is won, the NFT is transferred to the auction winner, and the ETH sits in the vault. ERC20 tokens can then be exchanged for this ETH.
Once the auction is complete, the token holders can cash out by burning their ERC20 tokens in exchange for the ETH from the auction sale. There is an incentive to cash out as early as possible, otherwise the curator fee will inflate the ERC20 supply over time and dilute the value of the other holders.
The Fractional protocol gives a 3-of-5 multisig authority all parameters of the protocol. In the early days of the protocol, this is a good way to structure governance, because it allows a small group to take quick action to improve operation. In the long run, governance and ownership should decentralized to a group of users (via airdrop to early users?), which will slow modifications to the protocol’s functionality.
Most of the accounts on the multisig are anonymized via Tornado cash, except for @john_c_palmer who is using an account linked to his other web3 accounts. This creates a small target for him if Fractional continues to grow quickly - but hopefully they can decentralize governance before that becomes a problem.