{"format":"receipts-proof/1","hash":"f61207c322d10940d869835e881871e566592f989299f0d3c9479e2070140ca0","provider":"demo-donchian-breakout","seq":5,"kind":"signal","issued_at":"2026-09-27T02:03:10.822Z","prev":"0c2fbef17205da9c6393f65a90b620e520f50c9434f86cf2f03c3f1328e13e02","body":{"issued_at":"2026-09-27T02:03:10.822Z","kind":"signal","nonce":"b261305e13cf8ea083f7faab378c9d38","payload":{"entry":{"type":"market"},"expires_at":"2026-09-29T02:03:10.822Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"long","stop":"2681.37","targets":["2729.1","2757.74"]},"prev":"0c2fbef17205da9c6393f65a90b620e520f50c9434f86cf2f03c3f1328e13e02","provider":"demo-donchian-breakout","seq":5,"v":1},"signer":null,"sig":null,"batch":{"root":"aa24bf5920df6e965d690b46793b824a619738ff5ddf683d9c5d8a2ad85c75bf","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"cdb24bacad6a6e473273e3a0a6219ef74c14074816846874a6a57014da494e5f"}],"sealed_at":"2026-09-27T02:15:14.915Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968772},"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"]}