An x402 shopping agent for AI

Pays for exactly the data it needs. Not a cent more.

Ask Tender a question. It reads a seller's price list, buys only the data that can answer it, and stops the moment it's confident. Every purchase is a real USDC payment over x402: no subscriptions, no API keys, no accounts.

SERV Reasoning decides AgentKit wallet pays USDC on Base
Tender
RECEIPT · BASE · x402
"Should a cautious holder add LINK this week?"

quote · LINK$0.001Cheapest source first.
metrics · LINK$0.010Quote had no trend or risk data.
report · LINK$0.050Blocked by guard: over the $0.039 left.BLOCKED

SPENT$0.011
UNSPENT OF $0.050$0.039
MODEL PROPOSES · CODE DECIDES
Questions answered
–
with real payments
On-chain payments
–
settled over x402
Total spent
–
avg per question
Left unspent
–
purchases blocked by the guard
How it works

A shopper with a budget, and a bouncer.

Tender splits the job in two. A model decides what's worth buying. Plain code decides whether money actually moves.

01

You ask, with a budget

"Has SOL trended up this month?" and a cap like $0.05.

02

SERV proposes

Reads the free price list and picks the one item worth buying next, with a reason.

03

The guard decides

Checks the seller's real 402 price against the budget and allowlists before anything is signed.

04

x402 pays, per request

The AgentKit wallet signs a USDC payment, and the seller's facilitator settles it on Base.

The model proposes

SERV Reasoning

Decides what's worth paying for, and when it knows enough to stop.

  • Cheapest useful source first
  • Explains every purchase
  • Answers from bought evidence only
The code decides

BudgetGuard

Runs inside the x402 client, right before a signature exists. The model can't get around it.

  • Hard budget, per-call cap
  • Only the seller it trusts, only USDC
  • Never pays twice
The guard

The model never touches the wallet.

Six rules, enforced in code on every payment, whatever the model says.

total_budget

Hard spending cap

In-flight payments are reserved before signing, so the total can never be exceeded.

per_call_cap

Per-purchase limit

No single item can cost more than the cap, even with budget left.

real_402_price

Checks the real price

Uses what the seller demands in its 402 challenge, not what the model thinks it costs.

allowlist

Trusted seller only

Seller address, network and token (USDC) are pinned. Anything else is refused.

no_double_buy

Never pays twice

The same item for the same symbol can only be bought once per question.

max_purchases

Knows when to stop

Caps the number of purchases, then makes the model answer with what it has.

The seller's price list

Three tiers. Pay per request.

A demo market-data API for BTC, ETH, SOL, LINK and AERO. The price list is free to read, and each item is paid for as it's requested. Spot prices are live from CoinGecko; history, flows and sentiment are demo data.

Built with

Open protocols, real settlement.

SERV ReasoningOpenServ's reasoning layer. Plans every purchase.
AgentKitCoinbase's agent wallet. Signs every payment.
x402HTTP 402 payments. No keys, no accounts.
USDCPriced to the tenth of a cent.
BaseSepolia for testing, mainnet for real.

Ask it something.

Watch it shop live, then read the receipt.

Open the dashboard →