{"format":"receipts-proof/1","hash":"e7c1bb2d4dd50c6c41f0f8761a32fed38b8998823cb85a4fe7bf978876ffbcfd","provider":"demo-rsi-reversion","seq":120,"kind":"signal","issued_at":"2026-10-12T13:40:08.830Z","prev":"190d64d87c69a283757c66131bb610a55f9ec9967ec295b8b13dca1663024ada","body":{"issued_at":"2026-10-12T13:40:08.830Z","kind":"signal","nonce":"39d0abb757b9033cba5b5f438c596d4f","payload":{"entry":{"type":"market"},"expires_at":"2026-10-13T01:40:08.830Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: RSI(14) 25/75 reversion, 5m. Mechanical rule, not advice.","side":"long","stop":"82440.3","targets":["82970.9","83236.2"]},"prev":"190d64d87c69a283757c66131bb610a55f9ec9967ec295b8b13dca1663024ada","provider":"demo-rsi-reversion","seq":120,"v":1},"signer":null,"sig":null,"batch":{"root":"e7c1bb2d4dd50c6c41f0f8761a32fed38b8998823cb85a4fe7bf978876ffbcfd","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-12T13:41:08.956Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971101},"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"]}