I'm trying to fractionalise users' NFT (ERC721) with my contract. My intention is as follows:
- Initial owner of an NFT ERC721 token deposits his token to my contract which extends an ERC1155 contract
- Upon deposit, my contract will mint 100 of fungible share tokens specially for that NFT token, possible with 1155, to the initial owner.
- After which, it's up to the initial owner to disseminate or sell those fungible share tokens to determine each person's share of that NFT.
- If the initial owner buys back all of the 100 fungible share tokens, he can transfer them back to the contract to reclaim his full NFT token.
But I have a couple of questions on how this could work:
- First, how should I determine the max supply of the fungible share tokens? I mentioned 100 only because it sounds like 100% is the max to me but I don't know if it is a good idea to mint 100. It's like, why not 1000 or 10 or whatever number?
- If the initial owner would like to reclaim his full NFT token, what is a good way for the initial owner to purchase back every single one of those fungible share tokens? Should my contract have a function for the initial owner to buy back all the share tokens? How should it the flow be like? What if some of the owners of the fungible share tokens are inactive, passed on or refuse to sell?
- What if there were trolls who bought some of those fungible share tokens and decided to burn them? The initial owner will never be able to reclaim his full NFT token because the contract will require him to return 100 of the fungible share tokens but there are only 90 out there in the market as someone has burnt 10 of them?
- I have considered using ERC20 instead of ERC1155 for the fungible share tokens because I can then have more granular percentages. For example, someone could buy with 0.0012345 ETH (or any amount) and own 0.03% of the share. But, if I used an ERC20 as the fungible share tokens, what if due to certain rounding during transfer and the initial owner could only get back 99.999 of the fungible share tokens? The contract would revert when he reclaims since he doesn't have the full 100 tokens.