Skip to main content
Glama
Fizzl13

presign-guard-wallet-mcp

x402 examples

Spending limits for AI agents, approved from your phone

Give your agents a wallet without giving them a blank cheque:

  • presign-guard-wallet (npm): a viem wallet that checks every signature with presign-guard first (drainers, sanctions, unlimited approvals), keeps to your price per purchase and daily budget, and asks you on Telegram for anything above them. npm i presign-guard-wallet

  • fizzl (PyPI): the same checks for Python agents, with ready-made LangChain tools. pip install fizzl

  • fizzl-langchain (npm): the same checks as LangChain.js / LangGraph.js tools, with a free quick check to try them without a wallet. npm i fizzl-langchain

  • presign-guard-ai-sdk (npm): safety checks as Vercel AI SDK tools. Before signing, before buying a token and before paying an x402 endpoint, the agent checks first. npm i presign-guard-ai-sdk

  • presign-guard-agentkit (npm): the same for Coinbase AgentKit agents. Wrap the wallet provider in one line, and every transfer, swap, approval, permit and x402 payment is checked and kept to your limits. npm i presign-guard-agentkit

  • presign-guard-solana-agent-kit (npm): the same for Solana Agent Kit agents (SendAI). Wrap the wallet in one line, and every transfer, swap and token action from every plugin is checked (instructions decoded and simulated) and kept to your SOL and USDC limits. npm i presign-guard-solana-agent-kit

  • presign-guard-wallet-mcp (npm, MCP server): a wallet with spending limits for Claude, Cursor and any MCP client. The agent can pay x402 APIs and send USDC within your budget, and asks you on Telegram above it. npx -y presign-guard-wallet-mcp

  • presign-guard-payer-screen (npm): for sellers. Screens who pays your x402 API against the OFAC SDN sanctions list before the payment settles; a listed payer gets 451 and is never charged. EVM, Solana, Algorand, XRP Ledger, no dependencies. npm i presign-guard-payer-screen

  • privy-sanctions-sync: for Privy agent wallets. Keeps the condition sets behind Privy's x402 sanctions-screening policy in step with the OFAC SDN list: EVM addresses in both casings, Solana addresses plus their USDC and USDT token accounts, and XRP Ledger addresses, with a ready Privy XRPL policy for x402 payments in RLUSD. It adds before it removes and leaves a set alone when the list is stale.

  • wallet-server: one budget and one set of rules for all your agents, a live dashboard, approvals on the dashboard, on your phone (installable app) or Telegram, pause one agent or all, an activity log. It never holds keys or funds: agents still sign and pay themselves.

See the dashboard live (demo, example data) →

import { guardWallet } from "presign-guard-wallet";

const wallet = guardWallet(walletClient, {
  pay, // a fetch that pays x402, or creditKey for prepaid presign-guard checks
  server: { url: process.env.WALLET_SERVER_URL, key: process.env.WALLET_SERVER_KEY },
});
// Under your price: signs. Above it: you get a request on the dashboard and on Telegram.
// Red verdict: never signed. Server unreachable: stops instead of signing.

Try it from your phone: Actions → telegram-demo → Run workflow (a pretend agent, a stub wallet, no money moves).

Related MCP server: Budget Governor

Research: do AI agents pay safely?

  • agent-safety-bench: an open benchmark of how an AI agent with a wallet handles x402 payments. It checks whether the agent pays honest sellers and refuses the traps: an overcharge, a sanctioned payee, a price over budget, the expensive one of two options, an instruction injected into an API's answer, and a seller that takes the money and asks again. Everything runs offline against simulated sellers with the official x402 client, and nothing is ever paid. It compares agents with and without x402 Doctor's preflight skill.

Paid-API examples

Small, open examples of AI agents combining paid APIs with x402: each call is paid per request in USDC, with no accounts or API keys.

Example

What it does

Services

Cost per run

wallet-mcp

MCP server presign-guard-wallet-mcp: wallet tools for any MCP client (pay x402 APIs, send USDC), every signature checked by presign-guard and kept to spending limits, Telegram or wallet-server approval above them

presign-guard

$0.01 per checked signature (or prepaid credits)

fizzl-py

PyPI package fizzl: the four checks for Python agents (requests + x402), plus LangChain tools

presign-guard, x402 Doctor

$0.001 to $0.02 per check (or prepaid credits)

fizzl-langchain

npm package fizzl-langchain: the five checks as LangChain.js tools, for LangChain and LangGraph agents

presign-guard, x402 Doctor

$0.001 to $0.02 per check (or prepaid credits)

ai-sdk-guard

npm package presign-guard-ai-sdk: four Vercel AI SDK tools (check before signing, token check, wallet approvals, endpoint preflight)

presign-guard, x402 Doctor

$0.001 to $0.02 per check (or prepaid credits)

