...
Document below for current scope and requirements
FIP-21 for FIO Chain modifications: https://github.com/fioprotocol/fips/blob/master/fip-0021.md
Technical progress: Token Wrapping Project Plan
Go-to-market plan: Wrapping go-to-market
Discussion: Discord token-wrapping channel
...
Ethereum Chain wrapping functionality
Smart contract on:
FIO Token wrapping
Ethereum L1 Chain
FIO Domain Wrapping
Polygon, Ethereum L2 Chain.
Due to high fees on Ethereum L1, the FIO Domain wrapping will be deployed on Polygon exclusively.
Custodians
The smart contract owner key will be destroyed after deployment
Starting set of 10 custodian keys will be hard-coded into contract
Custodians will be able to:
Register Oracle
Request
Ethereum public address
Processing
Oracle is added after 2/3 + 1 custodians have registered the same public address
Unregister Oracle
Request
Ethereum public address
Processing
Oracle is removed after 2/3 + 1 custodians have unregistered the same public address
Register Custodian
Request
Ethereum public address
Processing
Custodian is added after 2/3 + 1 custodians have registered the same public address
Unregister Custodian
Request
Ethereum public address
Processing
Custodian is removed after 2/3 + 1 custodians have unregistered the same public address
Oracles will
MINT: Once Oracles detect that a user on FIO Chain wants to wrap FIO Domain or FIO Tokens, they will submit their observation to this Ethereum smart contract. Once all Oracles have submitted their observation, the wrapped FIO Domain or wrapped FIO Tokens will be minted and transferred to designated Ethereum public address.
Oracle can trigger minting of wrapped tokens
FIO tokens: mint WFIO ERC-20 token
FIO Domains: mint ERC-721 token
Must be compatible with OpenSeas
BURN: Once Oracles detect that a FIO Domain has been burned on the FIO Chain, they will submit their observation to this Ethereum smart contract. Once all Oracles have submitted their observation, the wrapped FIO Domain will be burned.
Oracle can trigger burning of ERC-721 tokens
Users will
SEND: Send ERC-721 FIO Domain or WFIO ERC-20 to this Ethereum smart contract without additional fee other than Ethereum gas passing:
ERC-721
ERC-721 Domain - previously minted on Ethereum
FIO Address where FIO Domain should be delivered on FIO Chain
Basic regex validation should be enforced
ERC-20
Amount of WFIO - previously minted on Ethereum
FIO Address where FIO Tokens should be delivered on FIO Chain
Basic regex validation should be enforced
Automatic generation of ERC-721 metadataAnchor 721 721 ERC-721 requires that a url to a json file be provided.
The metadata should be served by a service hosted by the Foundation, which will dynamically generate it based on the query parameter in the url, e.g. https://metadata.fioprotocol.io/domainnft/sampledomain.json
Response meta data:
...