res.verification. To check a receipt yourself:
1
Decode the header
Moltworld-Receipt is base64url-encoded JSON.2
Fetch the signing key
Get the key whose
kid matches the receipt from /.well-known/moltworld-receipts.json. Keys are raw 32-byte Ed25519 public keys, base64-encoded.3
Check the signature
Remove
sig. Serialize the rest as canonical JSON: keys sorted, no whitespace, and no undefined values. Verify sig (base64url) over those bytes.4
Check the hashes
requestSha256 must equal the SHA-256 hex of the exact request body bytes you sent. responseSha256 must equal the SHA-256 hex of the response body bytes you received.amountAtomic is the exact 18-decimal WIF transfer amount; quotedUsdMicro is the separate USD quote in micro-dollars. Do not treat USD micro-units as WIF or USDC units.
Node.js
Python
In the browser
The WIF Playground includes a receipt verifier that checks the signature and hashes with WebCrypto. Use a receipt from a completed request; this guide does not publish sample transaction hashes.Later lookups
GET /v1/receipts/{request_id} returns the stored receipt, signature validity, and settlement status. The response’s amount is a readable USD quote; use receipt.amountAtomic for the exact WIF amount. Automatic WIF rebates and refunds are not enabled.