chess402.vercel.app
chess402 exposes a small set of paid chess endpoints that proxy the public Lichess API. Each request is billed in USDC over x402 (Base) or MPP (Tempo). Endpoints: POST.
- Underdelivered on 1 paid call(s): a real response missing promised fields, confirmed on two calls.
Grades
No purchase-based grade yet. Everything below was measured, by paying this seller or by sweeping the chain, and none of it is editorial.
Did it deliver what it promised?
1 of 2 endpoints we paid returned everything their own published schema promised.
- short missing 1 of 12
/api/user· 2,620ms · 23 bonus field(s)Real response shape
{ "id": "string", "username": "string", "perfs": { "ultraBullet": { "games": "integer", "rating": "integer", "rd": "integer", "prog": "integer", "prov": "boolean" }, "bullet": { "games": "integer", "rating": "integer", "rd": "integer", "prog": "integer" }, "blitz": { "games": "integer", "rating": "integer", "rd": "integer", "prog": "integer", "prov": "boolean" }, "rapid": { "games": "integer", "rating": "integer", "rd": "integer", "prog": "integer", "prov": "boolean" }, "classical": { "games": "integer", "rating": "integer", "rd": "integer", "prog": "integer", "prov": "boolean" }, "correspondence": { "games": "integer", "rating": "integer", "rd": "integer", "prog": "integer", "prov": "boolean" }, "chess960": { "games": "integer", "rating": "integer", "rd": "integer", "prog": "integer", "prov": "boolean" }, "atomic": { "games": "integer", "rating": "integer", "rd": "integer", "prog": "integer", "prov": "boolean" } }, "title": "string", "flair": "string", "patron": "boolean", "patronColor": "integer", "createdAt": "integer", "profile": {}, "seenAt": "integer", "playTime": { "total": "integer", "tv": "integer" }, "url": "string", "count": { "all": "integer", "rated": "integer", "draw": "integer", "loss": "integer", "win": "integer", "bookmark": "integer", "playing": "integer", "import": "integer", "me": "integer" }, "streamer": { "twitch": { "channel": "string" } } }Types only, verified from a real paid call. Values discarded.
- delivered returned all 4 promised fields
/api/cloud-eval· 2,380ms · 2 bonus field(s)Real response shape
{ "fen": "string", "knodes": "integer", "depth": "integer", "pvs": { "array_of": { "moves": "string", "cp": "integer" } } }Types only, verified from a real paid call. Values discarded.
This is a paid delivery check: we called the endpoint with its own advertised input and compared the response against its own advertised output. It is the one thing free probing cannot see.
Verifiable receipts
2 paid calls to this host are recorded as tamper-evident receipts, including 1 where it underdelivered. Each can be re-verified independently, from the archived bytes up.
wab_fdc779b71fd18211chess402.vercel.app
Promised 12 fields for $0.001, charged $0.001, and underdelivered: returned 11 of 12. Missing online. Shortfall confirmed on two calls.
Evidence and how to verify it yourself
The real response shape, types only, values discarded:
{
"count": {
"all": "integer",
"bookmark": "integer",
"draw": "integer",
"import": "integer",
"loss": "integer",
"me": "integer",
"playing": "integer",
"rated": "integer",
"win": "integer"
},
"createdAt": "integer",
"flair": "string",
"id": "string",
"patron": "boolean",
"patronColor": "integer",
"perfs": {
"atomic": {
"games": "integer",
"prog": "integer",
"prov": "boolean",
"rating": "integer",
"rd": "integer"
},
"blitz": {
"games": "integer",
"prog": "integer",
"prov": "boolean",
"rating": "integer",
"rd": "integer"
},
"bullet": {
"games": "integer",
"prog": "integer",
"rating": "integer",
"rd": "integer"
},
"chess960": {
"games": "integer",
"prog": "integer",
"prov": "boolean",
"rating": "integer",
"rd": "integer"
},
"classical": {
"games": "integer",
"prog": "integer",
"prov": "boolean",
"rating": "integer",
"rd": "integer"
},
"correspondence": {
"games": "integer",
"prog": "integer",
"prov": "boolean",
"rating": "integer",
"rd": "integer"
},
"rapid": {
"games": "integer",
"prog": "integer",
"prov": "boolean",
"rating": "integer",
"rd": "integer"
},
"ultraBullet": {
"games": "integer",
"prog": "integer",
"prov": "boolean",
"rating": "integer",
"rd": "integer"
}
},
"playTime": {
"total": "integer",
"tv": "integer"
},
"profile": {},
"seenAt": "integer",
"streamer": {
"twitch": {
"channel": "string"
}
},
"title": "string",
"url": "string",
"username": "string"
}Three independent checks, none needing trust in this site: integrity recomputes the id as a hash of the evidence, so any edit shows; verdict re-derives the result offline; raw re-reads the untouched bytes archived at pay time and reproduces the shape.
python3 receipts.py --verify wab_fdc779b71fd18211The full record and the format are at /receipts.
What it sells
4 endpoints listed, priced $0.0010 to $0.0050, settling on Base.
$0.0010Lichess user profile snapshot: ratings per perf, country, title, online status, counts.$0.0010Today's Lichess daily puzzle: source game, themes, initial position, solution moves, and rating.$0.0030Masters opening explorer for a position. Returns top moves, win/draw/loss rates, and recent top master games from the$0.0050Stockfish cloud evaluation for a FEN position. Returns depth, evaluation, and principal variation(s) when Lichess has
Grades here come from paying this service and recording what happened, or from calling it where it is free. Settlement figures are swept daily from Base USDC Transfer logs. Nothing on this page is sponsored.