Security hardening from the post-launch review, plus first-class facilitator support.
Closed bypasses
guardSignernow guards every signing method a wallet exposes —signAllTransactions,signAndSendTransaction, andsignAndSendAllTransactionspreviously routed around the check entirely.- The System program is now a strict allowlist (only
AdvanceNonceAccountpasses).TransferWithSeed,Assign,WithdrawNonceAccount, allocation instructions, and unclassifiable tags are refused (X402-007/ newX402-009). Burn/BurnCheckedriding beside a correct payment are refused (X402-006).- ATA
RecoverNested— an in-allowlist instruction that moves tokens — is refused; onlyCreateandCreateIdempotentpass. - New priority-fee cap (
X402-010): a conforming payment carrying an outsized compute-unit price is refused. Default cap 0.01 SOL, configurable viaInspectOptions.maxPriorityFeeLamports.
Facilitator flow
inspectPaymentPayload(xPayment, quote)inspects the X-PAYMENT payload (object or base64 header) — in the SVMexactscheme the client still partially signs the settlement transaction, so the same bytes get the same checks.quoteFromRequirements(accepts[0])maps a 402 response entry to the quote.- EVM authorization payloads (EIP-3009) abstain rather than allow.
40 tests, each new rule with an attack case and a benign twin.