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.
Here are the key aspects of the MinaNFT project:
-
Customized Avatar NFTs: Users can create personalized avatar NFTs that serve as digital identifiers across social media platforms and in various corporate and contractual interactions.
-
AI-Driven NFT Generation: MinaNFT employs a user-friendly Telegram bot that enables users to generate unique NFTs by simply describing their avatar idea via text or voice message in any language. The AI technology then takes care of the creation process.
-
Secure Repositories for Sensitive Information: Avatar NFTs can securely store a range of both public and private information, including art, contracts, medical records, and proofs of ownership. This information is attached to the NFTs with verifiable proofs of authenticity.
-
Privacy and Security: For users and corporations prioritizing privacy, MinaNFT offers options to create custom NFTs through an offline CLI tool, ensuring that private content remains on the user's personal computer. A redacted version of documents can be shared, maintaining confidentiality while verifying authenticity.
-
TypeScript Library for Integration: MinaNFT provides a TypeScript library for third-party developers and corporate accounts, simplifying the process of deploying to the MINA blockchain and managing data proofs.
-
Permanent Storage Options: For NFTs featuring timeless art or significant documents, MinaNFT offers the option of permanent storage on Arweave, ensuring long-term preservation.
-
Global Community Engagement: MinaNFT aims to bring a broader community into the NFT space, addressing challenges of identity, privacy, and on-chain and off-chain verifiability of diverse NFT content.
-
Architecture: The project's architecture includes key contracts on the Mina blockchain, a frontend, backend API, Telegram bot, MinaNFT offline CLI tool, and integration library, all working in tandem to provide a seamless user experience.
In essence, MinaNFT is about expanding the utility of NFTs beyond digital art, transforming them into versatile tools for identity representation and secure content sharing in the digital realm. It leverages the strengths of the Mina blockchain and AI to offer enhanced privacy, security, and functionality.
- 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)
- Explore all the NFTs
- Explore all the posts
- Create NFTs and posts
- Prove public and private key-value pairs
- Verify public and private key-value pairs off-chain and on-chain
- CLI tool helpers
- Corporate onboarding
- Billing reports
- 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
- Creates simple NFTs (name + image) in a lite mode. The bots always start in lite mode and automatically switch to the full mode after the user has minted the first NFT.
- In full mode:
- Generates images using a DALL-E model
- Explain to a user how to create NFTs, posts, and key-value pairs for NFTs
- Accepts and stores any files uploaded by the user for adding to the NFT or post
- List NFTs of the user
- List files of the user
- List keys of the NFTs
- Adds private and public key-value pairs to the NFT
- Prove private and public key-values pairs of the NFT
- Verifies proofs of the private and public key-values pairs of the NFT
- Accepts text messages and voice messages
- In voice mode, send voice messages to the user. The communication can be fully in voice in voice mode.
- 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
- Reserve the NFT name using MinaNFT API (online mode) or frontend helper (offline mode)
- Create NFT locally (online mode) or locally with prepared in-advance IPFS or Arweave hashes (offline mode)
- Mint the NFT locally (online mode) or using frontend helper (offline mode)
- Add to the NFT during creation:
- Public or private key-value pairs
- Texts
- Text, PNG, Word or binary files
- Indexing new NFT for the frontend (online only)
- Creating the masks for redacting the text or png files
- Redact text files using regular expressions
- Redact text and png files using masks
- Creating and verifying proofs for texts and files
- Creating and verifying proofs for redacted text and png files
- Setting configuration:
- MinaNFT API JWT
- IPFS Pintata JWS
- Arweave key
- Encryption of user's data using user's password
- MINA accounts
- Creating MINA account
- Importing MINA account by using private or public key
- Checking account balance (online only)
- Exporting private and public keys of the account
- Frontend: English, Turkish, Italian, Spanish, French
- Telegram bot:
- Written system messages: English, Turkish, Italian, Spanish, French
- Voice chat messages: English, Spanish, French, Italian, Turkish, Arabic, Dutch, Catalan, Chinese, Danish, German, Japanese, Korean, Norwegian, Polish, Portuguese, Romanian, Russian, Swedish, Welsh.
- Voice comprehension: about 50 languages
- Text chat messages: almost any language
- Text comprehension: almost any language
- CLI tool: English
You can see screenshots of MinaNFT in the screenshots directory
- twitter: minanft_io
- discord : MinaNFT discord server
https://github.com/dfstio/minanft-docs
https://github.com/dfstio/minanftio
https://github.com/dfstio/minanft-api
https://www.npmjs.com/package/minanft
https://github.com/dfstio/minanft-lib