This is not a governance proposal. Instead, it is a direct request to the IoTeX core developers to deploy an EIP-6551 registry for all DApp developers to use by default.
Introduction
EIP-6551 is a standard that defines a system which assigns Ethereum accounts to all non-fungible tokens (NFTs). These token bound accounts allow NFTs to own assets and interact with applications, without requiring changes to existing smart contracts or infrastructure.
EIP-6551 is a relatively new technology, but it has the potential to revolutionize the way we use NFTs. It could enable new types of NFT-based applications and services, and it could make NFTs more useful and versatile for consumers and businesses alike.
EIP-6551 registry is similar to the Global Entrypoint Contract in EIP-4337. The Global Entrypoint Contract is a smart contract that provides a single entry point for all transactions on a blockchain. This makes it easier for developers to build applications that implement account abstraction, and it makes it easier for users to adopt those applications.
An EIP-6551 registry would provide a similar benefit for token bound accounts. It would make it easier for developers to build applications that implement token bound accounts, and it would make it easier for users to interact with token bound accounts.
Benefits of a Shared EIP-6551 Registry
There are a number of benefits to having a shared EIP-6551 registry for all IoTeX DApp developers:
- Consistency: A shared registry would ensure that all token bound accounts are created and managed in a consistent way. This would make it easier for developers to build applications that interact with token bound accounts, and it would make it easier for users to understand and use token bound accounts.
- Security: A shared registry would be easier to secure and audit than multiple registries. This would help to protect users from fraud and theft.
- Efficiency: A shared registry would be more efficient than multiple registries. This is because it would only need to maintain a single database of token bound accounts.
- Cost savings: Deploying a shared registry would save developers the time and cost of deploying their own registries.
- Transparency: The registry address would be transparent and public, so anyone could verify the authenticity of token bound accounts.
- Reduced gas costs: When developers deploy their own EIP-6551 registries, they need to pay gas costs for the deployment. A shared registry would eliminate these costs for developers.
- Improved user experience: A shared registry would make it easier for users to interact with token bound accounts. For example, users would only need to remember a single registry address, instead of having to keep track of multiple addresses.
- Increased adoption: A shared registry would make it more attractive for developers to build applications that use token bound accounts. This could lead to increased adoption of token bound accounts and NFTs on the IoTeX ecosystem.
Implementation
The core IoTeX development team could deploy an implementation of the EIP-6551 registry for all DApp developers to use by default. Once the registry is deployed, developers would be able to use it to create token bound accounts for their NFTs. To do this, developers would simply need to call a function on the registry contract. The registry would be deployed to both the IoTeX mainnet and testnet. This would give developers a place to test their applications before deploying them to production.
The EIP-6551 registry has already been implemented on a number of other blockchains, including Ethereum, Base, Optimism and Polygon. The Future Primitive team has also developed a reference implementation of the EIP-6551 registry in Solidity. Deploying the EIP-6551 registry on IoTeX would be a relatively straightforward process. The Future Primitive team is also willing to provide assistance with the deployment process if necessary.
In addition to the EIP-6551 registry, the IoTeX core devs could also deploy an implementation of smart contract accounts that go together with the registry for a full implementation. This would allow developers to create fully functional token bound accounts for their NFTs.
Source Code Links
- EIP-6551 Registry: GitHub - erc6551/reference: ERC-6551 reference implementation
- Smart Contract Accounts: GitHub - tokenbound/contracts: Opinionated ERC-6551 account implementation
- Documentations: https://docs.tokenbound.org/
Conclusion
Deploying a shared EIP-6551 registry for all IoTeX DApp developers would be a beneficial move for the IoTeX ecosystem. It would make it easier and more secure for developers to build applications that interact with token bound accounts, and it would save developers time and provide consistency. It would also create a transparent registry address, both on the mainnet and testnet, for developers to use. This would allow anyone to verify the authenticity of token bound accounts.
I believe that this would be a positive step for the IoTeX ecosystem, and it would help to accelerate the development of the IoTeX NFT ecosystem.