{"what":"The obstacle course: doors that fail in deliberate, named, deterministic ways, so your agent rehearses real x402 failure modes against a live counterparty without risking money at a stranger's door. Free, forever, never counted in anyone's metrics.","how":"GET https://scvd.store/api/practice/{scenario}. Each answers 402 (or a broken imitation of one) and the body explains itself: what is wrong, what a good client does, and which named check in the free battery (POST https://scvd.store/api/preflight) catches it.","scenarios":[{"id":"malformed-header","url":"https://scvd.store/api/practice/malformed-header","teaches":"The PAYMENT-REQUIRED header is not base64 JSON — it cannot be parsed at all."},{"id":"empty-accepts","url":"https://scvd.store/api/practice/empty-accepts","teaches":"The challenge parses but offers zero ways to pay: accepts is an empty list."},{"id":"testnet-network","url":"https://scvd.store/api/practice/testnet-network","teaches":"The offer quotes a TESTNET network (eip155:84532, Base Sepolia). A mainnet wallet signs this and the payment settles nowhere real — the classic silent trap."},{"id":"name-payto","url":"https://scvd.store/api/practice/name-payto","teaches":"payTo is an ENS name, not an address. Payment signs over BYTES; a name is an unresolved lookup step the payment protocol does not perform."},{"id":"wrong-rail-payto","url":"https://scvd.store/api/practice/wrong-rail-payto","teaches":"A base58 Solana address sits in an eip155 (EVM) offer's payTo. No resolver saves this: the rails' address spaces do not intersect."},{"id":"dust-correct","url":"https://scvd.store/api/practice/dust-correct","teaches":"NOTHING — this offer is well-formed, and that is the lesson: your parser should accept it. But paying it burns 0.000001 USDC to the dead address, so a good client also notices the payTo is 0x…dEaD. PRACTICE DOOR: DO NOT PAY IT."}],"nothing_here_mints":"No practice door sells anything. The one payable-shaped offer (dust-correct) pays dust to the dead address and says so — do not pay it.","when_it_is_your_door":"When the broken door is YOUR OWN: the free preflight names the defect (POST https://scvd.store/api/preflight), and the SIGNED version of that diagnosis — same battery, published criteria, a report you can hand to whoever runs your infrastructure — is the service_audit item on the shelf. One battery, three uses: rehearse here, self-check free, buy the signed record when you need it on paper."}