# paymentrequired.com — money for AI agents

> Public alpha v0.74.5-alpha.1. Updated 2026-09-20T07:17:42Z by Hermes.
> Create a separate wallet, add Base USDC, let your agent pay from that budget.
> No API key, sign-in or user ETH needed to start. The alpha service securely
> holds the agent wallet's keys. Connected-wallet, bank and card spending still
> uses human approval. Arc is not available in this alpha.

## Agent wallet — start here for autonomous prepaid spending

Use the `agent_wallet` tool shown by tools/list. create returns a durable Base
USDC receiving address and private access/claim tokens. Keep the tokens secret
and saved; never send them to merchants. The person deposits their budget.
status reads balance; pay buys a supported exact Permit2 HTTPS service;
history reads prior outcomes. Reuse the same request_id and identical payment
terms after any lost answer; unknown means do not start another payment.
There is no automatic refill and no access to the person's bank funds.

To take control, connect_wallet first, then claim with the private claim token.
stop revokes the agent; withdraw returns remaining USDC to the verified owner's
connected address. This is authenticated service custody, NOT on-chain root-key
handover or a trustless wallet. Check /healthz and tools/list for current rollout.

## Quickstart — existing connected-wallet and account features

- Connect me / sign me in → connect_wallet
- Where can I receive USDC? → wallet {action:"receive"}
- Price of a paid URL → bank pay quote (nothing is paid)
- Pay for a service or an x402 URL → bank {action:"pay"}: pay_action quote → authorize → status
- Run a paid browser task → browser: start → status → stop
- Send USDC from my wallet → wallet: send_quote → send {confirmed:true} → send_status
- Spending limits → wallet limits / limits_set (raising needs one approval)
- Keep a private record (a contact, a login, a note) → vault put / get / list
- Get me a card, see my IBAN, pay someone from the account → create_account once, get_account_status, provision_virtual_card_and_bank_account, then cards, bank or payouts
- Where is my thing at? → the *_status call named in next_action.then of the last result

## Connect

MCP endpoint: https://paymentrequired.com/mcp
Transport: JSON-RPC 2.0 over HTTPS (MCP Streamable HTTP). No auth header — the
connected-wallet session comes from connect_wallet. The separate agent_wallet
starts without that session. Add the URL as a remote MCP server in
Claude, Cursor, Hermes, Codex or any MCP client. Nothing else to configure.

How the person signs in: they tap the link. That is the default and it is enough.
Release 1 uses the partner app only; no other way to sign in is offered. A
passkey route exists in the code as an experimental path that is switched off by
default and is not part of release 1.

## Start prompt (paste this into your agent)

Create an agent wallet on paymentrequired.com. Save its private access and claim
tokens securely. Show me its Base USDC address and spending cap. After I fund it,
use only that budget for paid services I ask for. Never refill it automatically.
If a payment's outcome is unknown, check the same request instead of paying again.

## Connected-wallet and account journey (separate from agent_wallet)

1. connect_wallet {} → an approval link. The person taps it. Call connect_wallet
   again with the same request_id; the server waits for the tap. The result carries
   the session every other call needs, plus `can`: what this connection can do.
2. With only a connected wallet (no identity check): pay any x402/MPP paid URL
   straight from the wallet (bank action=pay: quote, then authorize; the caps are
   in the result), move the account's dollars/euros out to an address
   (bank action=withdraw), and every read.
3. create_account {email, country} → an identity-check link the person completes
   once. Then provision_virtual_card_and_bank_account → a virtual card and an EUR
   IBAN. get_account_status tells you where things stand and the one next step.
4. cards → list; get (full number, expiry, security code after one tap); freeze,
   unfreeze, set_limits; 3-D Secure answers for online purchases; send money to ANY
   card number: recipient_add → transfer_quote → transfer.
5. browser → a cloud browser that does a web task and can pay online with a card
   nobody sees (deployments that enable it; the wallet pays 1 USDC of credit once).
6. bank → accounts, balances, activity, statement; quote → transfer (SEPA).
7. payouts → bank recipients worldwide: corridors, recipient_add, quote → send → status.
8. vault → the person's private records (contacts, logins, agent memory), held
   encrypted so only their wallet can open them. put stores a record, get reads one
   back for that call only, list shows record ids. put and get need one extra wallet
   approval. Nothing is ever stored on this server.

## When a person must tap a link for connected-wallet/account features

- The first connect. Every identity check. Raising a spending limit. Opening the
  vault. Saying yes to the exact quote before any money moves.
- Show the link unchanged. Wait. One link at a time.

## Five rules for connected-wallet/account features

- One link at a time. Show approval_url unchanged. Never ask the person to prove
  they tapped — call again with the same reference; the server waits up to 25 s.
- Money moves only after the person says yes to the exact quote: transfer, send and
  pay take the quote's id plus confirmed: true.
- Every refusal carries next_action. Do that one thing; do not retry blindly.
- Never repeat the session string, a card number or a security code unless the
  person asked in this conversation.
- Pending is not done. Say "done" only when the status says Completed.

## Reference

- Every tool and field, generated from the live server: https://paymentrequired.com/llms-full.txt
- Payment-agent runtime signing protocol: https://paymentrequired.com/llms-agents.txt
- Paid services an agent can use right away, per call, no account: https://paymentrequired.com/llms-services.txt
- Same as JSON: https://paymentrequired.com/services.json
- Health and version: https://paymentrequired.com/healthz
- Long-form integration guide: https://paymentrequired.com/docs
- Source: https://github.com/nuri-com/agent-payments-mcp-wirex