{"format":"receipts-proof/1","hash":"11dbdfa1d7d3021df966c6765ec1328dc94ccc4b11d2b62643fe125d1ed1432e","provider":"demo-ema-cross","seq":24,"kind":"signal","issued_at":"2026-09-26T13:15:05.783Z","prev":"4638baa323ada2a8ef14e0509cabce0c0318e2d09ca6188e5ae0ceb4e45dad6e","body":{"issued_at":"2026-09-26T13:15:05.783Z","kind":"signal","nonce":"de3a84d98509cfb93824433eb3c25acd","payload":{"entry":{"type":"market"},"expires_at":"2026-09-27T13:15:05.783Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"84067.9","targets":["83749.2"]},"prev":"4638baa323ada2a8ef14e0509cabce0c0318e2d09ca6188e5ae0ceb4e45dad6e","provider":"demo-ema-cross","seq":24,"v":1},"signer":null,"sig":null,"batch":{"root":"11dbdfa1d7d3021df966c6765ec1328dc94ccc4b11d2b62643fe125d1ed1432e","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-26T13:16:05.800Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968688},"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"]}