{
  "schema_version": "v1",
  "mainnet_verdict": "No-Go",
  "mainnet_ready_claim": false,
  "selected_strategy": "option_b_disabled_public_sandbox",
  "public_sandbox_enabled": false,
  "public_faucet_enabled": false,
  "public_testnet_enabled": false,
  "signed_disabled_manifest_claim": false,
  "scope": "Release-level public devnet testnet faucet strategy manifest for external AI agent onboarding. This records the conservative Option B fail-closed strategy only.",
  "whitepaper_modules": [
    "sdk_dev_surface",
    "agent_api_surface",
    "l4_l5_acceptance_matrix",
    "ecosystem_platform_extensibility",
    "observability_monitoring"
  ],
  "source_files": [
    {
      "path": "sdk/src/types.ts",
      "role": "sdk_network_presets",
      "sha256": "e59f21a33cf48521338edbae83a389349a58f96d8220ec00577f464f5fdf7919"
    },
    {
      "path": "sdk/src/client/index.ts",
      "role": "sdk_unverified_network_guard",
      "sha256": "8fba3a36c28ca80b1427c826ce37662c49cb769e886e2bb25c3f1bd64aa891d9"
    },
    {
      "path": "sdk/src/indexer/index.ts",
      "role": "sdk_indexer_unverified_network_guard",
      "sha256": "ef7b62a7ae4d07b77645b5b43146f6078ccfca1317a5208efe15ca0fdbec0440"
    },
    {
      "path": "release/developer_capability_manifest.json",
      "role": "developer_capability_public_sandbox_boundary",
      "sha256": "de533dc16c38a5d3b6514cd23367b7050d58b864115a2edfa0c7fa33c2262996"
    },
    {
      "path": "release/developer_dapp_starter_e2e_manifest.json",
      "role": "developer_dapp_starter_local_path_boundary",
      "sha256": "6f3d07bbb8151faacaf44e9310b7b6e7de69a246a5a28c37ae3c3b705050efd1"
    },
    {
      "path": "examples/ai-agent-dapp-starter/README.md",
      "role": "local_dapp_starter_runbook",
      "sha256": "936e4e6276c32b1d1ebf6360f72d4ae3f66cfc6309005d95fa55b627ce93754a"
    }
  ],
  "strategy": {
    "option": "B",
    "name": "disabled public sandbox with explicit local development path",
    "production_ready": false,
    "public_endpoint_enabled": false,
    "default_sdk_enabled": false,
    "faucet_mode": "disabled_public_faucet",
    "testnet_preset_mode": "unverified_fail_closed",
    "devnet_preset_mode": "not_public",
    "local_development_path": "examples/ai-agent-dapp-starter with explicit endpoints only",
    "required_sdk_guards": [
      "mainnet_preset_verified_false",
      "testnet_preset_verified_false",
      "client_rejects_unverified_presets_by_default",
      "indexer_rejects_unverified_presets_by_default"
    ],
    "failure_mode": "fail-closed until a signed disabled manifest or signed public sandbox proof is accepted by final readiness gates"
  },
  "production_requirements": [
    {
      "id": "signed_disabled_public_sandbox_manifest",
      "status": "missing_production_evidence",
      "required_evidence": [
        "signed disabled public sandbox manifest",
        "release signer public key manifest",
        "Dilithium signature verification receipt"
      ],
      "failure_mode": "fail-closed until signed disabled public sandbox manifest is accepted"
    },
    {
      "id": "sdk_preset_fail_closed_public_evidence",
      "status": "missing_production_evidence",
      "required_evidence": [
        "SDK mainnet preset fail-closed proof",
        "SDK testnet preset fail-closed proof",
        "Indexer preset fail-closed proof",
        "public install or package proof"
      ],
      "failure_mode": "fail-closed until SDK preset fail-closed proof is accepted"
    },
    {
      "id": "local_development_runbook_evidence",
      "status": "missing_production_evidence",
      "required_evidence": [
        "local starter command output",
        "local endpoint override warning",
        "no-secret scan",
        "hash manifest"
      ],
      "failure_mode": "fail-closed until local development runbook evidence is accepted as non-production"
    },
    {
      "id": "public_faucet_absence_boundary",
      "status": "missing_production_evidence",
      "required_evidence": [
        "public faucet disabled statement",
        "admin faucet not public proof",
        "SDK faucet path disabled proof"
      ],
      "failure_mode": "fail-closed until public faucet absence boundary is signed and accepted"
    },
    {
      "id": "external_audit_and_final_signatures",
      "status": "missing_production_evidence",
      "required_evidence": [
        "external audit final report",
        "final recurring static audit",
        "final readiness signatures",
        "C total Go-No-Go receipt"
      ],
      "failure_mode": "fail-closed until external audit, final signatures, and C total Go-No-Go are accepted"
    }
  ],
  "known_blockers": [
    "signed_disabled_public_sandbox_manifest_missing",
    "sdk_preset_fail_closed_public_evidence_missing",
    "local_development_runbook_evidence_missing",
    "public_faucet_absence_boundary_missing",
    "external_audit_final_signatures_missing"
  ],
  "closing_boundary": "This manifest chooses the conservative Option B local fail-closed strategy only. It does not provide a public devnet, public testnet, public faucet, signed disabled manifest, public SDK preset, external audit, final signatures, or C total Go-No-Go.",
  "strategy_id": "developer_sandbox_strategy",
  "reserved_testnet_domains": [
    {
      "domain": "testnet-rpc.msgchain.org",
      "state": "reserved_fail_closed",
      "note": "预留 testnet RPC，Worker route ->msgchain-domain-entrypoints，testnet_not_launched_fail_closed"
    },
    {
      "domain": "testnet-nodes.msgchain.org",
      "state": "reserved_fail_closed",
      "note": "预留 testnet discovery/control-plane，Worker route ->msgchain-domain-entrypoints，testnet_not_launched_fail_closed"
    },
    {
      "domain": "testnet-api.msgchain.org",
      "state": "reserved_fail_closed",
      "note": "预留 testnet REST/API gateway，Worker route ->msgchain-domain-entrypoints，testnet_not_launched_fail_closed"
    },
    {
      "domain": "testnet-grpc.msgchain.org",
      "state": "reserved_fail_closed",
      "note": "预留 testnet gRPC endpoint，Worker route ->msgchain-domain-entrypoints，testnet_not_launched_fail_closed"
    },
    {
      "domain": "testnet-indexer.msgchain.org",
      "state": "reserved_fail_closed",
      "note": "预留 testnet indexer API，Worker route ->msgchain-domain-entrypoints，testnet_not_launched_fail_closed"
    },
    {
      "domain": "testnet-explorer.msgchain.org",
      "state": "reserved_fail_closed",
      "note": "预留 testnet explorer，Worker route ->msgchain-domain-entrypoints，testnet_not_launched_fail_closed"
    },
    {
      "domain": "testnet-faucet.msgchain.org",
      "state": "reserved_fail_closed",
      "note": "预留 testnet faucet，Worker route ->msgchain-domain-entrypoints，testnet_not_launched_fail_closed"
    },
    {
      "domain": "testnet-wallet.msgchain.org",
      "state": "reserved_fail_closed",
      "note": "预留 testnet wallet frontend，Worker route ->msgchain-domain-entrypoints，testnet_not_launched_fail_closed"
    },
    {
      "domain": "testnet-agent.msgchain.org",
      "state": "reserved_fail_closed",
      "note": "预留 testnet AI agent gateway，Worker route ->msgchain-domain-entrypoints，testnet_not_launched_fail_closed"
    },
    {
      "domain": "testnet-agents.msgchain.org",
      "state": "reserved_fail_closed",
      "note": "预留 testnet AI agent gateway alias，Worker route ->msgchain-domain-entrypoints，testnet_not_launched_fail_closed"
    }
  ],
  "public_entry_default": "disabled_fail_closed",
  "local_baseline_entry_points": [
    "chain_config/network_presets.json",
    "chain_config/keplr_chain_info.json",
    "examples/index.json",
    "release_pack/developer_dapp_starter_e2e_manifest.json",
    "release_pack/developer_public_sandbox_strategy_manifest.json"
  ],
  "public_consumption_boundary": [
    "当前公开口径是 Option B: disabled public sandbox with explicit local development path。",
    "未看到 signed disabled manifest、public faucet absence proof 与 final signatures 前，外部 AI 必须把 public devnet/testnet/faucet 视为不可用。"
  ],
  "metadata_profile": "public_stable"
}