Skip to content

Legacy NFT Infrastructure

Current Production System

This is the live production system powering NFT minting in EmProps Studio. While we build the Arbitrum integration, Tezos remains our primary NFT chain.

Looking to develop new features? Start with the Arbitrum documentation for the EVM architecture we're building.

Documentation for the production Tezos NFT system currently running in emprops-studio.

Overview

The "legacy" NFT infrastructure refers to the production Tezos implementation that has been live and operational. This system enables:

  • Creating NFT collections from AI-generated content
  • Minting NFTs with XTZ or fiat payments
  • Managing allowlists and freelists
  • Revenue splitting among creators and receivers
  • Fund redemption for creators

Documentation

DocumentDescription
Tezos ImplementationComplete Tezos NFT system architecture
Contract ClientSmart contract interaction patterns
Wallet IntegrationBeacon wallet and authentication
Minting ComponentsUI components for minting flow

Architecture Overview

┌──────────────────────────────────────────────────────────────────┐
│                      emprops-studio                               │
├──────────────────────────────────────────────────────────────────┤
│                                                                   │
│  ┌─────────────────┐    ┌─────────────────┐    ┌──────────────┐ │
│  │ Wallet Context  │    │ Contract Client │    │  UI Components│ │
│  │                 │    │                 │    │               │ │
│  │ - TezosWallet   │───▶│ - getTezColl    │───▶│ - MintButton  │ │
│  │ - BeaconSDK     │    │ - mintToken     │    │ - ManageColl  │ │
│  │ - Taquito       │    │ - updatePrice   │    │ - PublishModal│ │
│  └─────────────────┘    └─────────────────┘    └──────────────┘ │
│           │                      │                     │         │
│           ▼                      ▼                     ▼         │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │                    Tezos Blockchain                        │  │
│  │                                                            │  │
│  │  ┌──────────────┐         ┌──────────────┐               │  │
│  │  │ Projects/    │◀───────▶│ FA2 Token    │               │  │
│  │  │ Collections  │  mint   │ Contract     │               │  │
│  │  │ Contract     │         │              │               │  │
│  │  └──────────────┘         └──────────────┘               │  │
│  │                                                            │  │
│  └───────────────────────────────────────────────────────────┘  │
│                                                                   │
└──────────────────────────────────────────────────────────────────┘

Contract Versions

The system supports two contract versions:

V1 - Projects Model

  • Storage: projects BigMap
  • Entry Points: mint_token, split_funds, set_status
  • Identifier: UUID string (project.id)
  • Minting: Individual calls per token

V2 - Collections Model

  • Storage: collections BigMap
  • Entry Points: mint, withdrawFunds, setStatus
  • Identifier: Numeric ID (project.projectId)
  • Minting: Batch operations in single call

Key Files

FilePurpose
clients/contract-client.tsCore contract interactions (~1,270 lines)
clients/tezos-client.tsTezos domain resolution
types/wallet.tsWallet types and chain IDs
context/clients-context.tsxWallet context provider
utils/mintStatus.tsMint eligibility checking

Dependencies

json
{
  "@taquito/taquito": "16.0.1",
  "@taquito/beacon-wallet": "16.2.0",
  "@taquito/tzip16": "16.1.2",
  "@tezos-domains/taquito-client": "1.24.0",
  "@airgap/beacon-sdk": "4.6.2"
}

Why "Legacy"?

This system is labeled "legacy" because:

  1. Tezos-First: Built specifically for Tezos FA2 tokens
  2. Pre-EVM: Predates the EVM (Ethereum/Base) integration efforts
  3. Production Stable: Battle-tested in production
  4. Integration Target: New EVM work will follow similar patterns

The Tezos implementation serves as the reference architecture for:

  • How collections should be managed
  • How minting flows should work
  • How wallet integration should be handled
  • How revenue splitting should be implemented

Migration Path

The external repos (emprops-hardhat, emprops-ponder) contain EVM equivalents:

Tezos (Legacy)EVM (New)
Projects/Collections ContractNFTContractFactory + SimpleApp
FA2 Token ContractERC721A
TaquitoViem/Wagmi
Beacon WalletDynamic Labs/RainbowKit
Direct RPC queriesPonder Event Indexer

See Integration Evaluation for migration details.

Released under the MIT License.