{
  "schemaVersion": 1,
  "project": "SwissDLT Bridge MVP",
  "status": "not_ready",
  "statusPlain": "The bridge reports not_ready. GET /api/health returns HTTP 503 with status not_ready because the contract addresses and relayer keys are not configured. No transfer can run. Only the read-only interface, documentation and MCP tools are live.",
  "updatedAt": "2026-11-07T23:30:06Z",
  "publicOrigin": "https://bridge.swissdlt.tech",
  "chains": [
    {
      "chainId": 94,
      "name": "SwissDLT",
      "role": "source",
      "testnet": false
    },
    {
      "chainId": 6281971,
      "name": "DogeOS Chikyū Testnet",
      "role": "destination",
      "testnet": true
    }
  ],
  "bridge": {
    "version": "mvp-1.1-two-way",
    "healthUrl": "https://bridge.swissdlt.tech/api/health",
    "healthHttpStatus": 503,
    "healthStatus": "not_ready",
    "contractsDeployed": false,
    "relayersConfigured": false,
    "transfersOperational": false,
    "audit": "none",
    "trustModel": "Separate single relayers per direction, heuristic confirmations (30 SwissDLT blocks, 10 DogeOS blocks), caps and pause controls, no threshold validation.",
    "productionPlan": "Planned: Hyperlane with 3-of-5 independent validators. This MVP does not replace it."
  },
  "mcp": {
    "url": "https://bridge.swissdlt.tech/api/mcp",
    "transport": "JSON-RPC 2.0 over HTTPS POST",
    "auth": "none",
    "protocolVersion": "2025-03-26",
    "mode": "public-reads-only",
    "toolCount": 3,
    "tools": [
      "check_bridge_health",
      "get_bridge_configuration",
      "get_bridge_documentation"
    ],
    "signing": false,
    "broadcasting": false,
    "note": "check_bridge_health returns isError true with status not_ready rather than a false healthy state."
  },
  "thirdfy": {
    "manifestUrl": "https://bridge.swissdlt.tech/thirdfy-app.json",
    "wellKnownManifestUrl": "https://bridge.swissdlt.tech/.well-known/thirdfy-app.json",
    "appId": "swissdlt_bridge_mvp",
    "kind": "data",
    "manifestVersion": 2,
    "readActionCount": 3,
    "prepared": "prepared for submission",
    "submitted": false,
    "listed": false,
    "certified": false,
    "writeManifestPublished": false,
    "officialSchemaValidation": "blocked-official-schema-http-404",
    "officialSchemaCheckedAt": "2026-11-07T23:37:27Z",
    "referenceCheckedAt": "2026-11-07T23:37:27Z",
    "localFixtureValidation": "verify.py",
    "readBillingTier": "read_offchain",
    "readCredits": 0.045,
    "creditsObservedAt": "2026-11-07T23:30:06Z",
    "creditsSource": "https://api.thirdfy.com/api/v1/agent/actions/catalog",
    "mcpResultSchema": "CallToolResult: content + structuredContent + isError, excluding the outer JSON-RPC envelope",
    "thirdfyResultMappingConfirmed": false
  },
  "gates": [
    {
      "id": "bridge-not-ready",
      "scope": "reads-and-writes",
      "status": "not_ready",
      "detail": "Contracts are not deployed and relayer keys are not configured. Reads describe this state; they do not imply live transfers."
    },
    {
      "id": "official-schema",
      "scope": "reads-and-writes",
      "status": "pending",
      "detail": "The advertised machine schema returned HTTP 404 on 2026-11-07T23:37:27Z. Checks follow the published reference rules and real MCP fixtures; this is not official schema validation.",
      "source": "https://api.thirdfy.com/schemas/thirdfy-app.v1.json"
    },
    {
      "id": "mcp-adapter-mapping",
      "scope": "reads",
      "status": "pending-thirdfy-network-check",
      "detail": "Confirm whether Thirdfy validates the full CallToolResult or unwraps structuredContent. The manifest describes the full result the server returns."
    },
    {
      "id": "appid",
      "scope": "reads-and-writes",
      "status": "decided",
      "detail": "appId swissdlt_bridge_mvp: Action names are snake case and any future write must be named <appId>_<verb>, which a hyphenated appId cannot satisfy; the other SwissDLT packages use underscores (swissdlt_swap, swissdlt_token_studio). The appId was never submitted, so changing it is safe. Never submitted; the first submitter owns the appId."
    },
    {
      "id": "thirdfy-review",
      "scope": "reads-and-writes",
      "status": "not-submitted",
      "detail": "Account submission, appId ownership, static and network checks, human review and test-agent gates have not been performed.",
      "submissionUrl": "https://thirdfy.com/partner/new"
    },
    {
      "id": "chain-support",
      "scope": "writes",
      "status": "not-confirmed",
      "detail": "Catalog observation 2026-11-07T23:30:06Z: no action lists chain 94; 23 actions list DogeOS Chikyū 6281971. Reads do not need chain support.",
      "source": "https://api.thirdfy.com/api/v1/agent/actions/catalog"
    },
    {
      "id": "evm-compatibility",
      "scope": "deployment",
      "status": "deploy-blocker",
      "detail": "Compiled for the shanghai EVM. SwissDLT runs the Berlin EVM, and the vault runtime bytecode contains PUSH0, which Berlin does not support. Review the compile target before any deployment on chain 94."
    },
    {
      "id": "security-review",
      "scope": "writes",
      "status": "not-started",
      "detail": "No external audit. A single source release operator can release any amount up to the locked collateral; its compromise can drain the vault. See write-candidates.json."
    }
  ],
  "contractsUrl": "https://bridge.swissdlt.tech/.well-known/contracts.json",
  "docsUrl": "https://bridge.swissdlt.tech/llms-full.txt",
  "interface": "https://bridge.swissdlt.tech/",
  "llms": "https://bridge.swissdlt.tech/llms.txt",
  "llmsFull": "https://bridge.swissdlt.tech/llms-full.txt",
  "documentationJson": "https://bridge.swissdlt.tech/integrations/thirdfy/bridge-docs.json",
  "docsReference": "https://docs.thirdfy.com/documentation/protocols/thirdfy-app-json"
}
