Your wallet
Share a URL. Agents inspect it, pay it, and get your goods — no account on their side.
- 1Have a receiving wallet ready
- 2Create a checkout below
- 3Share the URL
Live checkouts
Create a checkout
Four questions, and each one decides the next. Everything else has a default.
Payments
Settled purchases, newest first. Each row is a receipt a buyer can verify — and download.
Narrow it and every figure below follows. Test and live are never mixed into one total.
By checkout
Payments in this window
Archive
Retired checkouts. Their links
answer 410 Gone, but the records stay: receipts, payouts
and on-chain history are all intact, and you can bring one back.
Receiving wallets
Your own addresses, one per chain, blue: money in lands here. Buyers pay you here when you sell, and a burned spending wallet returns what is left here. New checkouts use these automatically. Changing them never re-points checkouts you have already published. We never hold or store a key for them.
Confirm this change
Recovery phrase
Addresses
Private keys
Import the recovery phrase into MetaMask or Phantom instead where you can — one phrase restores both chains, and it is what those apps ask for. These are for tooling that wants a raw key.
Change history
Marketplace (B2B2X) — take a cut of your sellers' sales
Your sellers' products, sold through you. Each sale pays the seller's wallet directly — your cut goes to yours, in the same payment. Your cut can be up to 20%. Read the guide.
Your cut lands in your payout wallets above — set one per chain your sellers sell on. A chain without one disappears from your fee-carrying checkouts, and its buyers with it.
Wallets
One wallet per job. It spends what it holds and nothing else.
New wallet
New branch
A branch groups the wallets of one job and pays through one rule. It has its own key, which may open more wallets in it. Ten wallets at most; opening a branch is free.
Give your agent a budget
A wallet your agent pays x402 endpoints from, up to what it holds. It starts empty; you load it, and close it when the job is done.
Your agent's wallet gets a public page: the active wallets, the ones burned before, never a balance. Lowercase letters, digits and dashes. Sellers can check any payer against it.
This wallet pays in USDC on Base. Open as many as you have jobs; each has its own address and its own history.
Base
Active- Wallet opened
- FundedLoad it
- Agent connectedConnect
- First purchaseTry it free
Next: connect your agent. Claude connects with one approval; anything else takes this wallet's key. The key can spend up to the balance and never take money out.
Wallet key The key to this wallet
It pays from this wallet, up to what it holds. It cannot open or close wallets, cannot move money anywhere else, and reveals nothing. Give it to the agent doing this job; if the job ends, close the wallet and the key dies with it.
One command in a terminal.
One integration running many wallets? That is an account key: it opens wallets, pays from any of them and closes them. Keep it out of an agent that needs one wallet.
With this key the agent gets the buying tools: list_spending_wallets, search_endpoints, spending_budget,
pay_x402, spending_wallet_balance and spending_wallet_events, for this wallet only.
It cannot open or close wallets. There is no reveal tool and never will be.
Next: load it. Send it a little USDC and press Check balance when it has landed. Until then your agent can rehearse on a test checkout for free. The guide has every step with pictures.
Add $5
Send money to this wallet
…
The wallet receives the amount; the sender pays one cent more. An agent pays the link with pay_x402(url).
Or send from a wallet you hold
Your browser wallet opens with the transfer filled in. You only confirm.
The app opens with the transfer filled in. You only confirm.
Scan with the wallet app on your phone. Amount, token and chain are in the code.
Opens the card provider with this wallet, the chain and the amount filled in.
How to fund it
- Have USDC on Base. USDC is a dollar token; one USDC is one dollar. It must be on this chain: the same token on another chain arrives nowhere we can reach.
- Press Add money and pick an amount. $5 is plenty for a first job. The sheet fills in the address, the token and the chain for a browser wallet, a phone wallet or a QR.
- No USDC yet? Buy it on an exchange and withdraw to this address, choosing the Base network when you send: Coinbase, Kraken, Binance. Where a card provider is offered, the sheet has a card door too.
- Send only what the agent will spend soon. This is a burner, not storage: what is left comes back when you burn it.
The whole product, step by step with pictures: the guide.
From an exchange
Buy USDC. Send. Network: Base. Paste the address above.
Open Coinbase ↗Buy USDC. Withdraw. Network: Base. Paste the address above.
Open Kraken ↗Buy USDC. Withdraw. Network: Base. Paste the address above.
Open Binance ↗What am I sending?
USDC is a dollar token: one USDC is one dollar. It exists on several chains, and a transfer must use the chain this address lives on, Base; the same token sent on another chain arrives nowhere we can reach. Any wallet app or exchange lets you pick the network when you send. A transfer takes a few seconds to a few minutes. Send only USDC: any other token sent here is lost. A spending wallet is a float for paying as you go, not a place to keep money; we hold its key.
Next: try it free. One rehearsal purchase through the real pay path; nothing settles and nothing is charged.
Or ask your agent to do it
Loading…
Running. It pays up to what it holds. Load it when it runs low, or for the next job.
Rules for this wallet
The balance is the budget; these narrow what it may buy. A key can never loosen them.
Purchases
Loading…
From your agent
What the agent sees and calls for this wallet. The key is shown on request; it never leaves this page by itself.
More
Closing sends what is left to your address and stops this wallet; the receipts stay. Reveal is the escape hatch if you ever need the key or the phrase itself.
Closing sends what is left to
on Base
(your account's default).
Closing is free: what is left goes to your address, gas on us.
Team
A team account: its own wallets, keys and public page, and people who act for it in roles. Spender pays. Manager also opens and burns wallets and branches. Owner also invites, removes, transfers ownership and sets burn addresses. Exactly one owner.
Every section of this dashboard, and every call your agent makes
with account, then works on that organization's wallets under your role.
Create a team
You own it. Its first wallet is yours to open; then managers open the rest.
Accept an invitation
Sign in with the invited address first: an invitation is for one address.
Support
Ask a person: a payment you cannot explain, a wallet refused
as frozen, a fee you dispute. A thread stays on this account; a reply lands here and in your inbox.
Your agent has the same desk: support_open_thread, support_threads and
support_reply over MCP, or POST /v1/support/threads with any of this
account's keys.
Open a thread
Loading…
Directory
Live x402 endpoints your agent can pay, with prices read from
each endpoint's own 402. Every row is one pay_x402(url) away.
| Loading… |
Your agent asks the same question with search_endpoints("weather");
after paying a row it can rate it with review_endpoint.
Profile and page
Your handle names your public page, where anyone can check the wallets your agent pays from. Everything here is optional except the handle.
PNG, JPEG or WebP under 256 KB. Stored with your account and shown on your page.
Where closed wallets send the change
Your own address, per chain, unless a wallet or a branch names its own. We never hold a key for it.
Costs
Every price, from one place, and everything this account has been charged. Fees come out of the wallet they concern; there are no account credits, and nothing is charged on rehearsals.
- Loading…
Your service history
Loading…
Analytics
What each wallet spent, in how many payments, with what fees, and when it last paid; the same per branch. From the same stream as the purchases list, so it agrees to the cent. Balances are chain reads: the button on each wallet.
Per branch
Loading…
Per wallet
Statements
One numbered statement per month: every payment, fee, funding, transfer and burn, each with its receipt. A record for the books, not a bill. The price list says what each fee is.
Loading…
Archive
Burned and revoked wallets, and burned branches. The links are closed; the history is not: every purchase and every return stays readable.
Burned branches
Loading…
Old wallets
Escrow
Hold a buyer's money until they're happy, instead of settling it instantly. The money sits in a contract with exactly two ways out — the seller is paid, or the buyer is refunded — and nobody, including us, can send it anywhere else. Read the guide.
Who settles disputes (advanced)
If you sell your own products, leave these empty and we settle disputes for you. If you run a marketplace (platform account), these are required to offer escrow: your marketplace's disputes are yours to decide, never ours. Either way a dispute wallet can only choose between paying the seller and refunding the buyer — the escrow contract has no third exit. A chain you leave empty simply won't offer escrow on your marketplace's checkouts. Use a wallet whose key you can actually sign with — an exchange deposit address can hold ETH and still never rule — and on Base keep a little ETH in it: a ruling is a transaction.
Live escrows
Money being held right now. A buyer who pauses one has a window to approve or dispute it; if a dispute is never settled the buyer is refunded automatically, so nothing is ever stuck. Disputes on your own arbiter wallets show Pay seller / Refund buyer buttons here — connect that wallet in this browser to rule.
Put it on your website
A block you paste into your own page. No JavaScript and no stylesheet, so crawlers and agents that fetch rather than render still read it — that is the point of it.
The live storefront
Your whole catalogue on your own page, in your page's fonts and colours. Buyers pay in place; new products appear the moment you create them; the plain list inside it is what crawlers and no-script readers see. One paste, never again.
Preview
This is the real thing — the same script your page will run, showing your live catalogue. Buy opens the checkout page from here; on your own site it opens the till in place once your origin is allowlisted below.
The static list alone
Also serve a .well-known file
For agents that probe the convention on your domain
rather than parsing a page. Save this as
/.well-known/mechawallet on your own site.
/.well-known/mechawallet
Create a live checkout first — a catalogue of nothing is not worth embedding.
Or put a working checkout on the page
The block above is a catalogue — it links out. This one is the checkout itself, running inside your page, so the buyer never leaves. It renders in a frame we serve, which is why your wallet button cannot be reached by anything else on your site.
One per line. Until a site is listed here the frame stays blank — that is deliberate: these pages carry a button that moves money, so nobody may frame them until you say who.
This checkout was created without the wallet button, so buyers can
SEE it in your page but cannot pay there — they'd have to pay by
402 instead. Create it with "wallet_button": true to
sell inside your page.
Paste this where the checkout should appear
Your page hears what happens:
window.addEventListener("mw:paid", …).
For an escrow checkout that fires when the money is released, not
when it is deposited — mw:held is the deposit, and
it is not yours yet.
Connect your agent
- Add to Claude ↗ opens Settings, Connectors, Add custom connector. Paste the URL above.
- Approve the Allow screen. You are signed in here, so there is no second login. Claude Desktop and the phone apps share the connector once it is added.
- In ChatGPT open Settings, Connectors, and turn on Developer mode under Advanced.
- Create a connector with the URL above. Sign in when it asks and approve the tools once.
ChatGPT pays from the wallets on this page, the same account as here.
One command in a terminal:
Then /mcp inside Claude Code to sign in. On a headless machine use a wallet key instead:
the wallet card's Show this wallet's key prints this command with the key inside.
Settings, MCP, Add new global MCP server, and paste:
Cursor opens the sign-in itself. Windsurf and Claude Desktop take the same block.
In VS Code, put this in .vscode/mcp.json (or run MCP: Add Server from the command palette):
Start the server from the file's inline button. Copilot's agent mode lists the tools and asks you to sign in once.
Any client that speaks MCP over HTTP: add the URL above as a streamable HTTP server. A client that can sign in gets
the approval screen; one that cannot takes a wallet key as Authorization: Bearer, from the wallet's card.
No MCP at all: the same tools are REST calls with a wallet key.
The API reference lists every call. The key comes from the wallet's card and never spends more than the wallet holds.
Each wallet has its own key, so a client bound to one wallet spends that wallet only. The guide walks through every client.
Keys
mw_wallet_…
Pays from one wallet, up to what it holds. Nothing else.
One agent, one job. On the wallet's card.
mw_branch_…
Pays through the branch's rule and may open wallets in it.
One project. On the branch's row.
mw_live_…
Opens, lists and closes wallets and branches, and pays from any of them.
One integration. Never for an agent that needs one wallet.
Wallet keysone per wallet, shown here or on its card
Loading…
Branch keysone per branch; Main has none, its wallets pay with their own
Loading…