{"format":"receipts-proof/1","hash":"331a4e1ba67c880bd4942a1ff36a2e7795cc57870ddd8e49720c7041de39d5a8","provider":"demo-rsi-reversion","seq":156,"kind":"signal","issued_at":"2026-10-15T15:45:51.688Z","prev":"ea2083fc8e709262d3ab577c82e5c9f438775b4c53d31c64c4bc71085f9fecb3","body":{"issued_at":"2026-10-15T15:45:51.688Z","kind":"signal","nonce":"94aaad711fd04b101f1f1e322488f9c2","payload":{"entry":{"type":"market"},"expires_at":"2026-10-16T03:45:51.688Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: RSI(14) 25/75 reversion, 5m. Mechanical rule, not advice.","side":"short","stop":"82767.8","targets":["81926","81505.1"]},"prev":"ea2083fc8e709262d3ab577c82e5c9f438775b4c53d31c64c4bc71085f9fecb3","provider":"demo-rsi-reversion","seq":156,"v":1},"signer":null,"sig":null,"batch":{"root":"331a4e1ba67c880bd4942a1ff36a2e7795cc57870ddd8e49720c7041de39d5a8","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-15T15:45:53.816Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971596},"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"]}