No testing round has been completed yet. The tables below are filled in as each round’s findings are fixed
and verified.
Method
- Participants. 5 to 8 developers per round, none of whom has contributed to Rail402: a mix of backend developers who have shipped an HTTP API, developers who build AI agents or MCP tools, and at least one who runs services with Docker and a database. Some are new to Stellar and to x402.
- Sessions. 75 minutes, remote, thinking aloud, with only the public docs, npm packages, repository and hosted testnet services. No hints beyond a fixed script; an assist after two minutes stuck is recorded as one.
- Tasks. Everyone does the seller path (create a receiving account, charge for an endpoint, read the
402challenge) and the buyer path (fund a buyer, pay, find a resource in the Bazaar, cap spending). Each participant also does one of: the MCP path (connectrail402-mcpto an MCP host, let an agent pay, see a refusal) or the operator path (run a facilitator with Docker, settle through it, find health and refusal reasons). Each task has a time cap and a success signal. - Measures. Per task: success unaided, success with an assist, or not completed, and the time taken. After the session: the System Usability Scale (SUS, 0 to 100) and open questions.
- Privacy. Participants agree to the method in advance. Nothing here identifies a participant; findings are described by what happened, not by who.
Severity
A finding seen by two or more participants moves up one level, up to S1.
From finding to verified fix
- Each distinct finding gets an ID (
DT-01,DT-02, …) and a severity. - It is fixed, or closed with a stated reason. Every S1 and S2 is fixed unless its cause is outside Rail402, in which case the docs say how to handle it.
- The fix is released: docs on
docs.rail402.dev, packages on npm, or the hosted testnet service. - The fix is verified against the released build, not a branch: a changed example is run again from the published page in a clean environment, a changed error message is reproduced against the hosted service, and a changed explanation is retried by a developer who did not see the finding.