{
  "ok": true,
  "contractId": "local.castermarketsignal-static-shell-isolation.v0",
  "status": "blocked_external",
  "mode": "live_vercel_static_castermarketsignal_with_runtime_blocker_gates",
  "publicReadinessStatus": "blocked_external",
  "runtimeVisibilityStatus": "passed",
  "localOnly": false,
  "staticFallback": true,
  "writeAccepted": false,
  "liveMutationAllowed": false,
  "productionReady": false,
  "commercialReady": false,
  "acceptedAsProductionEvidence": false,
  "surfaces": {
    "web": "/castermarketsignal",
    "miniapp": "/miniapps/castermarketsignal",
    "source": "/miniapps/caster-market-signal",
    "sourceApi": "/api/farcaster-miniapps?slug=caster-market-signal",
    "api": [
      "/api/castermarketsignal/signal-card",
      "/api/castermarketsignal/prompt",
      "/api/castermarketsignal/options",
      "/api/castermarketsignal/official-link",
      "/api/castermarketsignal/unsafe-links",
      "/api/castermarketsignal/share",
      "/api/castermarketsignal/proof",
      "/api/castermarketsignal/claim",
      "/api/castermarketsignal/rewards",
      "/api/castermarketsignal/wallet",
      "/api/castermarketsignal/game-profile",
      "/api/castermarketsignal/rate-limits",
      "/api/castermarketsignal/anti-replay",
      "/api/castermarketsignal/catalog-api",
      "/api/castermarketsignal/image",
      "/api/castermarketsignal/qstorage",
      "/api/castermarketsignal/event-log",
      "/api/castermarketsignal/rollback"
    ],
    "status": "/api/castermarketsignal/status"
  },
  "metrics": [
    {
      "label": "Mini app",
      "value": "Market Signal",
      "status": "blocked_external"
    },
    {
      "label": "Reward",
      "value": "$CASTER",
      "status": "blocked_external"
    },
    {
      "label": "Signal",
      "value": "official-link",
      "status": "blocked_external"
    },
    {
      "label": "Claims",
      "value": "blocked",
      "status": "blocked_external"
    }
  ],
  "lanes": [
    {
      "id": "signal",
      "title": "Official-link signal",
      "summary": "Read-only market-safety prompt that teaches users to choose the official Casterchain link over unsafe airdrop or seed-phrase requests.",
      "status": "blocked_external"
    },
    {
      "id": "proof",
      "title": "Share and proof",
      "summary": "Farcaster QuickAuth, share/cast proof, challenge sessions, and anti-replay checks remain blocked until runtime receipts pass.",
      "status": "blocked_external"
    },
    {
      "id": "rewards",
      "title": "Reward claim",
      "summary": "$CASTER reward claim, Caster Wallet settlement, and reward ledger writes are blocked until strict evidence passes.",
      "status": "blocked_external"
    },
    {
      "id": "proofs",
      "title": "Rate limits, event log, and rollback",
      "summary": "Rate limits, game profile state, QStorage, Caster event-log append, and rollback lanes require strict runtime evidence.",
      "status": "blocked_external"
    }
  ],
  "blockers": [
    "No accepted full Next Caster Market Signal build/typecheck receipt exists for this standalone fallback.",
    "No accepted shared Reown identity, Farcaster QuickAuth, wallet-auth session, catalog runtime, market-signal prompt runtime, or challenge-session receipt exists.",
    "No accepted official-link signal, share/cast proof, reward claim, reward-ledger, rate-limit, anti-replay, game-profile, or Caster Wallet settlement receipt exists.",
    "No accepted QStorage write, event-log append, Caster event log rollback, or production datastore rollback receipt exists.",
    "No signed @casterchain Farcaster accountAssociation exists for castermarketsignal.vercel.app.",
    "No live challenge session, proof verification, reward claim, wallet settlement, rate-limit mutation, anti-replay write, QStorage write, event-log append, or production datastore mutation is allowed from this fallback."
  ]
}
