§ Receipt Verifier

Don't trust us. Check the math.

Every LogicNodes receipt is signed with EIP-191 over the SHA-256 of its canonical JSON body. This page re-runs that check entirely in your browser — paste a receipt, and the signer address is recovered from the signature itself. If anyone (including us) altered a single byte, recovery yields a different address.

Verify offline — paste a receipt

Paste the full JSON response from POST /verify, /escrow/settle, or any object containing signed_body (or payload) and signature.

Ready.

Or look up a stored receipt by hash

This queries the LogicNodes API (GET /pol/verify/{hash}), which reconstructs the stored body and runs the same recompute + ecrecover server-side.

How it works: payload_hash = sha256(json.dumps(signed_body, sort_keys=True)), signed with EIP-191 personal_sign. The expected platform signer is 0x0D12B2B82e4aE84A15a032C31C6A8a23520Ecde7. Run the same check from code: pip install logicnodes-pol or POST /pol/verify. The cryptography on this page is ethers.js v6.13.2 (self-hosted); view-source to audit — there is no backend call in offline mode.