{"format":"receipts-proof/1","hash":"fddc4ac3acfd97c3712874b8b77a8a28f3ca531c7415a6054b6adc402083f114","provider":"demo-ema-cross","seq":177,"kind":"signal","issued_at":"2026-11-07T23:49:09.177Z","prev":"e9762ef1fdbd1dd47c9bc623071156046b507d301322b542d6bba58229c5fb8f","body":{"issued_at":"2026-11-07T23:49:09.177Z","kind":"signal","nonce":"237c77cdbd20bd6a92b4ac2acf325452","payload":{"entry":{"type":"market"},"expires_at":"2026-11-08T23:49:09.177Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"75714","targets":["76060.4"]},"prev":"e9762ef1fdbd1dd47c9bc623071156046b507d301322b542d6bba58229c5fb8f","provider":"demo-ema-cross","seq":177,"v":1},"signer":null,"sig":null,"batch":{"root":"f9e7388efe2414e6c690310b8e6d724b3ad12f6516a0743892717fcd6d532a79","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"e021a5705a4a0aac6063266e4e41073e5b09c0c497462e9150e36bae6352ac6a"}],"sealed_at":"2026-11-08T00:07:00.033Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":975007},"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"]}