{"format":"receipts-proof/1","hash":"52744de96cef3d0c601b3bf34c795783ea8d2722000cbe59e496d697169880f9","provider":"demo-macd-momentum","seq":88,"kind":"signal","issued_at":"2026-10-14T08:45:36.197Z","prev":"7eb4d87b663989d98bea23eca88782b9e257373e070ccfed3171ac00ad9cd637","body":{"issued_at":"2026-10-14T08:45:36.197Z","kind":"signal","nonce":"1147957fb748ef9e056734835932bf8f","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T20:45:36.197Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"short","stop":"2514.72","targets":["2497.74","2485"]},"prev":"7eb4d87b663989d98bea23eca88782b9e257373e070ccfed3171ac00ad9cd637","provider":"demo-macd-momentum","seq":88,"v":1},"signer":null,"sig":null,"batch":{"root":"19e81c7055ed795ae8bd1d31162517eaa0b2a355c1c6d0e6bebc9ce4ba3f93dc","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"7eb4d87b663989d98bea23eca88782b9e257373e070ccfed3171ac00ad9cd637"}],"sealed_at":"2026-10-14T08:45:36.763Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971380},"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"]}