{"format":"receipts-proof/1","hash":"4638baa323ada2a8ef14e0509cabce0c0318e2d09ca6188e5ae0ceb4e45dad6e","provider":"demo-ema-cross","seq":23,"kind":"signal","issued_at":"2026-09-26T11:45:05.569Z","prev":"1e176ddfc6d883f60adf5664f5fb3356cdec7509545b839f3fabd97e78097edc","body":{"issued_at":"2026-09-26T11:45:05.569Z","kind":"signal","nonce":"479066fad74aaab9d99479c7fafee5b0","payload":{"entry":{"type":"market"},"expires_at":"2026-09-27T11:45:05.569Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"120.56","targets":["122.32"]},"prev":"1e176ddfc6d883f60adf5664f5fb3356cdec7509545b839f3fabd97e78097edc","provider":"demo-ema-cross","seq":23,"v":1},"signer":null,"sig":null,"batch":{"root":"1b5b9c11adc54661b24394922fe2e24d52b95596761f8c64087ce73f2824624c","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"0101e4f0dbf288810ba9ddf3d8dd742e2a61a769348fa9d9ae5395bb1b7bd024"}],"sealed_at":"2026-09-26T11:46:05.588Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968682},"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"]}