To propose an extension of smart contract interfaces for asset-backed, fractionalized projects using the EIP-1155 standard such that total acquisition will become possible. This proposal focuses on physical asset, where total acquisition should be able to happen.
Motivation
Fractionalized, asset backed NFTs face difficulty when someone wants to acquire the whole asset. For example, if someone wants to bring home a fractionalized asset, he needs to buy all NFT pieces so he will become the 100% owner. However he could not do so as it is publicly visible that someone is trying to perform a total acquisition in an open environment like Ethereum. Sellers will take advantage to set unreasonable high prices which hinders the acquisition. Or in other cases, NFTs are owned by wallets with lost keys, such that the ownership will never be a complete one. We need a way to enable potential total acquisition.
Specification
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.
EIP-1155 compliant contracts MAY implement this EIP for adding functionalities to support total acquisition.
//set the percentage required for any acquirer to trigger a forced sale
//set also the payment token to settle for the acquisition
functionsetForcedSaleRequirement(uint128requiredBP,addresserc20Token)publiconlyOwner//set the unit price to acquire the remaining NFTs (100% - requiredBP)
//suggest to use a Time Weighted Average Price for a certain period before reaching the requiredBP
//emit ForcedSaleSet
functionsetForcedSaleTWAP(uint256amount)publiconlyOwner//acquirer deposit remainingQTY*TWAP
//emit ForcedSaleFinished
//after this point, the acquirer is the new owner of the whole asset
functionexecForcedSale(uint256amount)publicexternalpayable//burn ALL NFTs and collect funds
//emit ForcedSaleClaimed
functionclaimForcedSale()publiceventForcedSaleSet(boolisSet)eventForceSaleClaimed(uint256qtyBurned,uint256amountClaimed,addressclaimer)
Rationale
Native ETH is supported by via Wrapped Ether EIP-20.
After forcedSale is set, the remaining NFTs metadata should be updated to reflect the NFTs are at most valued at the previously set TWAP price.
Security Considerations
The major security risks considered include
The execution of the forcedSale is only executed by the contract owner, after a governance proposal. If there is any governance attack, the forcedSale TWAP price might be manipulated on a specific timing. The governance structure for using this extension should consider adding a council to safeguard the fairness of the forcedSale.
Payment tokens are deposited into the contract account when forcedSale is executed. These tokens will then await the minority holders to withdraw on burning the NFT. There might be a potential security risk.