Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Agentwallet

by hifriendbotversion 1.14.12i★ –iRuns on your computer
Registry nameio.github.hifriendbot/agentwallet

Install

Overview

Description from the maker (original English)

Wallet infrastructure for Ai agents. EVM + Solana. x402 payments. No KYC.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Other
  • You need to fill in: AGENTWALLET_PASS, AGENTWALLET_PRIVATE_KEY, AGENTWALLET_SOLANA_KEY, AGENTWALLET_WEBHOOK_SECRET, AGENTWALLET_KEYFILE_PASSPHRASE

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: AGENTWALLET_USER, AGENTWALLET_PASS, AGENTWALLET_API_URL, AGENTWALLET_WALLET_ID, AGENTWALLET_DASHBOARD_URL, AGENTWALLET_PRIVATE_KEY, AGENTWALLET_KEYFILE, AGENTWALLET_SOLANA_KEY, AGENTWALLET_SOLANA_KEYFILE, AGENTWALLET_RPC_URL, AGENTWALLET_RPC_, AGENTWALLET_SOLANA_RPC, AGENTWALLET_SOLANA_RPC_, AGENTWALLET_CHAIN_ID, AGENTWALLET_MAX_TX_NATIVE, AGENTWALLET_MAX_TX_TOKEN, AGENTWALLET_MAX_TX_SOL, AGENTWALLET_ALLOW_UNKNOWN_TOKEN_CALLS, AGENTWALLET_ALLOW_UNLIMITED_APPROVAL, AGENTWALLET_TOKEN_DECIMALS, AGENTWALLET_MAX_AUTOPAY, AGENTWALLET_MAX_AUTOPAY_PER_HOUR, AGENTWALLET_AUTOPAY_ASSETS, AGENTWALLET_X402_MAX_TIMEOUT, AGENTWALLET_APPROVALS, AGENTWALLET_PERMIT2_AUTO_APPROVE, AGENTWALLET_TOKEN_RISK, AGENTWALLET_LEGACY_PAYWALL_ORIGINS, AGENTWALLET_MAX_FEE_NATIVE, AGENTWALLET_POLICY, AGENTWALLET_LEDGER, AGENTWALLET_WEBHOOK_URL, AGENTWALLET_WEBHOOK_SECRET, AGENTWALLET_KEYFILE_PASSPHRASE, AGENTWALLET_KEYFILE_PASSPHRASE_FILE

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "agentwallet": {
      "command": "npx",
      "args": [
        "-y",
        "agentwallet-mcp"
      ],
      "env": {
        "AGENTWALLET_USER": "your-value",
        "AGENTWALLET_PASS": "your-value",
        "AGENTWALLET_API_URL": "your-value",
        "AGENTWALLET_WALLET_ID": "your-value",
        "AGENTWALLET_DASHBOARD_URL": "your-value",
        "AGENTWALLET_PRIVATE_KEY": "your-value",
        "AGENTWALLET_KEYFILE": "your-value",
        "AGENTWALLET_SOLANA_KEY": "your-value",
        "AGENTWALLET_SOLANA_KEYFILE": "your-value",
        "AGENTWALLET_RPC_URL": "your-value",
        "AGENTWALLET_RPC_": "your-value",
        "AGENTWALLET_SOLANA_RPC": "your-value",
        "AGENTWALLET_SOLANA_RPC_": "your-value",
        "AGENTWALLET_CHAIN_ID": "your-value",
        "AGENTWALLET_MAX_TX_NATIVE": "your-value",
        "AGENTWALLET_MAX_TX_TOKEN": "your-value",
        "AGENTWALLET_MAX_TX_SOL": "your-value",
        "AGENTWALLET_ALLOW_UNKNOWN_TOKEN_CALLS": "your-value",
        "AGENTWALLET_ALLOW_UNLIMITED_APPROVAL": "your-value",
        "AGENTWALLET_TOKEN_DECIMALS": "your-value",
        "AGENTWALLET_MAX_AUTOPAY": "your-value",
        "AGENTWALLET_MAX_AUTOPAY_PER_HOUR": "your-value",
        "AGENTWALLET_AUTOPAY_ASSETS": "your-value",
        "AGENTWALLET_X402_MAX_TIMEOUT": "your-value",
        "AGENTWALLET_APPROVALS": "your-value",
        "AGENTWALLET_PERMIT2_AUTO_APPROVE": "your-value",
        "AGENTWALLET_TOKEN_RISK": "your-value",
        "AGENTWALLET_LEGACY_PAYWALL_ORIGINS": "your-value",
        "AGENTWALLET_MAX_FEE_NATIVE": "your-value",
        "AGENTWALLET_POLICY": "your-value",
        "AGENTWALLET_LEDGER": "your-value",
        "AGENTWALLET_WEBHOOK_URL": "your-value",
        "AGENTWALLET_WEBHOOK_SECRET": "your-value",
        "AGENTWALLET_KEYFILE_PASSPHRASE": "your-value",
        "AGENTWALLET_KEYFILE_PASSPHRASE_FILE": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add agentwallet --env AGENTWALLET_USER=your-value --env AGENTWALLET_PASS=your-value --env AGENTWALLET_API_URL=your-value --env AGENTWALLET_WALLET_ID=your-value --env AGENTWALLET_DASHBOARD_URL=your-value --env AGENTWALLET_PRIVATE_KEY=your-value --env AGENTWALLET_KEYFILE=your-value --env AGENTWALLET_SOLANA_KEY=your-value --env AGENTWALLET_SOLANA_KEYFILE=your-value --env AGENTWALLET_RPC_URL=your-value --env AGENTWALLET_RPC_=your-value --env AGENTWALLET_SOLANA_RPC=your-value --env AGENTWALLET_SOLANA_RPC_=your-value --env AGENTWALLET_CHAIN_ID=your-value --env AGENTWALLET_MAX_TX_NATIVE=your-value --env AGENTWALLET_MAX_TX_TOKEN=your-value --env AGENTWALLET_MAX_TX_SOL=your-value --env AGENTWALLET_ALLOW_UNKNOWN_TOKEN_CALLS=your-value --env AGENTWALLET_ALLOW_UNLIMITED_APPROVAL=your-value --env AGENTWALLET_TOKEN_DECIMALS=your-value --env AGENTWALLET_MAX_AUTOPAY=your-value --env AGENTWALLET_MAX_AUTOPAY_PER_HOUR=your-value --env AGENTWALLET_AUTOPAY_ASSETS=your-value --env AGENTWALLET_X402_MAX_TIMEOUT=your-value --env AGENTWALLET_APPROVALS=your-value --env AGENTWALLET_PERMIT2_AUTO_APPROVE=your-value --env AGENTWALLET_TOKEN_RISK=your-value --env AGENTWALLET_LEGACY_PAYWALL_ORIGINS=your-value --env AGENTWALLET_MAX_FEE_NATIVE=your-value --env AGENTWALLET_POLICY=your-value --env AGENTWALLET_LEDGER=your-value --env AGENTWALLET_WEBHOOK_URL=your-value --env AGENTWALLET_WEBHOOK_SECRET=your-value --env AGENTWALLET_KEYFILE_PASSPHRASE=your-value --env AGENTWALLET_KEYFILE_PASSPHRASE_FILE=your-value -- npx -y agentwallet-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "agentwallet": {
      "command": "npx",
      "args": [
        "-y",
        "agentwallet-mcp"
      ],
      "env": {
        "AGENTWALLET_USER": "your-value",
        "AGENTWALLET_PASS": "your-value",
        "AGENTWALLET_API_URL": "your-value",
        "AGENTWALLET_WALLET_ID": "your-value",
        "AGENTWALLET_DASHBOARD_URL": "your-value",
        "AGENTWALLET_PRIVATE_KEY": "your-value",
        "AGENTWALLET_KEYFILE": "your-value",
        "AGENTWALLET_SOLANA_KEY": "your-value",
        "AGENTWALLET_SOLANA_KEYFILE": "your-value",
        "AGENTWALLET_RPC_URL": "your-value",
        "AGENTWALLET_RPC_": "your-value",
        "AGENTWALLET_SOLANA_RPC": "your-value",
        "AGENTWALLET_SOLANA_RPC_": "your-value",
        "AGENTWALLET_CHAIN_ID": "your-value",
        "AGENTWALLET_MAX_TX_NATIVE": "your-value",
        "AGENTWALLET_MAX_TX_TOKEN": "your-value",
        "AGENTWALLET_MAX_TX_SOL": "your-value",
        "AGENTWALLET_ALLOW_UNKNOWN_TOKEN_CALLS": "your-value",
        "AGENTWALLET_ALLOW_UNLIMITED_APPROVAL": "your-value",
        "AGENTWALLET_TOKEN_DECIMALS": "your-value",
        "AGENTWALLET_MAX_AUTOPAY": "your-value",
        "AGENTWALLET_MAX_AUTOPAY_PER_HOUR": "your-value",
        "AGENTWALLET_AUTOPAY_ASSETS": "your-value",
        "AGENTWALLET_X402_MAX_TIMEOUT": "your-value",
        "AGENTWALLET_APPROVALS": "your-value",
        "AGENTWALLET_PERMIT2_AUTO_APPROVE": "your-value",
        "AGENTWALLET_TOKEN_RISK": "your-value",
        "AGENTWALLET_LEGACY_PAYWALL_ORIGINS": "your-value",
        "AGENTWALLET_MAX_FEE_NATIVE": "your-value",
        "AGENTWALLET_POLICY": "your-value",
        "AGENTWALLET_LEDGER": "your-value",
        "AGENTWALLET_WEBHOOK_URL": "your-value",
        "AGENTWALLET_WEBHOOK_SECRET": "your-value",
        "AGENTWALLET_KEYFILE_PASSPHRASE": "your-value",
        "AGENTWALLET_KEYFILE_PASSPHRASE_FILE": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "agentwallet": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "agentwallet-mcp"
      ],
      "env": {
        "AGENTWALLET_USER": "your-value",
        "AGENTWALLET_PASS": "your-value",
        "AGENTWALLET_API_URL": "your-value",
        "AGENTWALLET_WALLET_ID": "your-value",
        "AGENTWALLET_DASHBOARD_URL": "your-value",
        "AGENTWALLET_PRIVATE_KEY": "your-value",
        "AGENTWALLET_KEYFILE": "your-value",
        "AGENTWALLET_SOLANA_KEY": "your-value",
        "AGENTWALLET_SOLANA_KEYFILE": "your-value",
        "AGENTWALLET_RPC_URL": "your-value",
        "AGENTWALLET_RPC_": "your-value",
        "AGENTWALLET_SOLANA_RPC": "your-value",
        "AGENTWALLET_SOLANA_RPC_": "your-value",
        "AGENTWALLET_CHAIN_ID": "your-value",
        "AGENTWALLET_MAX_TX_NATIVE": "your-value",
        "AGENTWALLET_MAX_TX_TOKEN": "your-value",
        "AGENTWALLET_MAX_TX_SOL": "your-value",
        "AGENTWALLET_ALLOW_UNKNOWN_TOKEN_CALLS": "your-value",
        "AGENTWALLET_ALLOW_UNLIMITED_APPROVAL": "your-value",
        "AGENTWALLET_TOKEN_DECIMALS": "your-value",
        "AGENTWALLET_MAX_AUTOPAY": "your-value",
        "AGENTWALLET_MAX_AUTOPAY_PER_HOUR": "your-value",
        "AGENTWALLET_AUTOPAY_ASSETS": "your-value",
        "AGENTWALLET_X402_MAX_TIMEOUT": "your-value",
        "AGENTWALLET_APPROVALS": "your-value",
        "AGENTWALLET_PERMIT2_AUTO_APPROVE": "your-value",
        "AGENTWALLET_TOKEN_RISK": "your-value",
        "AGENTWALLET_LEGACY_PAYWALL_ORIGINS": "your-value",
        "AGENTWALLET_MAX_FEE_NATIVE": "your-value",
        "AGENTWALLET_POLICY": "your-value",
        "AGENTWALLET_LEDGER": "your-value",
        "AGENTWALLET_WEBHOOK_URL": "your-value",
        "AGENTWALLET_WEBHOOK_SECRET": "your-value",
        "AGENTWALLET_KEYFILE_PASSPHRASE": "your-value",
        "AGENTWALLET_KEYFILE_PASSPHRASE_FILE": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • AGENTWALLET_USER env
    Hosted mode: your hifriendbot.com username
  • AGENTWALLET_PASS secret env
    Hosted mode: an AgentWallet application password from hifriendbot.com/wallet/
  • AGENTWALLET_API_URL env
    Hosted mode: the API base (default https://hifriendbot.com/wp-json/agentwallet/v1); must be https, or http on localhost
  • AGENTWALLET_WALLET_ID env
    Hosted mode: wallet id that pays hosted billing 402s automatically (POST /wallets, /sign, /send only); unset means never
  • AGENTWALLET_DASHBOARD_URL env
    Hosted mode: dashboard link shown in tool text
  • AGENTWALLET_PRIVATE_KEY secret env
    Local (self-custody) mode: 0x-prefixed EVM private key; signing then happens in this process
  • AGENTWALLET_KEYFILE env
    Local mode: path of a file holding the EVM private key (instead of AGENTWALLET_PRIVATE_KEY; not both)
  • AGENTWALLET_SOLANA_KEY secret env
    Local mode for Solana: secret key as a JSON array, base58 or base64
  • AGENTWALLET_SOLANA_KEYFILE env
    Local mode for Solana: path of a key file (instead of AGENTWALLET_SOLANA_KEY; not both)
  • AGENTWALLET_RPC_URL env
    Local mode: one EVM RPC for every chain
  • AGENTWALLET_RPC_ env
    Local mode: EVM RPC per chain, e.g. AGENTWALLET_RPC_8453; eth_chainId is checked
  • AGENTWALLET_SOLANA_RPC env
    Local mode: one Solana RPC for every cluster
  • AGENTWALLET_SOLANA_RPC_ env
    Local mode: Solana RPC per cluster (900 mainnet, 901 devnet, 902 testnet); the genesis hash is checked
  • AGENTWALLET_CHAIN_ID env
    Local mode: default EVM chain when a call names none (default 8453)
  • AGENTWALLET_MAX_TX_NATIVE env
    Local mode: per-transaction ceiling in native units
  • AGENTWALLET_MAX_TX_TOKEN env
    Local mode: per-transaction ceiling for ERC-20 and SPL transfers and approvals, in token units
  • AGENTWALLET_MAX_TX_SOL env
    Local mode: per-transaction ceiling in SOL (also charged for a recipient token account the send creates)
  • AGENTWALLET_ALLOW_UNKNOWN_TOKEN_CALLS env
    Local mode: 1 lets calldata the token cap cannot price reach a token contract (refused by default)
  • AGENTWALLET_ALLOW_UNLIMITED_APPROVAL env
    1 lets an unlimited ERC-20 allowance or an NFT operator grant through while no spend policy is set (refused by default, and always refused under a policy)
  • AGENTWALLET_TOKEN_DECIMALS env
    Pin decimals for tokens outside the registry, e.g. 8453:0x =6, =9; used for amounts and caps instead of the RPC answer
  • AGENTWALLET_MAX_AUTOPAY env
    Per-payment x402 ceiling in stablecoin units (default 1); the agent cannot raise it
  • AGENTWALLET_MAX_AUTOPAY_PER_HOUR env
    Hosted mode: how many internal 402 auto-payments an hour (default 20; 0 disables)
  • AGENTWALLET_AUTOPAY_ASSETS env
    Assets pay_x402 may pay in beyond registry stablecoins, e.g. 8453:native,0x
  • AGENTWALLET_X402_MAX_TIMEOUT env
    Longest x402 authorization window in seconds (default 3600; 60 to 31536000)
  • AGENTWALLET_APPROVALS env
    Hosted mode: 0 disables emailing the wallet owner for an over-cap payment
  • AGENTWALLET_PERMIT2_AUTO_APPROVE env
    Hosted mode: 1 approves exactly an upto payment maximum to Permit2 for registry stablecoins
  • AGENTWALLET_TOKEN_RISK env
    0 skips the GoPlus lookup approve_token performs
  • AGENTWALLET_LEGACY_PAYWALL_ORIGINS env
    Comma-separated https origins whose legacy-shaped 402 may be paid by an on-chain transfer proved by hash (the API host always may)
  • AGENTWALLET_MAX_FEE_NATIVE env
    Local mode: the most a transaction may burn in fees (gas x max fee per gas), in native units; default 0.01
  • AGENTWALLET_POLICY env
    Path of a spend policy JSON file: rolling dollar and native budgets, host, recipient, chain, asset and tool lists, and a human-approval threshold, enforced from a hash-chained ledger
  • AGENTWALLET_LEDGER env
    Path of the append-only ledger the policy is enforced from (default: agentwallet-ledger.jsonl beside the policy file)
  • AGENTWALLET_WEBHOOK_URL env
    https URL (or http on localhost) that receives every ledger line as it is written
  • AGENTWALLET_WEBHOOK_SECRET secret env
    HMAC-SHA256 key for the X-AgentWallet-Signature header on webhook posts
  • AGENTWALLET_KEYFILE_PASSPHRASE secret env
    Passphrase that opens an encrypted keyfile (made with `agentwallet-mcp encrypt-keyfile`)
  • AGENTWALLET_KEYFILE_PASSPHRASE_FILE env
    Path of a file holding the keyfile passphrase (instead of AGENTWALLET_KEYFILE_PASSPHRASE; not both)

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account hifriendbot, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Otheri

  • More stars than 0% of the other 32558 servers in this category
  • Published to the registry more recently than 91% of the other 32558 servers in this category
  • Basic checks equal to or better than 100% of the other 32558 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Agentwallet safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: AGENTWALLET_PASS, AGENTWALLET_PRIVATE_KEY, AGENTWALLET_SOLANA_KEY, AGENTWALLET_WEBHOOK_SECRET, AGENTWALLET_KEYFILE_PASSPHRASE

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.14.12) reached the registry 3 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, FactLot

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

by formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Runs in the cloud★ 211Updated yesterday
Install

FactLot

by 9mp96ygnbk-alt

Cited CRE facts and deterministic calculators for agents: rent, CAM, debt sizing, IRR, parcel IDs.

Computer or cloudUpdated today
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

AgentWallet MCP Server

Permissionless wallet infrastructure for AI agents. Create wallets, sign transactions, and broadcast on-chain, on any EVM chain and Solana. Built-in guards. No KYC. The only AI agent wallet that accepts crypto for its own API fees.

Your keys can stay on your machine. Set one environment variable and every signature happens in your own process. No server sees the key, no company can freeze the wallet, and you can verify that claim by reading src/local-wallet.ts or by running the server with the API pointed at a closed port.

No KYC. No KYT. No approval process. No transaction monitoring. No one can block your wallet. Pay with USDC on-chain, no credit card required.

Two modes

Local (self-custody)Hosted (custodial)
Who holds the keyYou, in your own processEncrypted on AgentWallet servers
Set upOne env var, no account neededAPI key
ChainsEVM + SolanaEVM + Solana
Can anyone freeze itNoYes, that is what pause is for
Spend guardsAGENTWALLET_MAX_TX_NATIVE, AGENTWALLET_MAX_TX_TOKEN, AGENTWALLET_MAX_TX_SOL, AGENTWALLET_MAX_AUTOPAYServer-side limits, pause, rate limits
Paywalls, usage, billingNeeds an API key tooIncluded

Run wallet_mode at any time and the server will tell you which one you are in, and which address it controls.

Local signing in one variable
{

"mcpServers": { "agentwallet": { "command": "npx", "args": ["-y", "agentwallet-mcp"], "env": { "AGENTWALLET_PRIVATE_KEY": "0xyour_key", "AGENTWALLET_RPC_8453": "https://your-own-rpc", "AGENTWALLET_MAX_TX_NATIVE": "0.05" } } } }

Use AGENTWALLET_KEYFILE=/path/to/key instead if you would rather keep the key out of your shell config (one or the other: the server refuses to start when both are set). The key is read once, never written to disk, never logged, and never included in an error message.

AGENTWALLET_RPC_ (or AGENTWALLET_RPC_URL for all chains) points at an endpoint you trust (https; plain http only on localhost). Without it a public RPC is used, and a public RPC can see which addresses you ask about. Decimals for a token outside the registry come from that RPC and are accepted only up to 18; pin anything else with AGENTWALLET_TOKEN_DECIMALS.

AGENTWALLET_MAX_TX_NATIVE is a per-transaction ceiling in native units (ETH, MATIC and so on). In hosted mode the server enforces limits; in local mode there is no server, so these guards are the only ones there are. Set them.

AGENTWALLET_MAX_TX_TOKEN is the equivalent ceiling for ERC-20 movement, in human units of the token. Set this one too if you hold stablecoins. The native cap cannot see a token transfer: an ERC-20 send carries value = 0 with the amount in the calldata, so AGENTWALLET_MAX_TX_NATIVE alone leaves a USDC balance uncapped. AGENTWALLET_MAX_TX_TOKEN covers transfer, transferFrom, approve, increaseAllowance, EIP-2612 permit, Permit2 approve, and deposit() / withdraw(uint256) on the chain's own wrapped-native contract (so wrap_eth and unwrap_eth keep working under the cap), the approvals because an unbounded allowance is a drain waiting to happen. ERC-721 and ERC-1155 calldata (setApprovalForAll, safeTransferFrom) is refused while the cap is set, since nothing prices an NFT; without the cap it passes the way an ERC-20 transfer of any size does, except that an operator grant is an unlimited approval and is refused everywhere by default (see AGENTWALLET_ALLOW_UNLIMITED_APPROVAL). Any other calldata sent to a token contract or to Permit2 is refused while the cap is set, because the guard cannot price it; set AGENTWALLET_ALLOW_UNKNOWN_TOKEN_CALLS=1 to allow such calls deliberately. increaseAllowance is judged on the resulting total: the current allowance is read first and the call refuses if it cannot be, so two compliant increments cannot stack a standing allowance above the cap. Calls to other contracts (routers, bridges) pass, since they can only pull what an approval already allowed; a contract counts as "other" only when it demonstrably declines decimals(), so an absurd or malformed answer, or an RPC that cannot be reached, refuses rather than allows. Decimals are resolved locally from the trusted registry, then the token's own decimals(); a token that resolves neither way is evaluated at 0 decimals, the only value that cannot fail open. For a token outside the registry the RPC is the only source of decimals, and an RPC you do not control could scale the amount and the cap together; pin such tokens with AGENTWALLET_TOKEN_DECIMALS (for example 8453:0x =6) and the pin is used everywhere the RPC's answer would have been.

Solana local signing
"env": {

"AGENTWALLET_SOLANA_KEY": "[12,34...]", "AGENTWALLET_SOLANA_RPC": "https://your-own-rpc", "AGENTWALLET_MAX_TX_SOL": "1", "AGENTWALLET_MAX_TX_TOKEN": "25" }

Accepts whichever format you already have: a solana-keygen id.json array, a base58 secret key as exported by Phantom, or base64. Use AGENTWALLET_SOLANA_KEYFILE to point at a file instead. Native SOL and SPL token transfers are both signed locally, and a missing associated token account is created for the recipient automatically.

Set either key, or both. They are independent: run EVM locally and Solana hosted, or the reverse.

An operation with no matching local key is refused, never silently routed to the hosted signer. If you have an EVM key configured and ask for a Solana transfer with no Solana key, the server stops and tells you which variable is missing. Quietly moving funds onto a key you do not hold, while you believe you are in self-custody, is the worst thing this server could do.

About the dependency tree

Local signing uses viem for EVM and @solana/web3.js for Solana, plus bs58 for key parsing. SPL instructions are built by hand rather than with @solana/spl-token, because that package pulls in bigint-buffer, which carries a high severity buffer overflow advisory. A wallet has no business shipping that to save a dozen lines of instruction encoding.

npm audit reports no advisories as of 1.13.5; the overrides in package.json keep two advisories under @solana/web3.js's jayson closed. Earlier releases carried advisories inside @modelcontextprotocol/sdk's HTTP transport dependencies. This server speaks stdio, so that code never loads, and the SDK is not something this package can patch. Run the audit yourself. Publishing a tree you can inspect is the point.

Features

  • 40 MCP tools: create wallets, send transactions, approve tokens, wrap ETH, transfer SPL tokens, quote, discover, pay and accept x402 payments, verify custody mode, and more
  • Spend policy: rolling daily and monthly budgets, per-host ceilings, host and recipient lists, human approval through MCP elicitation, and a tool allowlist, in one JSON file, enforced from a hash-chained ledger. The key stays yours and the agent still cannot overspend.
  • EVM + Solana: Ethereum, Base, Polygon, BSC, Arbitrum, Optimism, Avalanche, Zora, PulseChain, Solana, and any other EVM-compatible chain
  • SOL + SPL tokens: native SOL transfers and SPL token transfers (USDC, USDT, etc.) with automatic account creation
  • Built-in guards: in hosted mode, daily spending limits, gas price protection, emergency pause and rate limiting are enforced server-side by default. In local mode your protection is the per-transaction caps you set (AGENTWALLET_MAX_TX_NATIVE, AGENTWALLET_MAX_TX_TOKEN, AGENTWALLET_MAX_TX_SOL, AGENTWALLET_MAX_AUTOPAY). x402 replay protection and on-chain verification apply either way
  • x402 payments: pay for x402-enabled APIs automatically, or accept x402 payments on your own endpoints (EVM and Solana)
  • Self-custody option: run local mode and the key never leaves your machine. In hosted mode, keys are encrypted at rest, decrypted only during signing, and zeroed from memory immediately after. Either way you can export and walk away.
  • Permissionless: No KYC. No KYT. No identity verification. No approval process. No compliance gatekeeping. Sign up, get an API key, and start transacting immediately.
  • 30-second setup: three lines of config. No SDK to install. No dependencies to manage.

Pricing

  • $0.00345 per operation
  • 6,000 free operations/month
  • $0.0005 per x402 verification
  • 1,000 free x402 verifications/month
  • Pay with USDC on-chain via x402, no credit card required
  • No monthly fee, no tiers, just pay as you go

Competitor comparisons are kept at hifriendbot.com/wallet/#pricing with the date they were last verified. They live there rather than here because a published npm README cannot be corrected when someone else changes their prices.

Quick Start

Get your free API key at hifriendbot.com/wallet, no credit card required, no KYC, no approval wait.

Claude Desktop / OpenClaw

Add to your config:

{

"mcpServers": { "agentwallet": { "command": "npx", "args": ["-y", "agentwallet-mcp"], "env": { "AGENTWALLET_USER": "your_username", "AGENTWALLET_PASS": "your_api_key", "AGENTWALLET_WALLET_ID": "1" } } } }

AGENTWALLET_WALLET_ID is optional. Set it to enable x402 auto-pay: when you exceed the free tier without a credit card, the MCP server automatically pays for operations with USDC from this wallet. Only the metered routes (creating a wallet, signing, sending) are paid this way, at most AGENTWALLET_MAX_AUTOPAY_PER_HOUR times an hour (default 20; the slot is taken before the payment is sent, so parallel calls cannot overrun it, and processes sharing a ledger file share the hour, while without one the count is per process), and every automatic payment is reported in the tool result under autopay_payment. A 402 on any other route is reported, never paid.

Auto-pay safety cap. AGENTWALLET_MAX_AUTOPAY (optional, default 1) is the most one x402 payment may authorize, in stablecoin units: 1 means one dollar. It prices registry stablecoins only (USDC, USDT, USDbC, DAI on the supported chains, USDC and USDT on Solana). A requirement in the chain's native asset or in any other token is refused, because "1" measured in ETH is a few thousand dollars; list such assets in AGENTWALLET_AUTOPAY_ASSETS (comma-separated addresses or mints, or the word native) to allow them, and the cap then applies in that asset's own units. Any requirement above the cap is rejected instead of paid, so a malformed or tampered payment requirement cannot drain the wallet. This automatic path settles exact requirements only; an upto offer from the API is refused before any wallet call, because paying a usage maximum upfront is not what the offer means (use pay_x402, which signs a Permit2 authorization for it). The cap is the operator's ceiling: a max_payment argument can lower it for one call but never raise it. Raise the variable itself if you genuinely need larger automatic payments (for example "5" for up to 5 USDC per call).

Claude Code
claude mcp add agentwallet \

-e AGENTWALLET_USER=your_username \ -e AGENTWALLET_PASS=your_api_key \ -e AGENTWALLET_WALLET_ID=1 \ -- npx -y agentwallet-mcp

VS Code

Add to your settings:

{

"mcp": { "servers": { "agentwallet": { "command": "npx", "args": ["-y", "agentwallet-mcp"], "env": { "AGENTWALLET_USER": "your_username", "AGENTWALLET_PASS": "your_api_key", "AGENTWALLET_WALLET_ID": "1" }

Only the beginning is shown; read the rest in the repo

Ask PopNx