{"format":"receipts-proof/1","hash":"7c927995aba5c5f082e7cd5c7ba72b34e17da313e183d9d1910f87a7f6927b07","provider":"demo-ema-cross","seq":77,"kind":"signal","issued_at":"2026-10-03T21:02:43.107Z","prev":"78acf7128d296f191e48b11583fca9aa336381faf2c468eef651080ca689311a","body":{"issued_at":"2026-10-03T21:02:43.107Z","kind":"signal","nonce":"9a056e0cb0b8d455e5bacc3bdce8a057","payload":{"entry":{"type":"market"},"expires_at":"2026-10-04T21:02:43.107Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"84824.8","targets":["84450.1"]},"prev":"78acf7128d296f191e48b11583fca9aa336381faf2c468eef651080ca689311a","provider":"demo-ema-cross","seq":77,"v":1},"signer":null,"sig":null,"batch":{"root":"7c927995aba5c5f082e7cd5c7ba72b34e17da313e183d9d1910f87a7f6927b07","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-03T21:19:57.396Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969765},"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"]}