Skip to content

NFT Infrastructure

EmProps was originally built as an NFT platform — AI generation feeding into NFT minting and marketplace. This documentation covers the entire NFT stack: what's currently running, what we're building next, and reference material from prior work.

Current Focus: Diamond Standard on Arbitrum

We are building NFT collection support using the ERC-2535 Diamond Standard on Arbitrum, funded by an Arbitrum Foundation grant.

Key Documents


What's Currently Running

These systems are live in production or deployed in the turbo monorepo, even if some NFT features are disconnected or partially working.

EmProps Studio (apps/emprops-studio)

The user-facing Next.js application. Contains extensive NFT UI from when the platform was primarily an NFT marketplace:

  • Marketplace pages — Browse, collection detail, token detail
  • Mint buttons — Per-chain (Tezos, Ethereum, Base)
  • Publishing flow — Deploy collections to blockchain
  • Collection management — Settings, pricing, editions
  • Wallet integration — Dynamic Labs + wagmi (EVM), Beacon (Tezos)
  • Contract client — 1,275 LOC core NFT engine across all chains

Full Studio Code Inventory →

EmProps API (apps/emprops-api)

The Node.js API in the turbo monorepo. Handles:

  • Collection CRUD (create, read, update, delete)
  • User management, authentication
  • Job queue for AI generation
  • No direct blockchain interaction currently — NFT routes need to be added

Legacy Java API (emprops-api — external)

The original Spring Boot marketplace backend that powers https://emprops.ai/marketplace:

  • Full marketplace endpoints (collections, tokens, sales)
  • Royalty configuration
  • Event audit trail
  • Profile management
  • Contract registry

Tezos Blockchain Syncers (external)

Node.js services that watch blockchain events and create pending-generation tokens:

  • emprops-syncer-long-tezos — Tezos V1 via tzkt.io WebSocket
  • emprops-syncer-long-tezos-v2 — Tezos V2 contracts
  • emprops-syncer-long-ethereum — Ethereum via Infura WebSocket
  • emprops-syncer-long-base — Base chain via Infura WebSocket

Puppeteer API (emprops-puppeteer-api — external)

Screenshot/video generation for p5.js and JavaScript-based generative art. Still needed.

Full Legacy Architecture →


What We're Building

ERC-2535 Diamond Standard on Arbitrum

DecisionChoice
Contract patternERC-2535 Diamond (multi-facet proxy)
ToolingHardhat 3 (beta)
ChainArbitrum (Sepolia → One)
Minting modelCustodial mintTo (platform signs)
Collection setupGemini LLM → EmProps v2 instruction set
MetadataGCS + CDN (not IPFS)
IndexingNone for v1 (we control all mints)

Build Phases

PhaseScopeStatus
1Smart Contracts — Diamond proxy + factory + facets (Hardhat 3)Pending
2API Endpoints — setup, deploy, generate, mint, metadataPending
3Database Schema — NFT fields on collection modelPending
4Integration & E2E TestingPending
5Studio Restoration — Reconnect NFT UI to Arbitrum backendPlanned
6Advanced Features — Auction, marketplace facet, Ponder indexerFuture

ADR → · Implementation Plan →


Documentation Map

Currently Running Systems

DocumentDescription
Studio Code InventoryEvery NFT file in emprops-studio — pages, components, hooks, clients, contracts
Legacy ArchitectureHow the original ~10 microservices worked together
Legacy Tezos OverviewThe currently live Tezos NFT system
Tezos ImplementationContract versions, data flow, mint modes
Contract Clientcontract-client.ts internals (1,275 LOC)
Wallet IntegrationBeacon wallet (Tezos) and wagmi (EVM)
Minting ComponentsReact mint button components

New Diamond/Arbitrum Build

DocumentDescription
Arbitrum OverviewDiamond Standard architecture — contracts, facets, metadata
Diamond ADRArchitecture decision for Diamond + Arbitrum
Implementation Plan6-phase build plan with file inventory

Reference Only (Never Shipped to Production)

These repos were prototyped but never deployed

The following external repos contain investigation/prototype work that informed the Diamond architecture but were never in production. They are reference material only.

DocumentDescription
emprops-hardhatERC721A + Factory contracts (Hardhat 2) — reference for Diamond facet code
emprops-ponderPonder blockchain indexer — reference for Phase 6
emprops-react-web3React wagmi/viem patterns — reference for studio hooks
External Repos SummaryConsolidated overview of all external repos

ADRStatus
NFT Diamond Standard on ArbitrumCurrent — Contracts + API for Emerge miniapp launch
EmProps Studio NFT RevivalCurrent — Restore studio NFT capabilities, replace legacy services
NFT Minting Infrastructure IntegrationSuperseded — Original ERC721A/ERC1167 plan

Released under the MIT License.