Skip to Content
CreatorsCreateSingle NFT (ERC-721)

Single NFT (ERC-721 1/1)

A true 1/1: one contract, one token, one URI. Mint happens during initialization and token ID is 1.


Pre-flight checklist (what the UI validates)

  • Name & Symbol: required, human-readable.
  • Token URI: a single, final metadata URL (e.g. ipfs://<CID>/meta.json).
    This contract does not use a base URI or numbered token paths.
  • Royalties (ERC-2981): recipient is non-zero and BPS ≤ 1000 (10%). Immutable after deploy.
  • Platform fee: exact feeAmount in the chain’s native coin is forwarded at initialization.
  • Owner wallet: injected by the NFTFactory; receives token #1 at init.
🧩

The 1/1 contract mints exactly one token during initialize. There is no presale/public sale, no per-wallet limits, and no further minting.


What the contract does (tl;dr)

  • Cloneable (EIP-1167) via NFTFactory; sets owner and forwards the platform fee.
  • Mints token #1 to the owner on initialize and pins its tokenURI.
  • Immutable royalties via ERC-2981 (set once at init).
  • Withdraw helper for any stray native coin left on the contract.

Metadata shape (example)

{ "name": "Panthart Genesis 1/1", "description": "A unique 1/1 artwork minted via Panthart.", "image": "ipfs://bafy.../image.png", "animation_url": "ipfs://bafy.../video.mp4", "attributes": [ { "trait_type": "Edition", "value": "1/1" }, { "trait_type": "Artist", "value": "Panth" } ] }
🔒
Treat your metadata as final. Changing it after listing can hurt collector trust.

Step-by-step

  1. Prepare the metadata

Upload your JSON and media to IPFS (or another permanent store). Verify the file resolves quickly.

  1. Initialize via Factory

Enter Name, Symbol, Token URI, Royalty recipient + BPS, and confirm the platform fee transaction. On success, the contract emits SingleInitialized and immediately mints token #1 to you (emits SingleMinted).

  1. Verify & showcase

Open the token page. Ensure the image/animation loads from your Token URI and traits render as intended.

  1. List for sale (optional)

Create a fixed-price listing or start an auction on the marketplace.


Reference (functions & events)

Init initialize(SingleConfig cfg) — payable; sets royalties, forwards fee, mints token #1 to owner.

Views tokenURI(uint256 tokenId)string (reverts unless tokenId == 1) · supportsInterface(bytes4)bool (ERC-721 + ERC-2981)

Admin withdraw(address payable to) — owner only (withdraw any residual native coin)

Events SingleInitialized(owner, name, symbol) · SingleMinted(to, tokenId, uri)

Last updated on