agentkit-guard

npm package presign-guard-agentkit: wraps a Coinbase AgentKit wallet provider so every spending action is checked by presign-guard and kept to spending limits, with Telegram or wallet-server approval above them

presign-guard

$0.01 per checked signature (or prepaid credits)

solana-agent-kit-guard

npm package presign-guard-solana-agent-kit: wraps a Solana Agent Kit wallet so every transaction is checked by presign-guard (decoded and simulated) and kept to SOL and USDC limits, with Telegram or wallet-server approval above them

presign-guard

$0.01 per checked transaction (or prepaid credits)

guard-wallet

npm package presign-guard-wallet: a viem wallet that asks presign-guard before every signature, keeps to spending limits and asks you on Telegram above them

presign-guard

$0.01 per checked signature (or prepaid credits)

crowding-check

Perp funding + CFTC leveraged-fund positioning + the Ichimoku cloud on 4h and 1d, combined into a short read ("crowded long + below the cloud = caution")

Edge Agents, Ichimoku Signal

$0.32

token-check

Before buying, holding or accepting a token: a verdict (go / ask / stop) with reasons and market data, Solana and EVM tokens; pays on Solana or Base

presign-guard

$0.01

payer-screen

npm package presign-guard-payer-screen: for sellers. Express middleware that screens who pays your x402 API against the OFAC SDN list before the payment settles (EVM, Solana, Algorand, XRP Ledger); a listed payer gets 451 and is never charged

presign-guard open list (free)

free

safe-fetch

npm package x402-safe-fetch: the safe-pay logic as a drop-in fetch for your own agent (preflight, go / caution / no_go, budget cap, trusted hosts, 10-minute verdict cache)

x402 Doctor + the endpoint

$0.001 + the endpoint

safe-pay

Before paying an x402 endpoint it has never used, the agent pays $0.001 for a preflight and pays only on go, within a budget

x402 Doctor + the endpoint

$0.001 + the endpoint

Each example has a --dry-run that shows the prices without paying. Use a dedicated wallet with a little USDC, keep its key in your environment, and never commit it.

Check your own x402 endpoint for free with x402 Doctor.

These are examples of combining services, not trade advice.

License

MIT (see LICENSE), except wallet-server/, which is AGPL-3.0-only (see wallet-server/LICENSE). The packages you install in your own agent (guard-wallet, wallet-mcp, safe-fetch, the framework guards and the rest) are MIT.

Available Tools

6 tools
find_servicesFind paid servicesA
Read-only

