Wasit is an independent conformance tester for two agentic-payment protocols on Stellar: x402 and MPP. It runs the real payment flow against a live service and verifies the settlement itself — by reading Stellar RPC and the token contract's own transfer event — rather than trusting whatever the service's response claims happened.

It is not a schema validator. A response can have every field in the right place and still take money without settling it; that gap is exactly what Wasit checks for.

Why it exists

x402 and MPP ship an official SDK. Neither ships an independent way to check that a service actually implements it — nothing plays the role stellar-anchor-tests plays for the anchor ecosystem. "We support x402" is currently a claim nobody can check from the outside.

Why Wasit Exists has the full story, including three concrete divergences between documentation and shipped SDK behavior that turned up while building this tool.

What you get

One check suite, two ways to run it:

  • @wasit-dev/cli — the wasit terminal command, for a local run or a CI job.
  • @wasit-dev/server — the same checks as MCP tools, for Claude Code, Claude Desktop, or any other MCP-compatible agent.

Both are thin adapters over @wasit-dev/core — there is only one implementation of each check, so a CLI run and an agent's run can never disagree about the same target.

Thirteen checks across x402 and MPP are implemented, each traced to a written spec clause in the Check Catalogue.

Status

AreaStatus
x402 read-only checks (X402-0105)Done, verified against a real facilitator
x402 payment checks (X402-06, 07)Done, settles on testnet
MPP charge mode (MPP-01)Done, settlement verified from contract events
MPP channel mode (MPP-1014)Done, including destructive close
CLIDone, three subcommands
MCP serverDone, three tools + one behind an opt-in
Error taxonomy and exit codesDone
Testing against third-party servicesPartial — 3 public repos tested without contacting the operator (see evidence); a run with explicit operator authorization hasn't happened yet
Upstream reports to SDK maintainersFiled — stellar-mpp-sdk#66, #67
Published to npmYes — @wasit-dev/core, @wasit-dev/cli, @wasit-dev/server
MainnetOut of scope — see Design Notes

Thirteen checks are implemented and reachable from both front ends. Every one is traced to a written spec clause in Check Catalogue; a check that cannot be traced is out of scope by construction.

Where to go next