{"format":"receipts-proof/1","hash":"7cf1470be743c96cf6e4e00e7c1b9fcdeaddb90438fa7c789364c1fa5568acfd","provider":"demo-macd-momentum","seq":93,"kind":"signal","issued_at":"2026-10-15T00:45:20.265Z","prev":"d5ee12834f5414542b7764350ca40a958f8dff708682cd524bbbb6b10d1b083c","body":{"issued_at":"2026-10-15T00:45:20.265Z","kind":"signal","nonce":"5d66cc7970533412f62e20b49a4c8d66","payload":{"entry":{"type":"market"},"expires_at":"2026-10-15T12:45:20.265Z","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":"2424.95","targets":["2411.45","2401.33"]},"prev":"d5ee12834f5414542b7764350ca40a958f8dff708682cd524bbbb6b10d1b083c","provider":"demo-macd-momentum","seq":93,"v":1},"signer":null,"sig":null,"batch":{"root":"7cf1470be743c96cf6e4e00e7c1b9fcdeaddb90438fa7c789364c1fa5568acfd","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-15T00:45:43.136Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971487},"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"]}