{"format":"receipts-proof/1","hash":"147378449ad0d67a8f38682719c580b6f7ecf95b7e7eba627f916d008c747dc0","provider":"demo-macd-momentum","seq":24,"kind":"signal","issued_at":"2026-09-30T22:05:20.101Z","prev":"9dc10440fdbf2f4388ebba95a35bfa8441e2d8e18466d7bfc1fcd5ac4e98df05","body":{"issued_at":"2026-09-30T22:05:20.101Z","kind":"signal","nonce":"bf06727151a5218b62fc9f14f671c4c9","payload":{"entry":{"type":"market"},"expires_at":"2026-10-01T10:05:20.101Z","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":"2683.89","targets":["2677.95","2673.49"]},"prev":"9dc10440fdbf2f4388ebba95a35bfa8441e2d8e18466d7bfc1fcd5ac4e98df05","provider":"demo-macd-momentum","seq":24,"v":1},"signer":null,"sig":null,"batch":{"root":"147378449ad0d67a8f38682719c580b6f7ecf95b7e7eba627f916d008c747dc0","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-30T22:06:19.843Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969359},"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"]}