Errors /
invalid_exact_evm_signature
The signature does not match the transfer authorization for this token and chain.
| Reported by | the facilitator, during verify |
| Usually fixed by | the buyer or the seller, depending on the cause |
Cause
The facilitator rebuilds the EIP-712 TransferWithAuthorization data from the quote (token name and version from extra, chain id, token address) and the payload's authorization fields, then checks the signature against the payer. Any difference between what the buyer signed and what the facilitator rebuilds fails here.
Fix
- Buyer: sign with the
nameandversiongiven in the quote'sextra, not hard-coded values. USDC is namedUSD Coinon Base andUSDCon Base Sepolia. - Buyer: check the chain id and the token address used as
verifyingContractmatch the quote. - Buyer: the signer must be the address in
authorization.from. - Seller: check that
extra.nameandextra.versionare the token's real values. See token name mismatch.
About this reference
Causes are taken from the source of @x402/evm 2.31. Other facilitators and later versions may use the same code for slightly different checks. See all x402 errors.