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.