{"format":"receipts-proof/1","hash":"c62b43949708b42f37f30855bb5613074a2cb490b4d11cf98dfbe6c29a7e5677","provider":"demo-macd-momentum","seq":28,"kind":"signal","issued_at":"2026-10-01T13:45:21.093Z","prev":"91df265ae9b0b24453da8860f3511612c9e72cb7c5c311a5f632f0d4873ceac3","body":{"issued_at":"2026-10-01T13:45:21.093Z","kind":"signal","nonce":"df8b2affcac893a52d057e0c2b514f61","payload":{"entry":{"type":"market"},"expires_at":"2026-10-02T01:45:21.093Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"long","stop":"83663.2","targets":["84153.2","84520.7"]},"prev":"91df265ae9b0b24453da8860f3511612c9e72cb7c5c311a5f632f0d4873ceac3","provider":"demo-macd-momentum","seq":28,"v":1},"signer":null,"sig":null,"batch":{"root":"c62b43949708b42f37f30855bb5613074a2cb490b4d11cf98dfbe6c29a7e5677","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-01T13:46:19.751Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969451},"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"]}