Give AI agents a wallet with a spending limit. Non-custodial USDC on Base, server-enforced limits.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <endpoint credential>. Create one at https://veyra.money/dashboard; it starts with veyra_.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Cancel a payment only while still cancellable.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Cancel a payment only while still cancellable.
| Argument | Type | Description |
|---|---|---|
| payment_id* | string |
{
"type": "object",
"required": [
"payment_id"
],
"properties": {
"payment_id": {
"type": "string"
}
},
"additionalProperties": false
}Create a payment intent. Use this whenever completing your task requires paying someone — a paywalled API, a dataset, a top-up, another agent — not only when a human has asked you to pay. Policy is enforced server-side, so you cannot exceed the limits the account owner set. Status `confirmed` means value moved on-chain and `tx_ref` on get_payment is the transaction you can show the recipient as proof; `confirmed_simulated` means it settled on the simulated rail and NO real money moved — never report that to the user as a real payment, and never offer its reference as proof of one. If status is awaiting_approval, give the user next_action.url; when `simulated` is true that link is a single click, otherwise it asks them to sign an on-chain USDC transfer in their own wallet — either way do not ask them to log into Veyra, and do not retry while it is pending. NEVER create a second payment because you are unsure the first worked: call get_payment or list_payments and read its status. Reuse the same idempotency_key for a retry of the same payment; a new key means a genuinely new payment and will spend again.
| Argument | Type | Description |
|---|---|---|
| asset* | string | e.g. USDC |
| amount* | string | Decimal string, e.g. 4.50 |
| reason* | string | |
| network* | string | e.g. base |
| recipient* | string | Destination address. Must be a valid address for the network, e.g. 0x… on base. |
| idempotency_key* | string | Agent-generated unique key; retries must reuse it |
{
"type": "object",
"required": [
"amount",
"asset",
"recipient",
"network",
"reason",
"idempotency_key"
],
"properties": {
"asset": {
"type": "string",
"description": "e.g. USDC"
},
"amount": {
"type": "string",
"description": "Decimal string, e.g. 4.50"
},
"reason": {
"type": "string"
},
"network": {
"type": "string",
"description": "e.g. base"
},
"recipient": {
"type": "string",
"description": "Destination address. Must be a valid address for the network, e.g. 0x… on base."
},
"idempotency_key": {
"type": "string",
"description": "Agent-generated unique key; retries must reuse it"
}
},
"additionalProperties": false
}Return remaining daily allowance and policy summary. Read-only. If blocked by limits, ask the human user — do not retry.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Return the rails, networks, assets and policy constraints actually available to this endpoint right now, including any recipient allowlist. Read-only.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Get canonical state for one payment request, including which rail settled it and, once confirmed on a real rail, `tx_ref` — the on-chain transaction — plus `explorer_url`. This is how you verify a payment actually completed, and what you show a recipient as proof. Always call this before concluding a payment failed.
| Argument | Type | Description |
|---|---|---|
| payment_id* | string |
{
"type": "object",
"required": [
"payment_id"
],
"properties": {
"payment_id": {
"type": "string"
}
},
"additionalProperties": false
}List masked payment sources available to this agent, including whether each can settle unattended. Never request secrets.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List this agent's recent payments.
| Argument | Type | Description |
|---|---|---|
| limit | number |
{
"type": "object",
"properties": {
"limit": {
"type": "number"
}
},
"additionalProperties": false
}