{"format":"receipts-proof/1","hash":"dbc233d54147a9048d856fe9cee950ffd49be09dbaef20de54e3fb76e340baa8","provider":"demo-macd-momentum","seq":70,"kind":"signal","issued_at":"2026-10-11T22:06:16.396Z","prev":"0fa7a4e85f39a6191d5dba8dda8e424a2b9ece8ae2c67fe08917bd27e144d837","body":{"issued_at":"2026-10-11T22:06:16.396Z","kind":"signal","nonce":"e8cab2cf87d4e7d92d8ca38b093b9b53","payload":{"entry":{"type":"market"},"expires_at":"2026-10-12T10:06:16.396Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"long","stop":"2524.4","targets":["2539.36","2550.59"]},"prev":"0fa7a4e85f39a6191d5dba8dda8e424a2b9ece8ae2c67fe08917bd27e144d837","provider":"demo-macd-momentum","seq":70,"v":1},"signer":null,"sig":null,"batch":{"root":"dbc233d54147a9048d856fe9cee950ffd49be09dbaef20de54e3fb76e340baa8","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-11T22:21:32.429Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970992},"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"]}