This repository contains the first complete and production-ready implementation of the ICRC7/ICRC37 NFT standard for the Internet Computer. This implementation is currently under review by the DFINITY Foundation for community validation.
This project provides a complete solution for NFT management on the Internet Computer, consisting of three main components:
Core NFT Canister: A full implementation of the ICRC7/ICRC37 standard for NFT management Integration Tests: Comprehensive test suite ensuring reliability and correctness
- Full ICRC7/ICRC37 standard compliance
- Production-ready implementation
- Complete integration test coverage
- High-performance storage solution
- Transaction history using ICRC3 standard
- Certified HTTP asset serving
- Stable memory storage with heap caching
- Fine-grained access control for assets
The main NFT ledger implementation that handles all NFT operations according to the ICRC7/ICRC37 standard. It uses the ICRC3 standard for transaction history and can work with any storage solution.
Read more about Core NFT Canister
A comprehensive test suite that ensures the reliability and correctness of the implementation. The tests cover all aspects of the NFT standard and storage functionality.
Read more about Integration Tests
- Internet Computer SDK (dfx)
- PocketIC for running integration tests
- Rust toolchain
- Clone the repository:
git clone https://github.com/ORIGYN-SA/nft.git
cd icrc7
- Build the project:
bash ./scripts/build_all.sh
- Run integration tests:
export POCKET_IC_BIN=/path/to/pocket-ic
bash ./scripts/run_integrations_tests.sh
This is currently the only complete implementation of the ICRC7/ICRC37 standard that:
- Is fully compliant with the standard
- Has complete integration test coverage
- Is production-ready
- Is under review by DFINITY Foundation
- Uses modern IC features like certified HTTP and stable memory
- Provides a flexible storage solution
Read more about Storage Canister
We welcome contributions! Please read our contributing guidelines and submit pull requests.
[License information]
For support, please open an issue in the GitHub repository or contact us through gautier.wojda@bity.com
.