ERC721O
A standard interface and implementation for omnichain non-fungible tokens based on ERC721.
Install / Use
/learn @CatddleLabs/ERC721OREADME
Omnichain Non-Fungible Token (ERC721-O)
A standard interface and implementation for omnichain non-fungible tokens based on ERC721.
Introduction
Motivation
After LayerZero comes out, developing based on omnichain token(Token which can traverse round different chains) become a promising choice for many cross-chain projects. Though it's hardly find a good token standard for omnichain non-fungible tokens. Caveats hide in the LayerZero message mechanism. Implementation without prudence can cause severe fund loss. To minimize the chances of security issues and extend the ablity of omnichain tokens, omnichain non-fungible token standard comes up.
Notice: Contracts in this project is still under develop. Catddle Labs is not liable for any outcomes as a result of using ERC721-O. DYOR.
Requirements
Quickstart
npx hardhat compile
npx hardhat test
Usage
import "./ERC721O.sol";
contract YourToken is ERC721O {
constructor(address endpoint_)
ERC721O("Catddle", "CAT", endpoint_)
{}
...
}
Contributing
As an open source project aimed to build omnichain NFT better, any contrbutions are greatly appreciated! If you have suggestions on the specific code part, you can simply open an issue or create a pull request.
To create a pull request:
- Fork the Project
- Create your Feature Branch (git checkout -b feature/AmazingFeature)
- Commit your Changes (git commit -m 'Add some AmazingFeature')
- Push to the Branch (git push origin feature/AmazingFeature)
- Open a Pull Request
Roadmap
- Fix potential bugs
- Imporve protocol design
- Introduce batch move function
- Introduce multiple chain broadcast function
- Adding ERC721A support
- Adding ERC1155 support
License
Distributed under the MIT License except the LayerZeroLab parts. Check the SPDX-License headers above each file.
