{
  "schema": "numographs-agent-mint",
  "schema_version": "1.1.19",
  "project": {
    "name": "Numographs",
    "symbol": "N",
    "summary": "Numographs are portraits for numbers. Generated on Ethereum and fully onchain, each portrait is determined by a fixed system that gives its number visible form and calculates its numeric traits.",
    "categories": [
      "NFT",
      "onchain art",
      "generative art",
      "agent-readable NFT project",
      "AI-agent-compatible mint discovery",
      "contract-wallet-readable mint status"
    ],
    "mintable_token_id_range": {
      "min": "1",
      "max": "18446744073709551615",
      "max_formula": "2^64 - 1"
    },
    "status": "mainnet contract deployed and verified; public mint live"
  },
  "official_links": {
    "site": "https://numographs.com/",
    "mint_status": "https://numographs.com/mint",
    "mint_and_project_notes": "https://numographs.com/mint#mint-notes",
    "agent_access": "https://numographs.com/agent-access",
    "llms_txt": "https://numographs.com/llms.txt",
    "agent_mint_json": "https://numographs.com/agent-mint.json",
    "well_known_agent_mint": "https://numographs.com/.well-known/agent-mint"
  },
  "mainnet_contract": {
    "network": "Ethereum Mainnet",
    "chain_id": 1,
    "address": "0x9D40aF086dd0470F27a6663858FD7Fa5cD85de38",
    "deployment_block": 25772430,
    "source_verification": "Exact creation and runtime matches on Sourcify; verified on Blockscout and Routescan.",
    "mint_paused": false,
    "public_mint_live": true,
    "status_note": "Public minting is live. The verified contract reported mintPaused() == false on 2026-08-17. Re-check the onchain pause state before preparing a transaction because the guardian can pause minting."
  },
  "artwork_rights": {
    "license": "CC0 1.0 Universal",
    "scope": "The canonical Numograph portrait artwork generated by the final contract.",
    "permission": "Anyone may copy, modify, share, remix, or use the artwork commercially without owning a token or asking permission.",
    "ownership_note": "Token ownership records the authentic onchain object and provenance; it does not create exclusive image rights.",
    "excluded": "The Numographs name and logo, website design and written copy. Published source code carries its own software license.",
    "mint_and_project_notes_url": "https://numographs.com/mint#mint-notes",
    "cc0_url": "https://creativecommons.org/publicdomain/zero/1.0/"
  },
  "agent_policy": {
    "mainnet_is_live": true,
    "mint_date": "2026-08-17",
    "development_only": false,
    "do_not_invent_mainnet_address": false,
    "safe_user_report": "The verified Numographs public mint is live on Ethereum Mainnet at the official contract address.",
    "recommended_agent_action": "Report the official contract and live status. Before preparing transaction details for explicit wallet approval, independently confirm that the verified contract remains open."
  },
  "agent_capabilities": {
    "discovery_status": "active",
    "agents_can_currently": [
      "read official mint status",
      "report that the verified mainnet mint is live",
      "identify the official contract address",
      "explain the deployed random draw model",
      "summarize number-trait concepts",
      "link users to official pages",
      "verify the contract's current pause state through an Ethereum read",
      "prepare mint transaction details for explicit wallet approval",
      "read the confirmed mint receipt for the assigned token number",
      "explain a collected token number and its deterministic traits",
      "verify official metadata and tokenURI responses"
    ],
    "agents_can_when_mainnet_live": [
      "prepare mint transaction details for explicit wallet approval",
      "read the confirmed mint receipt for the assigned token number",
      "explain a collected token number and its deterministic traits",
      "verify official metadata and tokenURI responses"
    ],
    "agents_must_not": [
      "claim the mint is live while the production contract is paused",
      "invent or infer a contract address",
      "use testnet or rehearsal contracts as public mint instructions",
      "promise a specific drawn number",
      "execute transactions without explicit user wallet review and confirmation"
    ],
    "contract_affordances": [
      "readable price and mint status views",
      "total completed draw and token supply views",
      "atomic draw and drawMany functions that mint 1-10 NFTs to the caller",
      "Transfer and DrawMinted events for the assigned number and draw ordinal",
      "deterministic onchain tokenURI and trait metadata",
      "ERC-7572 contractURI collection metadata for marketplace-level project About copy"
    ]
  },
  "mint": {
    "model": "random draw",
    "network": "Ethereum Mainnet",
    "price": {
      "currency": "ETH",
      "eth": "0.001",
      "note": "Final immutable fixed draw price before network gas. Public minting is live, subject to the verified contract's current onchain pause state."
    },
    "quantity": {
      "min_per_transaction": 1,
      "max_per_transaction": 10,
      "max_successful_draws_per_block": 10,
      "wallet_rate_limit": {
        "model": "token bucket",
        "capacity": 10,
        "credits_consumed_per_draw": 1,
        "refill_credits": 1,
        "refill_seconds": 60,
        "maximum_credits": 10,
        "split_transaction_note": "All successful calls from the same wallet consume the same onchain credit balance. Splitting a batch does not reset or bypass the allowance."
      },
      "recipient": "the calling wallet",
      "pricing": "0.001 ETH multiplied by quantity",
      "gas_note": "Batching can reduce average network gas per NFT; it never batches different buyers together.",
      "block_limit_note": "The immutable contract-wide limit is 10 successful draws per Ethereum block. A call exceeding the block's remaining capacity reverts.",
      "wallet_limit_note": "The immutable per-wallet token bucket starts with 10 draw credits and refills one credit per minute up to 10. A call requesting more than the wallet's available credits reverts."
    },
    "security_pause": {
      "scope": "A dedicated guardian can pause or resume new draws only.",
      "cannot_change": [
        "contract code",
        "artwork or animation",
        "token metadata",
        "price or distribution",
        "existing tokens or transfers",
        "payee or withdrawals"
      ],
      "renunciation": "The guardian can permanently renounce pause authority only while minting is unpaused.",
      "burning": "Not supported. A drawn number remains an existing token."
    },
    "distribution": {
      "field": "uint64",
      "status": "deployed and immutable",
      "normal_draw": "Draws use a fixed 20-bucket Field Curve. The contract selects a digit length from 1 through 20, then selects one available number in that bucket. Once a bucket is depleted, its weight moves forward to the next available digit length.",
      "field_curve_weight_denominator": 40000,
      "field_curve_weight_units": {
        "1": 10,
        "2": 100,
        "3": 1000,
        "4": 8400,
        "5": 7400,
        "6": 5800,
        "7": 4400,
        "8": 3400,
        "9": 2600,
        "10": 2000,
        "11": 1400,
        "12": 1100,
        "13": 800,
        "14": 600,
        "15": 400,
        "16": 300,
        "17": 160,
        "18": 80,
        "19": 40,
        "20": 10
      },
      "opening_percentages_by_digit_length": "1:0.025%, 2:0.25%, 3:2.5%, 4:21%, 5:18.5%, 6:14.5%, 7:11%, 8:8.5%, 9:6.5%, 10:5%, 11:3.5%, 12:2.75%, 13:2%, 14:1.5%, 15:1%, 16:0.75%, 17:0.4%, 18:0.2%, 19:0.1%, 20:0.025%",
      "exhausted_bucket_rule": "When any digit-length bucket is depleted, its weight moves to the next available higher digit length. Consecutive exhausted buckets carry their combined weight forward.",
      "immutability_requirement": "The deployed draw rules are a pure onchain function of availability state. No administrator can adjust the odds.",
      "publication_requirement": "Fulfilled: the immutable draw rules and verified contract were published before public minting opened."
    },
    "randomness": "Atomic native Ethereum assignment using the inclusion block's block.prevrandao and previous block hash mixed with a fixed domain, contract, chain, and draw ordinal. Buyer address, payment, batch count, and loop index are deliberately excluded as avoidable grinding inputs. No Chainlink, oracle, keeper, bounty, or settlement transaction. Best-effort onchain surprise, not lottery-grade unbiasability.",
    "reveal": "The finished NFT is assigned and minted in the buyer's single draw transaction and appears after confirmation.",
    "trait_rarities": {
      "basis": "Number-trait rarity estimates describe mathematical occurrence across the uint64 field. They are not guarantees of draw-adjusted outcomes under the weighted Field Curve.",
      "number_traits": [
        "Prime",
        "Twin Prime",
        "Emirp",
        "Mersenne Prime",
        "Fermat Number",
        "Palindrome",
        "Triangular",
        "Square",
        "Cube",
        "Sequential",
        "Monodigit",
        "Fibonacci",
        "Lucas",
        "Binary Digits",
        "Binary Palindrome",
        "Hex Palindrome",
        "Bit Limit",
        "Repunit",
        "Power of Two",
        "Power of Ten",
        "Power of 256",
        "Factorial",
        "Happy",
        "Harshad",
        "Moran",
        "Perfect",
        "Highly Composite",
        "Narcissistic",
        "Automorphic",
        "Kaprekar",
        "Pandigital",
        "Hex Repdigit",
        "Strobogrammatic",
        "Undulating"
      ],
      "marketplace_taxonomy": {
        "item_about": "Each token description begins with the assigned number and a concise portrait description, followed by exact binary, hexadecimal, and draw-ordinal facts.",
        "collection_about": "Immutable ERC-7572 contractURI metadata supplies the separate project-level Numographs description and links to https://numographs.com.",
        "draw_record": [
          "Draw Date",
          "Draw Ordinal"
        ],
        "number": "Number is the complete assigned uint64 token value emitted as a numeric marketplace attribute without truncation.",
        "numeric_filtering": "Number, Digit Count: Total, Digit Count: Unique, Digit Run, Digit Sum, Property Count, Trailing Zeros, and Draw Ordinal are emitted with integer values and explicit display_type: \"number\" metadata for marketplace numeric and range filtering. Property Count and Trailing Zeros remain conditional.",
        "ordinal_match": "Ordinal Match: Yes appears as a standalone attribute only when the assigned number exactly equals its Draw Ordinal. There is no general Provenance category.",
        "property": "A repeated string attribute containing each applicable mathematical classification, such as Prime or Palindrome.",
        "property_count": "The number of applicable mathematical properties; omitted when zero and not a rarity or quality score.",
        "trailing_zeros": "The exact count of consecutive decimal zeros at the end of the number; emitted once only when nonzero, separate from Property and Property Count.",
        "digit_counts": {
          "total": "Digit Count: Total is the total number of decimal digits.",
          "unique": "Digit Count: Unique is the number of different decimal digits used.",
          "run": "Digit Run is the longest consecutive run of one identical decimal digit and begins at 1.",
          "sum": "Digit Sum is the sum of all decimal digits.",
          "taxonomy_note": "All four digit-profile fields are universal numeric marketplace filters and do not affect Property Count.",
          "website_note": "Leading/core and final/outer digits are derivable website filters rather than marketplace traits."
        }
      }
    }
  },
  "explore": {
    "url": "/explore",
    "purpose": "Preview what any number in the field looks like. Explore is not a choose-your-own mint surface."
  },
  "agent_report_template": {
    "headline": "The verified Numographs public mint is live on Ethereum Mainnet.",
    "fields": [
      "project_summary",
      "mint_status",
      "mainnet_contract",
      "price",
      "distribution",
      "trait_summary",
      "official_links",
      "risk_notes"
    ]
  }
}
