{"format":"receipts-proof/1","hash":"0f59f9e9873e72d88ea4c98935737f7a91111601eafdb86b0e170ec01fee0a92","provider":"demo-macd-momentum","seq":102,"kind":"signal","issued_at":"2026-10-21T10:55:53.113Z","prev":"e6beeb99dd39fbfaafa3578d553ee61d4b212234c72317260042f2e35536440c","body":{"issued_at":"2026-10-21T10:55:53.113Z","kind":"signal","nonce":"1cbfe7fdbb03130805699db5f2996e35","payload":{"entry":{"type":"market"},"expires_at":"2026-10-21T22:55:53.113Z","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":"2449.29","targets":["2462.07","2471.65"]},"prev":"e6beeb99dd39fbfaafa3578d553ee61d4b212234c72317260042f2e35536440c","provider":"demo-macd-momentum","seq":102,"v":1},"signer":null,"sig":null,"batch":{"root":"0f59f9e9873e72d88ea4c98935737f7a91111601eafdb86b0e170ec01fee0a92","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-21T10:56:45.070Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":972458},"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"]}