{
  "schema_version": "2026-06-02.consumer-contracts.v1",
  "surface": "main_website",
  "owner": "main_website_release_desk",
  "purpose": "Machine-readable public consumer and allowed-use contract for QUAD public datasets, receipts, summaries, status labels, and release artifacts.",
  "updated": "2026-06-02",
  "consumer_rule": "A display dataset cannot become an authority dataset by convenience. Every consumer must keep owner, freshness, evidence class, and must-not-infer boundaries attached to the data it reads.",
  "must_not_infer": [
    "current_chain_state",
    "current_block_height",
    "current_balance",
    "payload_truth",
    "payload_access",
    "custody_proof",
    "admission_proof",
    "settlement_proof",
    "liquidity_proof",
    "sale_access",
    "reward_eligibility",
    "allocation",
    "production_value_movement",
    "economic_activation",
    "external_validation"
  ],
  "consumer_classes": [
    {
      "consumer_id": "public_reader",
      "public_label": "public reader",
      "may_use_for": [
        "orientation",
        "surface discovery",
        "plain-language status reading",
        "proof-class comparison",
        "choosing the owning surface before acting"
      ],
      "must_check": [
        "owner_surface",
        "public_route",
        "freshness_label",
        "evidence_class",
        "must_not_infer"
      ],
      "must_not_use_for": [
        "wallet signing decisions",
        "payment decisions",
        "investment decisions",
        "custody claims",
        "launch claims"
      ],
      "downgrade_behavior": "If owner, route, freshness, or evidence class is missing, quote the claim as orientation only or cannot verify.",
      "safe_next_action": "Open the owner surface or verify page before acting.",
      "must_not_infer": [
        "current_state",
        "sale_access",
        "reward_eligibility",
        "allocation",
        "economic_activation"
      ]
    },
    {
      "consumer_id": "wallet",
      "public_label": "wallet",
      "may_use_for": [
        "chain metadata display",
        "denom and prefix labels",
        "fee-class display",
        "balance-class display",
        "safe add-chain guidance where owner-published"
      ],
      "must_check": [
        "chain_id",
        "denom",
        "bech32_prefix",
        "owner_surface",
        "metadata_freshness",
        "state_label"
      ],
      "must_not_use_for": [
        "spend authority",
        "redemption claims",
        "reward claims",
        "mainnet launch claims",
        "reserve or custody claims"
      ],
      "downgrade_behavior": "If metadata is stale, mismatched, or owner route cannot be read, show unsupported, stale, or cannot verify instead of upgrading the chain or token state.",
      "safe_next_action": "Use the owning chain metadata route and wallet guide before showing a stronger state.",
      "must_not_infer": [
        "spend_authority",
        "redemption_access",
        "reserve_backing",
        "reward_eligibility",
        "mainnet_launch"
      ]
    },
    {
      "consumer_id": "explorer",
      "public_label": "explorer",
      "may_use_for": [
        "block and validator observation",
        "transaction lookup",
        "receipt route linking",
        "chain metadata display",
        "status and endpoint discovery"
      ],
      "must_check": [
        "owner_chain",
        "height_or_timestamp",
        "chain_id",
        "denom",
        "endpoint_contract",
        "state_label"
      ],
      "must_not_use_for": [
        "market-cap display",
        "price claims",
        "yield claims",
        "PoW mining interpretation",
        "sale or airdrop routing"
      ],
      "downgrade_behavior": "If the chain route is stale or reset, show stale, unavailable, or cannot verify rather than inferring history, rewards, mining, or market state.",
      "safe_next_action": "Link the owner status page and preserve the chain's public state label.",
      "must_not_infer": [
        "market_value",
        "mining_rewards",
        "sale_access",
        "airdrop_access",
        "economic_activation"
      ]
    },
    {
      "consumer_id": "main_website",
      "public_label": "main website",
      "may_use_for": [
        "orientation",
        "public summaries",
        "fallback status display",
        "crawler-readable boundaries",
        "release and data-contract discovery"
      ],
      "must_check": [
        "source_owner",
        "source_route",
        "release_receipt",
        "freshness_policy",
        "redaction_boundary",
        "retention_policy"
      ],
      "must_not_use_for": [
        "chain authority",
        "keeper action",
        "wallet action",
        "custody proof",
        "settlement proof"
      ],
      "downgrade_behavior": "If live owner data cannot be read, show fallback, stale, or cannot verify instead of quoting live state.",
      "safe_next_action": "Route readers to the owning surface and keep the main site as an explanation surface.",
      "must_not_infer": [
        "current_chain_state",
        "hostinger_upload",
        "subdomain_current",
        "custody_proof",
        "economic_activation"
      ]
    },
    {
      "consumer_id": "chain_keeper",
      "public_label": "chain keeper",
      "may_use_for": [
        "local chain-law checks",
        "module-owned state transitions",
        "receipt validation inside chain law",
        "refusal and quarantine handling"
      ],
      "must_check": [
        "local_state",
        "local_module_law",
        "receipt_scope",
        "replay_domain",
        "admission_rule",
        "refusal_rule"
      ],
      "must_not_use_for": [
        "main-domain fallback data as authority",
        "external summary as authority",
        "sibling-chain state without import law",
        "crawler text as proof"
      ],
      "downgrade_behavior": "If owner proof or local admission law is missing, refuse or quarantine rather than admitting state by convenience.",
      "safe_next_action": "Use local keeper law, owner receipts, and import rules before changing chain state.",
      "must_not_infer": [
        "sibling_authority",
        "admission_from_display",
        "settlement_from_receipt",
        "custody_from_summary",
        "economic_activation"
      ]
    },
    {
      "consumer_id": "cross_chain_importer",
      "public_label": "cross-chain importer",
      "may_use_for": [
        "bounded import review",
        "source receipt reading",
        "packet and acknowledgement classification",
        "quarantine routing",
        "destination handoff labels"
      ],
      "must_check": [
        "source_owner",
        "source_receipt",
        "packet_or_proof_id",
        "destination_admission_rule",
        "timeout_or_replay_rule",
        "quarantine_state"
      ],
      "must_not_use_for": [
        "automatic destination admission",
        "wrapper minting without destination law",
        "reserve or redemption claims",
        "market opening"
      ],
      "downgrade_behavior": "If source proof is incomplete, stale, duplicated, timed out, or not admitted by destination law, route to refused, pending, or quarantine.",
      "safe_next_action": "Carry the source receipt and let the destination owner decide admission.",
      "must_not_infer": [
        "destination_admission",
        "wrapper_backing",
        "redemption_access",
        "settlement_truth",
        "economic_activation"
      ]
    },
    {
      "consumer_id": "infra_proof_reissue_service",
      "public_label": "Infra proof or reissue service",
      "may_use_for": [
        "receipt lookup",
        "certified reissue",
        "evidence bundle reconstruction",
        "retention proof",
        "challenge history display where public"
      ],
      "must_check": [
        "receipt_id",
        "owner_surface",
        "payload_access_state",
        "retention_class",
        "redaction_class",
        "reissue_boundary"
      ],
      "must_not_use_for": [
        "payload disclosure without product permission",
        "payload truth claims",
        "Core admission",
        "Bridge finality",
        "Liquid settlement"
      ],
      "downgrade_behavior": "If payload access ended or is private, reissue only public metadata and the unchanged proof boundary.",
      "safe_next_action": "Issue a bounded reissue receipt or refusal label.",
      "must_not_infer": [
        "payload_truth",
        "payload_access",
        "Core_admission",
        "Bridge_finality",
        "Liquid_settlement"
      ]
    },
    {
      "consumer_id": "operator_dashboard",
      "public_label": "operator dashboard",
      "may_use_for": [
        "route health display",
        "stale-state triage",
        "public incident labels",
        "next public check",
        "degraded service coordination"
      ],
      "must_check": [
        "owner_surface",
        "status_label",
        "freshness_label",
        "last_public_update",
        "next_public_check",
        "private_detail_boundary"
      ],
      "must_not_use_for": [
        "private topology disclosure",
        "credentials",
        "private recovery sequence",
        "sensitive thresholds",
        "economic rights"
      ],
      "downgrade_behavior": "If route health is missing or stale, show degraded, unavailable, or cannot verify and avoid exposing private recovery detail.",
      "safe_next_action": "Publish a public status label, next check, and terminal receipt when available.",
      "must_not_infer": [
        "private_topology",
        "route_repaired",
        "live_recovery",
        "launch_status",
        "economic_activation"
      ]
    },
    {
      "consumer_id": "governance_reviewer",
      "public_label": "governance reviewer",
      "may_use_for": [
        "proposal evidence review",
        "receipt and endpoint contract reading",
        "risk and assumption review",
        "phase gate review",
        "public objection or approval context"
      ],
      "must_check": [
        "proposal_scope",
        "owner_surface",
        "evidence_class",
        "freshness_label",
        "risk_label",
        "must_not_infer"
      ],
      "must_not_use_for": [
        "private override",
        "unstated authority",
        "economic activation without chain law",
        "retroactive entitlement"
      ],
      "downgrade_behavior": "If proposal evidence lacks owner, freshness, or bounded proof, keep the governance state open, refused, or cannot verify.",
      "safe_next_action": "Ask for owner-published evidence or a narrower proposal.",
      "must_not_infer": [
        "private_override",
        "unstated_authority",
        "reward_eligibility",
        "allocation",
        "economic_activation"
      ]
    },
    {
      "consumer_id": "external_reviewer",
      "public_label": "external reviewer",
      "may_use_for": [
        "public reference checking",
        "repo or registry review",
        "explorer comparison",
        "audit-report scope reading",
        "technical article or indexer summary"
      ],
      "must_check": [
        "official_surface",
        "outside_source_scope",
        "date",
        "evidence_class",
        "owner_confirmation",
        "non_endorsement_boundary"
      ],
      "must_not_use_for": [
        "endorsement inference",
        "audit completion inference",
        "listing inference",
        "market access inference",
        "partnership inference"
      ],
      "downgrade_behavior": "If an outside source does not name scope or conflicts with the owner surface, quote it only as an external reference or do not quote it.",
      "safe_next_action": "Point back to the official owner surface and the external-reference guide.",
      "must_not_infer": [
        "endorsement",
        "audit_completion",
        "listing_acceptance",
        "partnership",
        "market_access"
      ]
    },
    {
      "consumer_id": "product_pricing_engine",
      "public_label": "product pricing engine",
      "may_use_for": [
        "quote preparation",
        "service-class pricing",
        "fee display",
        "refund or surplus classification",
        "expected-cost versus actual-charge comparison"
      ],
      "must_check": [
        "owner_surface",
        "service_class",
        "quote_id",
        "accepted_denom",
        "fee_class",
        "finality_state",
        "refund_rule"
      ],
      "must_not_use_for": [
        "fixed redemption rate",
        "yield",
        "reserve proof",
        "market price",
        "sale access"
      ],
      "downgrade_behavior": "If quote inputs or owner route are stale or missing, refuse quote, expire quote, or show cannot price instead of guessing.",
      "safe_next_action": "Issue a bounded quote with expiry, owner, accepted denom, and receipt requirement.",
      "must_not_infer": [
        "redemption_rate",
        "yield",
        "reserve_backing",
        "market_price",
        "sale_access"
      ]
    },
    {
      "consumer_id": "refusal_gate",
      "public_label": "refusal gate",
      "may_use_for": [
        "blocking unsupported actions",
        "downgrading stale or missing data",
        "quarantine routing",
        "terminal-state labelling",
        "safe support routing"
      ],
      "must_check": [
        "required_owner",
        "required_state",
        "freshness_label",
        "schema_completeness",
        "authorization_label",
        "terminal_receipt_rule"
      ],
      "must_not_use_for": [
        "silent success",
        "hidden pending state",
        "private override",
        "economic activation",
        "entitlement creation"
      ],
      "downgrade_behavior": "When required data, authority, freshness, schema, payment, or admission is missing, refuse plainly and record the next public check where available.",
      "safe_next_action": "Return refused, stale, unavailable, unpaid, expired, invalid, unauthorized, duplicate, quarantined, or terminal.",
      "must_not_infer": [
        "silent_success",
        "private_override",
        "future_action_available",
        "reward_eligibility",
        "economic_activation"
      ]
    }
  ],
  "global_consumer_rules": [
    "Name the consumer before naming allowed use.",
    "A consumer may use a dataset only inside its owner, evidence class, freshness, redaction, retention, and must-not-infer boundary.",
    "Main-domain orientation, crawler files, fallback JSON, and release artifacts cannot become chain authority.",
    "If a consumer needs authority, the owning chain or product surface must publish the authority route.",
    "If a consumer cannot verify owner, freshness, schema, or evidence class, it must downgrade to stale, refused, unavailable, local-package-only, or cannot verify."
  ]
}
