{"format":"receipts-proof/1","hash":"b04b2d318ea8cd8f28c47d2f44d9492a24f37fae2b3d5ea601262e75c3709d73","provider":"demo-macd-momentum","seq":43,"kind":"signal","issued_at":"2026-10-03T13:55:56.957Z","prev":"0f4b8e0129dc3890a81204667f7b511485498bdcda289dfc6bb07d5bfbae7cdf","body":{"issued_at":"2026-10-03T13:55:56.957Z","kind":"signal","nonce":"174418cad3f9e942848de394a8ed9461","payload":{"entry":{"type":"market"},"expires_at":"2026-10-04T01:55:56.957Z","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":"2678.56","targets":["2683.28","2686.82"]},"prev":"0f4b8e0129dc3890a81204667f7b511485498bdcda289dfc6bb07d5bfbae7cdf","provider":"demo-macd-momentum","seq":43,"v":1},"signer":null,"sig":null,"batch":{"root":"b04b2d318ea8cd8f28c47d2f44d9492a24f37fae2b3d5ea601262e75c3709d73","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-03T13:56:56.897Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969745},"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"]}