Verify an x402 v2 payment payload
Deserializes and validates a Solana VersionedTransaction against the payment requirements.
Standard x402 flow:
- Deserializes the base64-encoded transaction from
payload.transaction - Validates only allowed program IDs (SPL Token, ComputeBudget, Memo)
- Finds the SPL Token TransferChecked instruction and validates amount, mint, and destination
- Confirms the fee payer matches the facilitator public key
- Rejects already-signed transactions (replay prevention)
x84 extensions (optional):
If extensions.mode is present, additional verification runs:
- atomic: Confirms on-chain tx signature + receipt PDA exists
- attestation: Confirms tx signature + receipt PDA on-chain
- delegated: Validates delegation PDA (client-side) or ed25519 signature with 60s timestamp window (server-side)
v1 backward compatibility: Accepts a base64-encoded JSON string in paymentPayload for legacy clients.
Documentation Index
Fetch the complete documentation index at: https://docs.x84.ai/llms.txt
Use this file to discover all available pages before exploring further.
Body
Response
Verification result — check isValid to determine success
Whether the payment payload passed verification
true
Machine-readable reason code for invalid payments
"AMOUNT_MISMATCH"
Human-readable explanation of why verification failed
"Expected amount 1000000, got 500000"
Wallet address of the payer (extracted from transaction)
"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu"
Additional extension data (e.g. x84 settlement mode)
{ "mode": "atomic" }