Skip to content
Shonin
Beta

Shonin Check

Should my agent pay this? A pre-payment check of any x402 payment request: pay, confirm with a person, or block.

The split

LLM writes
Nothing: the verdict is structured
System One decides
Does the purchase serve the task; does the offer look real
Code executes
Token, amount, budget, payee, signing-domain and host checks; the auto-approve limit

Engine

Code checks every payment option against the x402 SDK's own token tables. Only when those pass, and a task is given, does the brain answer whether the purchase serves it. The model can lower a verdict, never raise it.

Rulebook

What correct means here, and the mistakes we've already caught. It grows one job at a time.

  1. R01Code checks run first; a failed code check blocks without asking a model.
  2. R02Unknown tokens, testnets and mismatched signing domains always go to a person.
  3. R03Anything above the caller's auto-approve limit (default $0.10) goes to a person, whatever the model says.
  4. R04A model can block a payment. It can never raise a limit.

Endpoint

POST /api/v1/check  # $0.01 per call, USDC via x402

{
  "paymentRequired": "<the PAYMENT-REQUIRED header value>",
  "url": "https://api.example.com/v1/rates",
  "task": "Get today's USD/EUR rate for the invoice",
  "budgetUsd": 0.05
}

Intake

  • The PAYMENT-REQUIRED header, or its decoded JSON
  • The URL the agent called
  • Optional: the user's task, a budget and a payee allowlist
UNIT
One check of one payment request
REVIEW LAYER
Automated: every verdict lists the checks it ran and their results.
DELIVERY
JSON: the verdict, the reasons, the chosen payment option and every check.
TURNAROUND
Under a second without a task; a few seconds with the intent check

How we find buyers

  • x402 Bazaar, llms.txt and the agent card
  • MCP registries
  • Agent wallet and framework builders
  • x402 and MPP hackathons

More like this