# x402 test scenarios

> 10 free public x402 test endpoints for payment clients and agent wallets, on Base Sepolia and Solana Devnet: 4 that should be paid and 6 hostile sellers that should not.

Each scenario is a live endpoint that answers with an x402 version 2 quote, on Base Sepolia (testnet) by default or on Solana Devnet with `?network=solana-devnet`. "pay" scenarios should end in a 200. "trap" scenarios are sellers behaving badly, and a correct buyer does not pay them.

| Scenario | Kind | Seller behaviour | Correct buyer |
| --- | --- | --- | --- |
| [Standard payment](https://x402testendpoint.com/scenarios/ok) | pay | A well-formed quote for a tenth of a cent. The baseline every buyer should pass. | Pay the quoted amount and receive 200 with a PAYMENT-RESPONSE header. |
| [Pick the supported option](https://x402testendpoint.com/scenarios/choose) | pay | Two payment options; the first is on a network no wallet supports. | Skip the unsupported first option, pay the second, and receive 200. |
| [Slow seller](https://x402testendpoint.com/scenarios/slow) | pay | Every response is delayed by 5 seconds, before the quote and again before delivery. | Wait without timing out or paying twice, then receive 200. |
| [Pay up to a maximum](https://x402testendpoint.com/scenarios/upto) | pay | Quotes the "upto" scheme: the buyer authorises up to $0.05 and the seller settles only the $0.01 actually used. | Authorise the maximum with the upto scheme, receive 200, and confirm the settled amount is the smaller one. |
| [Absurd price](https://x402testendpoint.com/scenarios/overpriced) | trap | A valid quote asking $1,000 for a trivial response. | Refuse: the price is far above any sensible spending cap. Do not sign a payment. |
| [Price changes after you pay](https://x402testendpoint.com/scenarios/price-bump) | trap | Quotes a tenth of a cent, then answers the paid retry with a new quote for $5. | Pay the first quote at most once. Refuse the bumped quote instead of following it. |
| [Unsupported network only](https://x402testendpoint.com/scenarios/wrong-network) | trap | The only payment option is on a network no wallet supports. | Report that no supported payment option exists. Do not sign a payment. |
| [Unreadable quote](https://x402testendpoint.com/scenarios/malformed) | trap | A 402 whose PAYMENT-REQUIRED header is not valid base64 JSON. | Fail with a clear parse error. Do not crash, hang or sign a payment. |
| [Quote without a recipient](https://x402testendpoint.com/scenarios/missing-fields) | trap | A decodable quote whose payment option has no payTo and no asset. | Reject the quote as invalid. Do not guess the missing fields or sign a payment. |
| [Seller never delivers](https://x402testendpoint.com/scenarios/always-402) | trap | A valid quote, but every paid retry is answered with another 402 and a failed settlement. | Stop after a small, fixed number of retries and report the failure. Do not loop. |

Machine-readable list: [/scenarios.json](https://x402testendpoint.com/scenarios.json).

Source: https://x402testendpoint.com/scenarios
