{"format":"receipts-proof/1","hash":"642f9f33a66a2773ac684d37cc67c596ef5e2187cc91953ff30f5deeeaa29695","provider":"demo-macd-momentum","seq":58,"kind":"signal","issued_at":"2026-10-09T11:36:33.004Z","prev":"baf456274c1f521eea77e0db4fd25d0f475b499e5b19bca1f5b89b31455cd03f","body":{"issued_at":"2026-10-09T11:36:33.004Z","kind":"signal","nonce":"ad0919434f04dd2d4b7b58fe59aebcbd","payload":{"entry":{"type":"market"},"expires_at":"2026-10-09T23:36:33.004Z","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":"2490.84","targets":["2504.62","2514.96"]},"prev":"baf456274c1f521eea77e0db4fd25d0f475b499e5b19bca1f5b89b31455cd03f","provider":"demo-macd-momentum","seq":58,"v":1},"signer":null,"sig":null,"batch":{"root":"3bbc25588b9bead0bd61fa9c80e393ec2fe85fdb2034d7ff592eaf1235c95ce9","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"25019755958a064b52bbe2afb77d961cda4f956c5dcfb956261441d4856d6c36"}],"sealed_at":"2026-10-09T11:47:32.992Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970626},"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"]}