{"format":"receipts-proof/1","hash":"6121f5dc3424df09ae48ce3caf69ca1555298e5208762b5f38f67724e7d73b53","provider":"demo-macd-momentum","seq":25,"kind":"signal","issued_at":"2026-09-30T23:00:22.370Z","prev":"147378449ad0d67a8f38682719c580b6f7ecf95b7e7eba627f916d008c747dc0","body":{"issued_at":"2026-09-30T23:00:22.370Z","kind":"signal","nonce":"2647478ca2a237bfdb9a548b8214ae3d","payload":{"entry":{"type":"market"},"expires_at":"2026-10-01T11:00:22.370Z","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":"83742.7","targets":["83553.3","83411.4"]},"prev":"147378449ad0d67a8f38682719c580b6f7ecf95b7e7eba627f916d008c747dc0","provider":"demo-macd-momentum","seq":25,"v":1},"signer":null,"sig":null,"batch":{"root":"6121f5dc3424df09ae48ce3caf69ca1555298e5208762b5f38f67724e7d73b53","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-30T23:01:20.356Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969361},"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"]}