{"format":"receipts-proof/1","hash":"16aa9698dc83a4feae262d36d5bb7f9b5c5846d5bea5a0ae4350593ec4c74b3c","provider":"demo-macd-momentum","seq":82,"kind":"signal","issued_at":"2026-10-13T23:05:18.621Z","prev":"a1df7b49dbb1278804fdd884c4a641c34c42c6b0497e4af79267cf63643c29cc","body":{"issued_at":"2026-10-13T23:05:18.621Z","kind":"signal","nonce":"ccc89549826e28042d13f5f0c9167b67","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T11:05:18.621Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"short","stop":"83399.1","targets":["83195.7","83043.1"]},"prev":"a1df7b49dbb1278804fdd884c4a641c34c42c6b0497e4af79267cf63643c29cc","provider":"demo-macd-momentum","seq":82,"v":1},"signer":null,"sig":null,"batch":{"root":"16aa9698dc83a4feae262d36d5bb7f9b5c5846d5bea5a0ae4350593ec4c74b3c","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-13T23:05:24.316Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971318},"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"]}