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