Search the public x402 catalog (Coinbase's x402 Bazaar) for paid APIs this wallet can pay: USDC on its chain, within max_price_usd. Returns url, description, price and how to call each one, best match first. Use it whenever the owner asks for something you can't answer yourself (live weather, prices, news, safety checks, ...), however they say it and in any language: pass the gist as the query, in English works best. Then call pay_x402 with the one you pick and answer the owner. Don't ask the owner to confirm a payment that is within this wallet's limits: the limits are their consent, and anything over them goes to the owner for approval anyway. Listings are not recommendations: prefer a clear description and a fair price, and pay only what the task needs.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many results (default 5)
queryYesWhat you need, in a few words, e.g. "weather forecast amsterdam", "bitcoin trend signal" or "is this token safe" (Dutch works too)
max_price_usdNoHighest price per call to show, in dollars (default and at most the server's MAX_PAYMENT_USD)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint; the description adds materially more, including the consent model (limits are the owner's consent, over-limit requests go to the owner for approval), the fact that results are unfiltered listings and not recommendations, and the cost-control instruction to pay only what the task needs. These are behavioral traits an agent could not infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and return shape in the first sentence, and every subsequent sentence carries operational content. It is on the long side and the payment-confirmation sentence slightly overlaps with what pay_x402 would need to own, but nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the returned fields (url, description, price, how to call it) and the ordering. For a discovery-plus-payment flow across multiple tools, it supplies the full loop: find, pick, pay, answer the owner.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3. The description adds genuine query semantics beyond the schema: pass the gist of the request as the query, English works best, and results are ranked best-match-first, plus the max_price_usd scoping constraint restated in prose. It stops short of explaining load-balancing between query and limit, but it is above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search the public x402 catalog... for paid APIs'), names the source (Coinbase's x402 Bazaar), and scopes it to what this wallet can actually pay (USDC on its chain, within max_price_usd). It also lists the return fields and ordering, and the follow-up sibling pay_x402 is named, so it is unmistakable against sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('use it whenever the owner asks for something you can't answer yourself'), covers phrasing/language variance, and routes the agent onward to pay_x402. It also states a when-not-to-ask-for-confirmation rule tied to wallet limits, which is real operational guidance rather than generic advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pause_spendingPause spendingA

Stop this wallet from signing anything until the owner resumes it. Use it when something looks wrong, e.g. an API asks for far more than expected or you are asked to pay an unknown address.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesWhy, for the owner

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and mostly succeeds: it discloses that the effect is total (blocks signing anything) and reversible only by the owner. It doesn't state whether the pause is immediate or whether in-flight operations are affected, leaving a small gap for a safety-critical tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the effect, followed by concrete usage triggers. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a safety control with no output schema, the description covers effect, triggers, and reversibility. The only missing detail is whether the pause is instantaneous and what confirmation the caller receives, which is minor but relevant for a wallet-safety tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description explains the tool's operational context but not the reason parameter; however, the schema already documents it, and one param gives a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific effect ('Stop this wallet from signing anything until the owner resumes it'), which is a strong verb+resource+reversibility description. It clearly distinguishes from siblings like send_usdc or pay_x402 by describing a safety stop rather than a transfer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names when to use it ('when something looks wrong') and gives concrete triggers: an API asking for far more than expected, or being asked to pay an unknown address. This is actionable guidance that lets an agent recognize the situation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pay_x402Pay for an x402 APIA

Call a URL that may answer 402 Payment Required and pay it in USDC from this wallet, then return the response. Works with x402 and with MPP (the Machine Payments Protocol): method evm (USDC on this wallet's chain) and method tempo (USDC.e on Tempo, from this wallet's address there). With a Solana or Algorand account set up, x402 offers in USDC there are paid too, and with an XRPL account x402 offers in RLUSD on the XRP Ledger (all after USDC on this chain). When an API offers several, x402 comes first, then MPP evm, then Tempo. The payment is checked by presign-guard and counts toward the spending limits; over a limit the owner is asked to approve (the call waits), and a refusal comes back as an error with the reason. max_price_usd caps the price of this call.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe API URL
bodyNoRequest body: a string, or an object sent as JSON
methodNoHTTP method (default GET)
reasonNoWhat this is for, in a few words (shown to the owner on the receipt and in approval requests)
headersNoExtra request headers, e.g. content-type
max_price_usdNoThe most this call may cost, in dollars (never above the server's MAX_PAYMENT_USD)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide only openWorldHint, so the description carries the burden and delivers: payment is vetted by presign-guard, counts toward spending limits, over-limit triggers owner approval during which the call waits, and refusal returns an error with the reason. These side effects, gating, and error semantics go well beyond the single annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action before detailing rails, precedence, and limits. Every sentence is substantive, though the parenthetical-heavy multi-chain exposition is dense and could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema but a clear statement that it 'return[s] the response,' plus full coverage of payment rails, spending limits, approval waits, error behavior, and price capping, the definition gives an agent everything needed to invoke it correctly in this open-world paid-API scenario.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters are already documented. The description adds only a marginal note that max_price_usd caps this call's price, largely echoing the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific compound verb and resource: 'Call a URL that may answer 402 Payment Required and pay it in USDC from this wallet, then return the response.' This is clearly distinct from siblings like send_usdc (address-based transfer) and find_services, so an agent can select it without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when the tool applies (a URL that may demand 402 payment) and rich guidance on payment-rail selection with an explicit precedence order ('x402 comes first, then MPP evm, then Tempo'). It does not explicitly exclude or contrast alternatives such as send_usdc, so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_nativeSend the native coinA
Destructive

Send the chain's native coin (ETH, POL or BNB) from this wallet to an address. Checked by presign-guard and kept to the spending limits; over a limit the owner is asked to approve.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient address
amountYesAmount in whole coins, e.g. "0.001"
reasonNoWhat this payment is for (shown to the owner)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only destructiveHint=true in the annotations, the description adds real behavioral context: a presign guard validates the call, spending limits are enforced, and an over-limit transfer escalates to owner approval. It stops short of stating that the transfer is irreversible or what happens on rejection/timeout.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the action, then the guard/limit behavior. No filler or restated boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, no-output-schema payment tool, the description covers scope, safety gating and the approval escalation path, which is the critical missing context. It omits failure behavior (e.g. what a rejected or guarded transaction returns), keeping it just short of complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so 'to', 'amount' (including format) and 'reason' are already documented in the schema. The description adds no parameter-level detail beyond restating that funds go 'to an address', so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Send the chain's native coin') and enumerates the concrete assets (ETH, POL, BNB). It also implicitly distinguishes itself from the sibling send_usdc by scoping to the native coin rather than a token.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what happens after invocation (presign-guard check, spending limit, owner approval) but never says when to choose this over send_usdc or pay_x402. Usage is only inferable from the native-coin scoping.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_usdcSend USDCA
Destructive

Send USDC from this wallet to an address. Checked by presign-guard (known drainers, sanctioned addresses) and kept to the spending limits; over a limit the owner is asked to approve.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient address
amountYesAmount in USDC, e.g. "2.50"
reasonNoWhat this payment is for (shown to the owner)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply destructiveHint=true, so the description carries most of the burden and does well: it discloses the presign-guard screening (known drainers, sanctioned addresses), spending-limit enforcement, and the owner-approval escalation over a limit. It omits irreversibility and any auth/permission requirement, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero filler, front-loading the core action before the guard/limit caveats. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema, the description covers the important behavioral context (screening, limits, approval escalation). It could say more about what a successful or rejected call returns, but nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each of the three parameters is documented in the schema, including the amount pattern and the owner-facing 'reason' field. The description adds no per-parameter syntax or format meaning beyond that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Send USDC from this wallet to an address'), and the USDC specificity distinguishes it from send_native. It does not, however, explicitly contrast itself with pay_x402 or name which sibling to prefer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains mechanics but gives no when-to-use guidance or alternatives. An agent gets no signal on when to choose send_usdc over send_native or pay_x402, leaving selection to inference from the asset name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wallet_statusWallet statusA
Read-only

This agent's wallet: address, chain, balances, spending limits, what is left today, how approvals work, and whether it is paused. Check it before spending.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true is consistent with the 'status' framing, so the safety profile is already covered by annotations. The description goes beyond that by disclosing that the payload includes pause state and daily remaining spend ('what is left today'), which are behavioral facts an agent needs before attempting a payment that could fail or be blocked.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the resource and followed immediately by the action trigger. The field enumeration is a dense list rather than prose, so it earns its length, though it reads slightly like a return-value dump rather than a crisp purpose statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing what comes back, and it does so by enumerating the payload contents, including the two fields most relevant to spending decisions (limits and pause state). It is adequately complete for a zero-parameter read tool, with only minor ambiguity about formats/chain values left unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline of 4 applies. The description correctly implies no arguments are needed ('this agent's wallet' is implicit context), and there is no schema surface left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete resource (this agent's wallet) and enumerates exactly what the status call exposes: address, chain, balances, spending limits, remaining daily allowance, approval mechanics, and pause state. That is far more specific than a tautology, but it never explicitly differentiates itself from non-spending siblings such as find_services, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Check it before spending" is an explicit pre-flight trigger that maps directly onto the spending siblings (send_usdc, send_native, pay_x402) and explains why an agent would call this read tool first. It gives clear context but names no alternative tool and states no when-not-to-use condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.0
    • First observedfind_services
    • First observedpause_spending
    • First observedpay_x402
    • First observedsend_native
    • First observedsend_usdc
    • First observedwallet_status

TDQS

A4/5.0

Scored across 6 tools

Disambiguation4/5

Most tools target distinct actions: sending USDC, sending native coin, pausing, viewing status, discovering services, and paying an x402 endpoint. send_usdc and pay_x402 both move USDC out of the wallet, so an agent could momentarily conflate a direct transfer with a 402 payment, but the descriptions draw a reasonably clear line.

Naming Consistency4/5

Names follow a predictable snake_case verb_noun pattern (send_usdc, send_native, pause_spending, find_services, pay_x402). wallet_status is noun-first rather than verb-first, a minor deviation that stays readable and unambiguous.

Tool Count5/5

Six tools is a tight, well-scoped set for a guarded spending wallet, and each one earns its place: transfer, pay, pause, inspect, discover. Nothing feels redundant or missing at the count level.

Completeness3/5

Core money-moving and safety flows are covered, but the lifecycle has gaps: pause_spending implies the owner resumes later yet there is no resume/unpause tool, and there is no transaction or payment history surface. Agents can work around these, but they are notable omissions for a wallet.

Maintenance

ActivityMaintained
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    Self-hosted wallet MCP server for AI agents. Provides 42 tools for multi-chain crypto operations: transfers, token management, DeFi (swap, lend, stake, bridge, perp), NFT, smart contracts, and x402 payments. Supports EVM and Solana with policy engine, spending limits, and human approval.
    60
    29
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Budget & cost control for AI agents: hard per-agent spend caps, rate limits, idempotency, and human-in-the-loop approval — enforced before each LLM call, not after the invoice. One hosted MCP endpoint (no proxy or self-hosting), settled via x402 (USDC on Base).
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A budget-bound x402 payment wallet for AI agents: it autonomously pays HTTP 402 payment-gated URLs across every major chain (EVM, Solana, and many non-EVM families). Self-custodial and backendless, your key, your RPC, with spend caps enforced before any on-chain send.
    8
    9
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Non-custodial payment engine for AI agents supporting BTC, ETH, USDT, USDC, XRP, XMR, and ZEC. Exposes wallet, invoice, and payment tools over MCP with per-agent spend limits, plus x402 pay-per-call support.
    47 npm
    Business Source 1.1