{"format":"receipts-proof/1","hash":"ead6558455f3f8bbd5fc0b36366b832d7196047786c42ee4c698ca4f449e4097","provider":"demo-macd-momentum","seq":53,"kind":"signal","issued_at":"2026-10-05T14:35:01.220Z","prev":"ccfe077508de6e0c3b051dc0fc8758d675e91987af3476ff9cf95f689fab147a","body":{"issued_at":"2026-10-05T14:35:01.220Z","kind":"signal","nonce":"03eaab474ddb118d62fc35badb478074","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T02:35:01.220Z","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":"85899.3","targets":["85000.5","84326.3"]},"prev":"ccfe077508de6e0c3b051dc0fc8758d675e91987af3476ff9cf95f689fab147a","provider":"demo-macd-momentum","seq":53,"v":1},"signer":null,"sig":null,"batch":{"root":"ead6558455f3f8bbd5fc0b36366b832d7196047786c42ee4c698ca4f449e4097","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-05T14:41:57.647Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970038},"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"]}