Wasit
Wasit is an independent protocol-compliance 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— thewasitterminal 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.
Status
| Area | Status |
|---|---|
x402 read-only checks (X402-01–05) | Done, verified against a real facilitator |
x402 payment checks (X402-06, 07) | Done, settlement verified from contract events |
MPP charge mode (MPP-01) | Done, settlement verified from contract events |
MPP channel mode (MPP-10–14) | Done, including destructive close |
| CLI | Done — five subcommands plus an interactive dashboard |
| Testnet wallet tooling | Done — wasit wallet create/fund/status, testnet only |
| MCP server | Done, three tools + one behind an opt-in |
| Error taxonomy and exit codes | Done |
| Wasit's own test suite | Done — offline (no keys, no target, no network); type-check and tests both run in CI |
| Testing against third-party services | Done — one third-party service, defi-copilot, tested with its operator's written authorization as a local instance, plus Stellar's own reference implementations (x402, MPP); reported in aggregate in conformance-findings.md |
| Upstream reports to SDK maintainers | Filed — stellar-mpp-sdk#66, #67, #70 (closed; fix merged, unreleased), #82 (fixed in #83, verified), #89 |
| Published to npm | Yes — @wasit-dev/core, @wasit-dev/cli, @wasit-dev/server |
| Mainnet | Out 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.