- User locks ERC721 and mints ERC20 tokens representing fractional NFT ownership - User creates an auction for the NFT - User can optionally distribute fraction tokens through a dynamic balancer pool - Once the auction is complete, the winning bidder can claim their NFT - Anyone who holds fraction tokens can claim their portion of the winning bid How our Balancer Pool works - Seeded with 2% DAI and 98% Fraction token - Over the defined time period, flips to 98% DAI and 2% Fraction token - Arbitrageurs can “poke” our contract to update pool weights, creating an arbitrage opportunity for themselves - Once the flip is complete, the owner can pull out all liquidity, (98%) DAI. They have effectively sold fraction tokens for DAI Future Work - Provide more options for composing our tools - Upon fractionalization create a thin DAO that is able to decide when to create an auction, when to sell tokens, etc. - Create tools for fund managers to create funds of fractional tokens, which themselves could have fractional ownership Medium post introduction to What the Frac https://medium.com/whatthefrac/introducing-what-the-frac-98f3f2750eb7
How It's Made
We used solidity, Rimble, React, Redux, Netlify, Balancer, the graph, and Metamask. There is a smart contract called Fracker.sol that has the following functions: - fractionalize, this pulls in the NFT, pulls in the DAI if necessary, creates the auction and seeds the balancer pool - poke: allows an arbitrageur to update the weights of the balancer pool (currently not exposed in ui) - bid: self explanatory - settle: which returns liquidity from the balancer pool, sends the NFT to the winner - claimProceeds: allows the user to claim the tokens they won in the auction by being a fractional owner Our The Graph subgraph pulls in all the fractionalized tokens from the events emitted allowing a complete list to be displayed Netlify hosts our dapp Rimble, React and Redux are our UI Balancer is used to sell tokens as described. IT IS IMPORTANT TO NOTE that at the time of writing (Saturday May 23rd) our project is not completely complete. The UI to claim proceeds won in an auction is not hooked up to the backend, and there is no UI for the balancer pool, only the smart contract logic.