{"format":"receipts-proof/1","hash":"faadc5b02c000ce123906912850a9f48cb2a3a933fcbf111746fa43cca3811af","provider":"demo-donchian-breakout","seq":55,"kind":"signal","issued_at":"2026-10-20T15:00:58.440Z","prev":"ed3a09113ff712b902e969c3296ddb46b055569d68aa8b3f03d88aaa619fb057","body":{"issued_at":"2026-10-20T15:00:58.440Z","kind":"signal","nonce":"26302ee9cb121ad3ad53510384a014e0","payload":{"entry":{"type":"market"},"expires_at":"2026-10-22T15:00:58.440Z","market":{"kind":"perp","symbol":"BNBUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"long","stop":"733.04","targets":["749.63","759.59"]},"prev":"ed3a09113ff712b902e969c3296ddb46b055569d68aa8b3f03d88aaa619fb057","provider":"demo-donchian-breakout","seq":55,"v":1},"signer":null,"sig":null,"batch":{"root":"126daf34266d86a80d75e499eb68eada900f194b4d5a080cd505804073d66ea2","index":3,"leaf_count":4,"proof":[{"side":"L","hash":"ed3a09113ff712b902e969c3296ddb46b055569d68aa8b3f03d88aaa619fb057"},{"side":"L","hash":"1a3f1c0d5464f47ca15ed4df20ba48dc48fe25d81038939cace1861a56b13917"}],"sealed_at":"2026-10-20T15:18:41.539Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":972349},"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"]}