{"service":"MERCURY x402 provenance verifier","what":"POST {text, attestation} (the exact pair a paid /buy/fetch returns) to get an independent valid/invalid verdict. No key, no account, no MERCURY SDK — the same EIP-191 ecrecover you could run offline yourself, served as one call. Free scrapers can't be verified: they never sign.","signerAddress":"0xACB40253BD71Bb9a5d491b2c6EFF755F2A33Fc75","keyPin":"/.well-known/mercury-attestation","demo":{"note":"Live proof the check is real: a genuine receipt PASSES, a tampered copy FAILS.","sample":{"text":"MERCURY x402 verify self-demo. This exact text is what was signed.","attestation":{"keyId":"mercury-x402-attestation-v1:0xACB40253BD71Bb9a5d491b2c6EFF755F2A33Fc75","alg":"EIP-191-personal_sign","address":"0xACB40253BD71Bb9a5d491b2c6EFF755F2A33Fc75","contentHash":"0xd3bddc894919c3d2fa22ca4aed6a325a4f7c9ac8ce1b4953f6856cc0e4b7f04d","nonce":"0xe15ee4ca86ca857343920919922dd7ef","signedAt":"2026-06-12T13:43:02.217Z","signature":"0x206a35e3eb3e8fcbad9665a25cbc926741b4b60d8db792dcbedf88aec4c443c962a37cf34122daa92b6cde1efe1958b5c0e869302742f4ced10dbc22244a96a51b","verify":{"message":"mercury-x402:fetch-attestation:v1\nurl=https://example.com/\nstatus=200\nsha256=0xd3bddc894919c3d2fa22ca4aed6a325a4f7c9ac8ce1b4953f6856cc0e4b7f04d\nfetchedAt=2026-06-12T13:43:02.202Z\nnonce=0xe15ee4ca86ca857343920919922dd7ef","howTo":"recover the signer of `message` with EIP-191 personal_sign (e.g. viem verifyMessage / ethers verifyMessage) and confirm it equals `address`; recompute sha256(text) and confirm it equals contentHash."}}},"genuine":{"valid":true,"reason":"ok"},"tampered":{"valid":false,"reason":"contentHash mismatch"}},"howToPost":"curl -s -X POST https://mercury-x402-jed.fly.dev/x402/verify -H \"content-type: application/json\" -d '{\"text\":\"<the text field>\",\"attestation\":<the attestation object>}'"}