{"format":"receipts-proof/1","hash":"0812787589f04ec49a833198b3a57e755f83f97a52bdc3fd7e248222038f53a4","provider":"demo-donchian-breakout","seq":25,"kind":"signal","issued_at":"2026-10-04T23:10:13.714Z","prev":"3bb977dbc1077a6183ba023b9165d274e8e2d14e35fb93a7b903d64534659e25","body":{"issued_at":"2026-10-04T23:10:13.714Z","kind":"signal","nonce":"c6a57a060c097674b154ea665e3ed76d","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T23:10:13.714Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"long","stop":"2711.81","targets":["2756.78","2783.76"]},"prev":"3bb977dbc1077a6183ba023b9165d274e8e2d14e35fb93a7b903d64534659e25","provider":"demo-donchian-breakout","seq":25,"v":1},"signer":null,"sig":null,"batch":{"root":"8b3e18ad3dbf648e2c525069eee9a6254c05a934253a0e523ce333df1d6bdf7b","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"3bb977dbc1077a6183ba023b9165d274e8e2d14e35fb93a7b903d64534659e25"}],"sealed_at":"2026-10-04T23:26:58.725Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969920},"how_to_verify":["hash = sha256(\"receipts/v1\\n\" + canonical_json(body)), keys sorted, no whitespace.","body.prev must equal the hash of the same provider's event seq - 1 (64 zeros for seq 1).","If signer is set: sig must be a valid Ed25519 signature by signer over the UTF-8 bytes of \"receipts/v1/sig\\n\" + hash.","Fold the Merkle proof: node = sha256(0x01 || left || right); the result must equal batch.root.","Decode opentimestamps (base64) to a .ots file, then run: ots upgrade file.ots && ots verify -d <batch.root> file.ots","Or run: node scripts/verify-bundle.mjs bundle.json"]}