{"format":"receipts-proof/1","hash":"5538aaf9b5713d4fa042e720ca1a072bc156e6d8c2af2c5fb0324f087a3fec95","provider":"demo-macd-momentum","seq":41,"kind":"signal","issued_at":"2026-10-03T08:10:07.264Z","prev":"19f5af30e3e6b48f8ecf8a01355e1b48b991805830c20a713f5c5e6b1e8a172f","body":{"issued_at":"2026-10-03T08:10:07.264Z","kind":"signal","nonce":"3cda3d9fe8303e64640719dc9ab5374e","payload":{"entry":{"type":"market"},"expires_at":"2026-10-03T20:10:07.264Z","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":"84535.7","targets":["84653.3","84741.6"]},"prev":"19f5af30e3e6b48f8ecf8a01355e1b48b991805830c20a713f5c5e6b1e8a172f","provider":"demo-macd-momentum","seq":41,"v":1},"signer":null,"sig":null,"batch":{"root":"5538aaf9b5713d4fa042e720ca1a072bc156e6d8c2af2c5fb0324f087a3fec95","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-03T08:11:07.264Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969704},"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"]}