{"format":"receipts-proof/1","hash":"f4e9730822f21f1d090fce7e7821564ed50198ad9400c37675e5775b81a6853f","provider":"demo-rsi-reversion","seq":102,"kind":"signal","issued_at":"2026-10-07T13:45:37.509Z","prev":"90a0a69aa314afb587e0520f1b1010cd23a1e1b8ca5c1b008796b50eb35a67d9","body":{"issued_at":"2026-10-07T13:45:37.509Z","kind":"signal","nonce":"c1e07c59229a9fec6517a677c36e6fd7","payload":{"entry":{"type":"market"},"expires_at":"2026-10-08T01:45:37.509Z","market":{"kind":"perp","symbol":"XRPUSDT","venue":"binance-usdm"},"note":"Demo bot: RSI(14) 25/75 reversion, 5m. Mechanical rule, not advice.","side":"long","stop":"1.4221","targets":["1.4355","1.4422"]},"prev":"90a0a69aa314afb587e0520f1b1010cd23a1e1b8ca5c1b008796b50eb35a67d9","provider":"demo-rsi-reversion","seq":102,"v":1},"signer":null,"sig":null,"batch":{"root":"349daa0d4784bf906c86e4e0ac1586f23baf84e1820a197c1d2d208bbe39fa7f","index":1,"leaf_count":4,"proof":[{"side":"L","hash":"90a0a69aa314afb587e0520f1b1010cd23a1e1b8ca5c1b008796b50eb35a67d9"},{"side":"R","hash":"ae795d56785153c64b64315ce5aaf53f3ad99a511fa80365ee519a7a96f29674"}],"sealed_at":"2026-10-07T13:46:37.670Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970352},"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"]}