Wasit

Wasit

Wasit is an independent protocol-compliance tester for two agentic-payment protocols, x402 and MPP, on Stellar testnet. 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. The x402 payment checks also pay on Base Sepolia, Ethereum Sepolia and Solana devnet, where the settlement is read from that chain's own record of the transfer.

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.

Status

AreaStatus
x402 read-only checks (X402-01–05)Done, on a challenge from any chain; verified against a real facilitator
x402 payment checks (X402-06–10)Done on Stellar testnet, Base Sepolia, Ethereum Sepolia and Solana devnet, settlement verified from each chain's own record
MPP charge mode (MPP-01)Done, settlement verified from contract events; pays only on the run's network
MPP channel mode (MPP-10–14)Done, including destructive close
CLIDone — six subcommands, wasit serve among them, plus an interactive dashboard
Testnet wallet toolingDone — wasit wallet create/fund/status on Stellar testnet, and for the x402 payer on Base Sepolia, Ethereum Sepolia and Solana devnet
MCP serverDone, three tools + one behind an opt-in
Error taxonomy and exit codesDone
Wasit's own test suiteDone — offline (no keys, no target, no network); type-check and tests both run in CI
Testing against third-party servicesDone — 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 maintainersFiled — stellar-mpp-sdk#66, #67, #70 (closed; fix merged, unreleased), #82 (fixed in #83, verified), #89
Published to npmYes — @wasit-dev/core, @wasit-dev/cli, @wasit-dev/server
MainnetOut of scope — see Design Notes

Sixteen 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.

Overview

Getting Started

Guides

Reference