---
# System prepended metadata

title: MinaNFT V3 - New Version

---

# MinaNFT V3 - New Version

## Project Background
We propose an upgraded version of Mina NFT ( following Mina NFT V1 and Mina NFT V2). Mina NFT V3 enables NFT minting on Mina by introducing privacy features and verifiable proofs for public and private data, simplifying developer complexity, and implementing secure, multifaceted use cases in digital identity, document sharing, multimedia content, and more. All in all, the ultimate idea is to create an NFT marketplace platform to foster adoption on Mina.

## Proposal Overview

### Problem
Due to the current design of Mina NFT, all operations with any object are complicated. There’s a need to improve its functionality and make a better UI for user interaction.

### Solution
MinaNFT V3 is the next version of the product to include new exciting features and enhancements based on the received features requests and the new o1js features released in 2024. The new MinaNFT V3 will allow the differentiation of the NFTs on the Mina protocol from Ethereum NFTs by introducing the Programmable NFT that will show the power of the Mina proof system, private data, and off-chain calculations.

We also developed a better frontend design and functionality to ensure a comfortable user experience and Mina NFT API on the backend.

### Impact
Users get a user-friendly interface for basic operations with NFTs on Mina.

Developers and dApps get Mina NFT data through our API.

### Audience
- Users and dApps/developers.

## Solution Architecture and Design

### Frontend
1. The current frontend is JavaScript and create—react-app based. It uses ant.design v4 library. The new Frontend will use the latest TypeScript, next.js technology, and custom Staketab elements library / tailwind / AI generated elements, will have better design, and will support mobile devices.
2. New Frontend pages will include:
   - Collections
