{
  "README": "Confidential Agents — independent verification bundle.\n\nNothing in this file asks you to trust us. It contains no verdict of ours; it contains\nthe material you need to reach your own. Two independent checks are possible:\n\n1. THE CHAIN'S VERDICT. Open `chain.basescanUrl`. The Verifier contract on Base Sepolia\n   emitted either JobVerified or JobRejected for this job. That event is the settlement\n   gate: payment is released only after JobVerified.\n\n2. THE ENCLAVE'S SIGNATURE. `binding.seal` is a secp256k1 signature over the response\n   body, produced by the code that recomputed the client's commitment. Recover it with\n   plain ethers and compare against `binding.expectedSigner`:\n\n     npm i ethers\n     node -e \"const {ethers}=require('ethers');const b=require('./bundle.json');\\\n       console.log(ethers.recoverAddress(b.binding.sealDigest, b.binding.seal))\"\n\n   Rebuild the digest yourself first if you want the whole chain:\n\n     node -e \"const {ethers}=require('ethers');const b=require('./bundle.json').binding;\\\n       const h=ethers.sha256(b.bodyHex).slice(2);\\\n       console.log(ethers.keccak256(ethers.toUtf8Bytes(\\\n         [b.agentId,b.sealId,b.timestamp,h].join('|'))) === b.sealDigest)\"\n\n3. THE DELIVERABLE ITSELF, if `archive` is present. The work is stored on 0G Storage,\n   encrypted, and `archive.rootHash` is the address it is fetched by. You can download it\n   from the network without asking us for anything:\n\n     npm i @0gfoundation/0g-ts-sdk\n     node -e \"const {Indexer}=require('@0gfoundation/0g-ts-sdk');\\\n       new Indexer('https://indexer-storage-testnet-turbo.0g.ai')\\\n         .download('<archive.rootHash>','./blob.bin',true).then(console.log)\"\n\n   The blob is AES-256-GCM ciphertext and the key is NOT in this file — it exists only in\n   the envelope encrypted to the client. So you can confirm the artefact EXISTS and is\n   retrievable by anyone; reading it stays the client's privilege. The client, who does\n   hold the key, checks one more thing: keccak256 of the decrypted bytes equals the\n   `outputHash` inside the sealed body — the number the contract ruled on. That is what\n   makes the archive the same work the chain verified rather than merely a file.\n\nWHAT WE DO NOT CLAIM (CLAUDE.md §11):\n- The 0G TEE signature does NOT cover the answer text. It covers a colon-joined tuple\n  containing sha256 of the RAW response body — the answer's fingerprint. Same guarantee\n  against tampering, different sentence.\n- The `match` flag was computed by UNATTESTED code. No TDX host was available, so the\n  recompute did not run inside a measured enclave. You, holding the brief, can verify it\n  independently; a stranger cannot. That gap is real and we are not papering over it.\n- We did not build the TEE. 0G did. We bind it to the client's intent.",
  "recordedAt": "2026-07-26T12:49:06.243Z",
  "job": {
    "fraudMode": "none",
    "signedIntentHash": "0xf744341c095509382adfe26b2dcb137a3cab5475347ea972c3c4218f7b4b4265",
    "bodyIntentHash": "0xf744341c095509382adfe26b2dcb137a3cab5475347ea972c3c4218f7b4b4265",
    "match": true
  },
  "binding": {
    "agentId": "agent-8429",
    "sealId": "0x184749fae313c8a9",
    "timestamp": "1785070115",
    "bodyHex": "0xf744341c095509382adfe26b2dcb137a3cab5475347ea972c3c4218f7b4b426533f8cfeb64ca4aaf984e0f822f8ae87aeaa6dedaafcabe7aa17fe6680d15ccd20000000000000000000000000000000000000000000000000000000000000001685c63b00b17e0fdd2f2c3a5a381df689cba7f77eec48ccaee8662092de111b7",
    "sealDigest": "0x9f4c560990efde4fc239cec8ff7c99b1e8c7e1f87afbb7c3e3b0f445a90100c3",
    "seal": "0xed7e22ced3f84f8dd8c5f1cfa4e6f4a3fac781f67840a6b3095b937d992f4ea078ad98aa399a8f9ea6492d4cfa022aff414a4a43fe7f1375106fa1e6e4972a3e1c",
    "expectedSigner": "0x521dc808769A27F50DBA439619bd3E3F7c24F557",
    "recoveredCandidates": [
      {
        "v": 27,
        "address": "0x037dFe6DE6b4D0d57093466Bd4F3aB73063Cd436"
      },
      {
        "v": 28,
        "address": "0x521dc808769A27F50DBA439619bd3E3F7c24F557"
      }
    ],
    "note": "`v` is absent from the wire signature — the 0G agent-wrapper discards it — so it is brute-forced over {27,28}. `seal` is serialised with the parity that yields `expectedSigner`; when neither does, which is exactly what a forged seal looks like, it is serialised with 27 and the recovered address will not match. Both candidates are listed so you never have to take our word for which one we picked."
  },
  "chain": {
    "network": "base-sepolia",
    "chainId": 84532,
    "verifier": "0x3B116D648B710f551e37223c4c4d39879AFEEb96",
    "verdict": "OK",
    "verified": true,
    "txHash": "0x9aa9e1281003d76104489de90b1eedecb420a9fae8960584256a9c09587c3138",
    "blockNumber": 44650927,
    "basescanUrl": "https://sepolia.basescan.org/tx/0x9aa9e1281003d76104489de90b1eedecb420a9fae8960584256a9c09587c3138"
  },
  "compute": {
    "provider": "0g-sealed-inference",
    "ogSignatureVerified": true,
    "note": "A live 0G Sealed Inference call."
  },
  "reasoning": {
    "provider": "claude-local",
    "decisions": {
      "hire": {
        "provider": "claude-local",
        "agentId": "8429",
        "rationale": "Agent 8429 has a solid track record of completed jobs, while 8432 has zero history to trust.",
        "latencyMs": 7223
      },
      "price": {
        "provider": "claude-local",
        "approve": true,
        "rationale": "The price is well within budget, the agent has a strong track record, and payment only releases if a smart contract confirms the work matches the order.",
        "latencyMs": 6937
      },
      "result": {
        "provider": "claude-local",
        "accept": false,
        "rationale": "The analysis is generic boilerplate with a sloppy currency mix-up (euros vs dollars) and doesn't dig into the actual numbers like deferred-revenue ratio or contract concentration, so it's not reliable enough to use.",
        "latencyMs": 11533
      }
    },
    "note": "The agents' decision layer is UNVERIFIED and UNATTESTED. It can refuse to trade; it cannot make an invalid job verify. Nothing it said is signed by anything."
  },
  "timeline": {
    "topicId": "0.0.9738448",
    "hashscanUrl": "https://hashscan.io/testnet/topic/0.0.9738448",
    "stages": [
      "402_ISSUED",
      "INTENT_COMMIT",
      "ENCLAVE_INVOKED",
      "OUTPUT_COMMIT",
      "SETTLED"
    ]
  },
  "payment": {
    "rail": "hedera-x402",
    "quoted": true,
    "authorized": true,
    "settled": true,
    "txRef": "0.0.7162784@1785070107.471116702",
    "explorerUrl": "https://hashscan.io/testnet/transaction/0.0.7162784-1785070107-471116702",
    "paidTo": "0.0.9738447",
    "agentIdentity": "0.0.9738447"
  },
  "archive": null
}
