{"format":"receipts-proof/1","hash":"d5481242a498501825b671592cad64dcf6c686ad18ef7ea6871247d8180c2ed3","provider":"demo-donchian-breakout","seq":28,"kind":"signal","issued_at":"2026-10-06T07:43:27.426Z","prev":"1f8d258a3ce90757e9f5e8492967fba59db9aa85a422ac55a406afc9ef3796a6","body":{"issued_at":"2026-10-06T07:43:27.426Z","kind":"signal","nonce":"d492b5cd7a2f09074dbeaa777acb1a28","payload":{"entry":{"type":"market"},"expires_at":"2026-10-08T07:43:27.426Z","market":{"kind":"perp","symbol":"BNBUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"short","stop":"784.32","targets":["772.35","765.17"]},"prev":"1f8d258a3ce90757e9f5e8492967fba59db9aa85a422ac55a406afc9ef3796a6","provider":"demo-donchian-breakout","seq":28,"v":1},"signer":null,"sig":null,"batch":{"root":"d5481242a498501825b671592cad64dcf6c686ad18ef7ea6871247d8180c2ed3","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-06T07:43:28.680Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970149},"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"]}