The MinaNFT project is an innovative Non-Fungible Token (NFT) platform that integrates the unique privacy features of the Mina blockchain with advanced AI technology. It's designed to redefine the NFT space by offering a range of functionalities that go beyond traditional NFT capabilities.
This library is designed for easy integration of third-party developers and corporations with MinaNFT, allowing them to start minting NFTs, adding public and private keys, and verifying data off-chain and on-chain within one hour with easy and intuitive API
Running tests:
yarn rollup
Rollup NFT example: https://minanft.io/nft/ibafkreifof56ydwhqhvz744czppjljzcpcvabscuu2ofylemzvzferlvlka
Rollup NFT URI example: https://gateway.pinata.cloud/ipfs/bafkreifof56ydwhqhvz744czppjljzcpcvabscuu2ofylemzvzferlvlka
- MinaNFTContract for NFT
- MinaNFTNameServiceContract for Name Service
- MinaNFTMetadataUpdate ZkProgram for metadata updates using Merkle Map proofs
- RedactedMinaNFTMapCalculation for redacted Merkle Maps proofs
- RedactedMinaNFTTreeCalculation for redacted Merkle Tree proofs
- MinaNFTVerifier and MinaNFTTreeVerifier for verification of redacted map and tree proofs
- MinaNFTVerifierBadge for assigning badges to NFTs
- Escrow for NFT transfers through the escrow mechanism
- NFTMintData, MintData, Metadata, MetadataMap, MetadataWitness, MetadataUpdate, MetadataTransition, Storage, Update, EscrowTransfer, EscrowApproval data structures to be used in contracts
- Keys and Values: strings up to 30 characters and Fields, written as Fields
- Texts: texts of any length, written as Field arrays
- Files: text, image, word, any other formats, including audio, video, PDF, binary. Written as two Merkle Trees: one with metadata and the other with file data: 30 bytes per Field for binary files, one character per Field for text files, and one pixel per Field for image files
- Maps: any collection of the types above grouped together.
- All the data can be marked as public or private
- Proving and verifying key-value pairs
- Proving and verifying the texts, including redacted
- Proving and verifying the text and binary files as a whole file using SHA3-512
- Proving and verifying the redacted text and word files (some characters can be redacted by using masks)
- Proving and verifying the redacted PNG image files (some pixels can be redacted by using masks)
- NFT name reservation
- NFT name lookup
- NFT minting
- Indexing NFT for frontend
- Creation of the post
- Creation and verification of the proofs, minting and sending transaction
- Retrieving proof calculation results
- Getting billing reports
- TypeScript wrappers for contracts:
- MinaNFT - main class for managing the NFT. Most interaction with NFT is executed with the help of this class.
- MinaNFTBadge - class for managing badges
- MinaNFTNameService - Name Service
- MinaNFTEscrow - Escrow
- RedactedMinaNFT - redacted Merkle Map proof calculations
- RedactedTree - redacted Merkle Tree proof calculation
- MinaNFTTreeVerifierFunction for generation Merkle Tree verification SmartContract and Merkle Tree proof calculation ZkProgram for the Merkle Trees of given height
- api class for API calls
- IPFS for IPFS off-chain storage
- ARWEAVE for Arweave off-chain storage
- BackendPlugin for parallel calculations of the recursive proofs in the serverless backend
yarn add minanft
https://www.npmjs.com/package/minanft