{"format":"receipts-proof/1","hash":"77b9c5498e27834e0001e5defba465673dc34f090d1f3072479cb40f3f8307b3","provider":"demo-macd-momentum","seq":7,"kind":"signal","issued_at":"2026-09-27T05:18:14.371Z","prev":"08c196dbc1382e82a7fa97d27e9ce199489ef8a0fc82041df71c0d3846782a21","body":{"issued_at":"2026-09-27T05:18:14.371Z","kind":"signal","nonce":"83294780a9f480905e1dc4dcf1c54076","payload":{"entry":{"type":"market"},"expires_at":"2026-09-27T17:18:14.371Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"long","stop":"84283","targets":["84414","84512.1"]},"prev":"08c196dbc1382e82a7fa97d27e9ce199489ef8a0fc82041df71c0d3846782a21","provider":"demo-macd-momentum","seq":7,"v":1},"signer":null,"sig":null,"batch":{"root":"357c98d18d41a09d20c517303135b5b09b3d97ce03b8f8635381114b7c78e096","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"0e63fd28dd5820feee89deb410fa17a85556dd985fccb61a06368b4a8c6febf8"}],"sealed_at":"2026-09-27T05:52:17.254Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968788},"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"]}