![1](https://hackmd.io/_uploads/rJKvUX8mJe.png)

   - Collection Details
![2](https://hackmd.io/_uploads/rkKdImL7kx.png)

   - NFT Details
![3](https://hackmd.io/_uploads/B1mYU7UmJx.png)

   - Account Details
![4](https://hackmd.io/_uploads/rJ6t8QUXkg.png)

3. We provide a CMS for collection creators to provide a frontend solution so that they can create NFT/collection templates. This will sufficiently increase the product’s usability and Mina Protocol adoption by making operations with NFT user-friendly and easy. Below is a sample of how such a CMS will look like:
![5](https://hackmd.io/_uploads/ryK-vmUXkg.png)


### Programmable NFTs
We propose programmable NFTs - special objects that follow Mina NFT Standard. These NFTs have attribute fields. One or some of such fields have a link to the framework that launches a program wrapped in a piece of code. Programmable NFTs will have far more use cases than regular NFTs, e.g., gaming items.

### Supported Functions
MinaNFT V3 will support the following functions:

- Create, update, and delete collection;
- Mint NFT;
- Send NFT;
- Buy NFT;
- Sell NFT;
- Create, update, and delete Collection Template using CMS.

### Monitoring Infrastructure and Support
MinaNFT relies on various infrastructure providers like Mainnet and Devnet nodes, Auro Wallet, Blockberry API, Pinata, and Infura IPFS providers. Early error detection, investigation, and communication with third-party teams are critical to reduce failed transactions. The project has received hundreds of DMs and e-mails, and many conference calls have been held with users, developers, and artists, leading to new features in MinaNFT V3. Although time-consuming, this communication is essential for the project's progress. Our roadmap includes the following works:

- Communicating the features that are possible with MinaNFT to the collector creators;
- Answering the questions asked by users and collection creators;
- Working on collection creators requesting new features to the current or future versions of the MinaNFT;
- Working with collector creators on joint marketing efforts and channels: Discord, e-mail, Twitter, Google Meet, etc.

### Backend
On the Backend side, we propose API with NFT endpoints for developers and dApps.

## Milestones

### Midpoint Milestones
**Frontend**
- NFT and users leaderboard;
- Filtering by
  - collection,
  - price,
  - network,
  - rarity,
  - likes;
- Collections page
- Collection details page;
- NFT transaction history page;
- Light and dark mode;
- A user page with a banner, avatar option, and collection description;
- Integration with minascan.io explorer;
- Verification of the proofs generated for NFTs - both public and available through interface and private uploaded by users.

**Backend**
- Mina NFT API for third-party developers to mint and get information about NFTs. Users will be able to call our API for a fee.

### Final Milestones
**Frontend**
- CMS page for collection and NFT creation;
- iPhone and Android mobile support;
- Watchlist;
- Multiple Admin contracts support;
- Mainnet and Testnet frontends;
- Error logging and reporting;
- Precondition checks (balance, owner, etc.) when sending transactions to make sure that a transaction is run only as long as there are no conditions that result in transaction failure;
- Link to MINA exchanges to be shown on the error message for low-balance wallets
- [Top Mina (MINA) Exchanges & Markets | Messari](https://messari.io/project/mina/markets);

### Programmable NFTs
Indexed Merkle Maps to accelerate proving;

Mutable Metadata support;

ZkProgram to define programmable NFT functions and behavior;

New Metadata V3 standard using Indexed Merkle Maps, supporting programmable NFTs, and several file standards.

### Monitoring Infrastructure and Support
- Error monitoring on
    - IPFS endpoints,
    - mainnet and devnet nodes,
    - BlockBerry API,
    - zkCloudWorker;
- Transaction monitoring for
    - failed transactions,
    - replaced transactions;
- IPFS data redundancy using several IPFS nodes;
- Investigations, fixing issues, communicating with infrastructure providers;
- Alarm tools to be alert on errors;
- Support of users, developers, and artists (collection creators).

### Backend
- Metadata V3;
- MinaNFT - CMS system for NFT collection creators.

## Next Stages (Roadmap)
### Frontend
- Ranking;
- Sample pages for third-party developers;
- Failed and replaced transactions;
- Custom routing based on the NFT data;
- More languages supported;
- Pallad support;
- Multiple blockchains supported (including Mina and Zeko Mainnet);
- Deep link support;
- Admin page for administering the collections;
- Custom NFT and collection pages are customizable by user through configuration on the website and divided into normal and advanced configuration;
- Custom configuration available using non-public URLs on collection creators requests;
- Custom configuration that will require changing and redeployment of the website;
- On-demand collection minting;
- AI image generation support;
- Signing NFT minting and collections data using offline private keys;
- QR code generation for NFTs;
- Support for custom logic of Programmable NFTs;
- Multimedia support - video, PDF, audio;
- Support tickets system;
- Batch minting through advanced payments.

### Monitoring Infrastructure and Support
- Transaction monitoring for unusual (suspicious) transactions;
- Alarm tools to produce alerts on unusual (suspicious) conditions;
- Instances to provide for third-party developers.

### Backend
- Telegram bot - minting, selling, and buying NFTs on the Mainnet as a way to bring Telegram users to the Mina ecosystem;
- Stars payments;
- Custom airdrops for NFT users;
- Two API options for third-party developers minting NFT
    - the one that requires o1js to be present on the Frontend,
    - the one that has no requirement for o1js to be present on the Frontend;
- Private data storage on behalf of collection creators for advanced NFT functionality, for example, to prove the rarity before buying without private traits being disclosed and generated proof online verification;
- Permanent NFT storage using Arweave for liked NFTs;
- Documentation site updates to reflect new features and API.

## Budget
**60,000 Mina**

## Wallet Address
B62qm5HhL5ESWzGMBRdzjVkRGD5ZzAf8YYErcXYyDbSy7o9EXUXMqnk

## Team Info
- **Mikhail Korotkikh** - Smart Contract Developer
- **Vitali Horba** - Project Manager
- **Ducca** - Solution Architect, DevOps
- **Dzmitry Sakalou** - Analyst
- **Ilya Peker** - Analyst, Designer
- **Evgeni Haurushou** - Front-End Developer
- **Vitali Karpuk** - Front-End Developer
- **Artem Brodski** - Back-End Developer
- **Denis Streltsou** - Back-End Developer

## Proposer GitHub
[Staketab GitHub](https://github.com/Staketab)

## Proposer Experience
### Minascan Team:
- Minascan;
- Minascan Custom GraphQL;
- Blockberry API platform;
- Zekoscan;
- Suiscan;
- Staketab - AA-rated Verified Staking Provider.

### Mikhail Korotkikh:
- MinaNFT project;
- zkCloudWorker;
- Graduated from the Encode Club ZK bootcamp (October 2023);
- Graduated from the Encode Club AI bootcamp (July 2024).

## Risks and Mitigation

1. MinaNFT V2 contract probably won’t be compatible with upcoming o1js 2.0 due to the breaking changes in TokenContract and MerkleMap that will be introduced in o1js 2.0.

### Possible Mitigation Strategies:
- Keep using o1js 1.x for the contract V2 (it would require deciding on a solution for using two versions of the o1js library, see the possible variants at [this discord post](https://discord.com/channels/484437221055922177/1300436029534113864/1302964466073341952)
- Make an upgrade of the verification key of the MinaNFT V2 contract on the Mainnet. 3. Create a path for automatically upgrading NFT V2 to NFT V3 or by user request.

2. Having two o1js versions in the same Frontend can cause errors.

### Possible Mitigation Strategies:
- It can be handled by using two subdomains for the same website

3. Android version may not be fully supported without o1js without SharedArrayBuffer

### Possible Mitigation Strategies:

- Cloud proving will be available for Android
