# io.github.hifriendbot/agentwallet (npm · agentwallet-mcp)

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

- Trust score: 69/100 (medium)
- Change this week: +25
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `agentwallet-mcp`: 69/100 (this document), [markdown](https://verifymcp.io/servers/hifriendbot-agentwallet/agentwallet-mcp.md), [page](https://verifymcp.io/servers/hifriendbot-agentwallet/agentwallet-mcp)

## Channel facts

- Registry: `npm`
- Package: `agentwallet-mcp`
- Version: `1.7.4`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4064 tokens (~140/item across 29 items; 29 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add hifriendbot-agentwallet -- npx -y agentwallet-mcp
```

### Codex

```bash
codex mcp add hifriendbot-agentwallet -- npx -y agentwallet-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hifriendbot-agentwallet": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "agentwallet-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add hifriendbot-agentwallet --command npx --arg -y --arg agentwallet-mcp
```

### Hermes

```yaml
mcp_servers:
  hifriendbot-agentwallet:
    command: "npx"
    args: ["-y", "agentwallet-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "hifriendbot-agentwallet": {
      "command": "npx",
      "args": [
        "-y",
        "agentwallet-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 68, +63)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Schema quality: unverified → excellent
- [functional] Licence: MIT

### 2026-07-31 (score 5, −21)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 26, −18)

- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 44)

First indexed and scored.

## MCP tools (29)

### `create_wallet` (~127 tokens)

Create a new EVM or Solana wallet. Returns the wallet ID and address. Private key is encrypted server-side and never exposed.

Input parameters:

- `chain_id` (integer): Default chain ID (1=Ethereum, 8453=Base, 42161=Arbitrum, 10=Optimism, 137=Polygon, 43114=Avalanche, 56=BSC, 7777777=Zora, 369=PulseChain, 900=Solana, 901=Solana Devnet)
- `label` (string): Friendly name for the wallet

### `list_wallets` (~32 tokens)

List all wallets owned by the authenticated user. Returns wallet IDs, addresses, labels, chain IDs, and status.

### `get_wallet` (~41 tokens)

Get details for a specific wallet by ID. Returns address, label, chain, spending limits, and pause status.

Input parameters:

- `wallet_id` (integer, required): Wallet ID

### `get_balance` (~68 tokens)

Get the native token balance for a wallet on a specific chain. Returns balance in both wei (or lamports for Solana) and human-readable format.

Input parameters:

- `chain_id` (integer): Chain ID to check (defaults to wallet's default chain)
- `wallet_id` (integer, required): Wallet ID

### `sign_transaction` (~245 tokens)

Sign a transaction with a wallet's private key. For EVM: returns signed raw transaction hex. For Solana: returns base64 signed transaction. Does NOT broadcast — use send_transaction for sign + broadcast.

Input parameters:

- `chain_id` (integer): Chain ID (defaults to wallet's default)
- `data` (string): Hex-encoded calldata (0x-prefixed) for EVM contract calls
- `gas_limit` (string): Gas limit — EVM only (auto-estimated if omitted)
- `max_fee` (string): Max fee per gas in wei — EVM only (auto if omitted)
- `priority_fee` (string): Max priority fee per gas in wei — EVM only (auto if omitted)
- `to` (string, required): Destination address (0x-prefixed for EVM, Base58 for Solana)
- `token_decimals` (integer): SPL token decimals — Solana only (6 for USDC)
- `token_mint` (string): SPL token mint address — Solana only (for SPL token transfers)
- `value` (string): Value in wei/lamports (decimal string)
- `wallet_id` (integer, required): Wallet ID

### `send_transaction` (~237 tokens)

Sign and broadcast a transaction. Returns the transaction hash (EVM) or signature (Solana) on success. The transaction is signed server-side and broadcast via RPC.

Input parameters:

- `chain_id` (integer): Chain ID (defaults to wallet's default)
- `data` (string): Hex-encoded calldata (0x-prefixed) for EVM contract calls
- `gas_limit` (string): Gas limit — EVM only (auto-estimated if omitted)
- `max_fee` (string): Max fee per gas in wei — EVM only (auto if omitted)
- `priority_fee` (string): Max priority fee per gas in wei — EVM only (auto if omitted)
- `to` (string, required): Destination address (0x-prefixed for EVM, Base58 for Solana)
- `token_decimals` (integer): SPL token decimals — Solana only (6 for USDC)
- `token_mint` (string): SPL token mint address — Solana only (for SPL token transfers)
- `value` (string): Value in wei/lamports (decimal string)
- `wallet_id` (integer, required): Wallet ID

### `transfer` (~214 tokens)

Send native tokens (ETH, AVAX, BNB, POL, PLS, SOL) to an address. Specify the amount in human-readable format (e.g. "0.1" for 0.1 ETH). The amount is converted to wei/lamports automatically. Signs and broadcasts the transaction.

Input parameters:

- `amount` (string, required): Amount to send in human-readable format (e.g. "0.1" for 0.1 ETH)
- `chain_id` (integer, required): Chain ID (1=Ethereum, 8453=Base, 42161=Arbitrum, 10=Optimism, 137=Polygon, 43114=Avalanche, 56=BSC, 7777777=Zora, 369=PulseChain, 900=Solana, 901=Solana Devnet)
- `to` (string, required): Destination address (0x-prefixed for EVM, Base58 for Solana)
- `wallet_id` (integer, required): Wallet ID to send from

### `get_token_balance` (~121 tokens)

Get the ERC-20 or SPL token balance for a wallet on a specific chain. Returns the raw balance and human-readable balance. Use get_chains to find stablecoin addresses for each chain.

Input parameters:

- `chain_id` (integer, required): Chain ID to check on
- `decimals` (integer): Token decimals (6 for USDC, 18 for most tokens)
- `token` (string, required): Token address (0x-prefixed ERC-20 contract for EVM, Base58 mint for Solana)
- `wallet_id` (integer, required): Wallet ID to check

### `transfer_token` (~182 tokens)

Send ERC-20 tokens (EVM) or SPL tokens (Solana) to an address. Specify the amount in human-readable format (e.g. "100" for 100 USDC). Signs and broadcasts the transaction. Use get_chains to find stablecoin addresses.

Input parameters:

- `amount` (string, required): Amount in human-readable format (e.g. "100" for 100 USDC)
- `chain_id` (integer, required): Chain ID
- `decimals` (integer): Token decimals (6 for USDC, 18 for most tokens)
- `to` (string, required): Recipient address (0x-prefixed for EVM, Base58 for Solana)
- `token` (string, required): Token address (0x-prefixed ERC-20 contract for EVM, Base58 mint for Solana)
- `wallet_id` (integer, required): Wallet ID to send from

### `call_contract` (~85 tokens)

Execute a read-only call against a smart contract (eth_call). Returns the raw hex result. Does not cost gas or modify state. Useful for reading on-chain data like token balances, prices, positions.

Input parameters:

- `chain_id` (integer, required): Chain ID
- `data` (string, required): ABI-encoded calldata (0x-prefixed hex)
- `to` (string, required): Contract address

### `approve_token` (~148 tokens)

Approve a spender contract to transfer ERC-20 tokens on your behalf. Required before interacting with any DeFi protocol (DEXs, lending, etc.). Use amount "max" for unlimited approval, or specify an exact amount.

Input parameters:

- `amount` (string, required): Amount to approve in human-readable format (e.g. "1000"), or "max" for unlimited
- `chain_id` (integer, required): Chain ID
- `decimals` (integer): Token decimals (6 for USDC, 18 for most tokens)
- `spender` (string, required): Contract address to approve as spender
- `token` (string, required): ERC-20 token contract address
- `wallet_id` (integer, required): Wallet ID

### `get_allowance` (~122 tokens)

Check how many ERC-20 tokens a spender is approved to transfer. Returns the allowance in both raw and human-readable format. Use this to check if an approval is needed before a DeFi transaction.

Input parameters:

- `chain_id` (integer, required): Chain ID
- `decimals` (integer): Token decimals (6 for USDC, 18 for most tokens)
- `spender` (string, required): Spender contract address to check
- `token` (string, required): ERC-20 token contract address
- `wallet_id` (integer, required): Wallet ID (used to determine the owner address)

### `wrap_eth` (~123 tokens)

Wrap native tokens (ETH, AVAX, BNB, POL, PLS) into their wrapped ERC-20 version (WETH, WAVAX, etc.). Required for most DeFi protocols that use ERC-20 tokens instead of raw native tokens. Specify amount in human-readable format (e.g. "0.5" for 0.5 ETH).

Input parameters:

- `amount` (string, required): Amount to wrap in human-readable format (e.g. "0.5")
- `chain_id` (integer, required): Chain ID
- `wallet_id` (integer, required): Wallet ID

### `unwrap_eth` (~95 tokens)

Unwrap wrapped tokens (WETH, WAVAX, WBNB, etc.) back to native tokens. Specify amount in human-readable format (e.g. "0.5" for 0.5 WETH).

Input parameters:

- `amount` (string, required): Amount to unwrap in human-readable format (e.g. "0.5")
- `chain_id` (integer, required): Chain ID
- `wallet_id` (integer, required): Wallet ID

### `get_token_info` (~61 tokens)

Get the name, symbol, and decimals of any ERC-20 token by its contract address. Useful for discovering token details before transfers or approvals.

Input parameters:

- `chain_id` (integer, required): Chain ID
- `token` (string, required): ERC-20 token contract address

### `pay_x402` (~233 tokens)

Handle an x402 payment flow. Fetches a URL, and if the server returns HTTP 402 Payment Required, parses the payment requirements, executes the on-chain payment, and retries the request with proof of payment. Returns the final response. Supports the x402 open payment standard (https://x402.org). Set max_payment to prevent overspending.

Input parameters:

- `body` (string): Optional request body for POST/PUT requests
- `headers` (string): Optional JSON string of additional request headers
- `max_payment` (string): Maximum payment in human-readable format (e.g. "1.00" for 1 USDC). Rejects payments above this amount. Strongly recommended to prevent overspending.
- `method` (string): HTTP method (GET, POST, PUT, DELETE)
- `prefer_chain` (integer): Preferred chain ID if the server accepts payment on multiple chains (e.g. 8453 for Base, 1 for Ethereum)
- `url` (string, required): The URL to access (will handle 402 payment if required)
- `wallet_id` (integer, required): Wallet ID to pay from

### `get_usage` (~28 tokens)

Get the current month's usage statistics. Returns operations count, tier info, remaining quota, and fees.

### `buy_verification_credits` (~85 tokens)

Buy x402 verification credits with USDC on-chain. Paywall owners need credits to process verifications beyond the free tier (1,000/month) when they don't have Stripe billing configured. Returns 402 payment instructions — pay on-chain and retry with proof.

Input parameters:

- `count` (integer): Number of verification credits to purchase (min 100, default 1000)

### `pause_wallet` (~33 tokens)

Emergency pause a wallet. No transactions can be signed while paused.

Input parameters:

- `wallet_id` (integer, required): Wallet ID to pause

### `unpause_wallet` (~33 tokens)

Resume a paused wallet so transactions can be signed again.

Input parameters:

- `wallet_id` (integer, required): Wallet ID to unpause

### `get_chains` (~36 tokens)

List all supported chains (EVM + Solana) with their chain IDs, native tokens, stablecoins, and RPC configuration status.

### `delete_wallet` (~43 tokens)

Delete (soft-delete) a wallet. The wallet will no longer appear in listings and cannot be used for transactions.

Input parameters:

- `wallet_id` (integer, required): Wallet ID to delete

### `create_paywall` (~325 tokens)

Create an x402 paywall that charges agents/clients for accessing a resource. Returns a public access URL that returns HTTP 402 until paid. Agents pay on-chain, then retry with proof to get the content.

Input parameters:

- `amount` (string, required): Price in human-readable format (e.g. "0.01" for 0.01 USDC)
- `chain_id` (integer): Chain ID for payments (8453=Base, 1=Ethereum, etc.)
- `description` (string): Description shown in the 402 response
- `name` (string, required): Human-readable paywall name (e.g. "Premium API Access")
- `resource_mime` (string): MIME type of the resource (e.g. "application/json", "text/plain")
- `resource_url` (string, required): URL of the protected resource to serve after payment verification
- `token_address` (string): Token contract address (ERC-20 for EVM, SPL mint Base58 for Solana). Required if token_type is "erc20" or "spl". Use get_chains to find stablecoin addresses.
- `token_decimals` (integer): Token decimals (6 for USDC, 18 for ETH/most tokens)
- `token_name` (string): Token display name (e.g. "USDC", "ETH")
- `token_type` (string): "erc20" for EVM stablecoins, "spl" for Solana SPL tokens, "native" for ETH/SOL/POL/etc.
- `wallet_id` (integer, required): Wallet ID to receive payments

### `list_paywalls` (~60 tokens)

List all your x402 paywalls. Returns paywall IDs, names, pricing, access URLs, payment counts, and revenue totals.

Input parameters:

- `page` (integer): Page number
- `per_page` (integer): Results per page (max 100)

### `get_paywall` (~45 tokens)

Get details for a specific x402 paywall by ID. Returns pricing, access URL, payment stats, and configuration.

Input parameters:

- `paywall_id` (integer, required): Paywall ID

### `update_paywall` (~146 tokens)

Update an x402 paywall configuration. Can change price, resource URL, active status, or any other field.

Input parameters:

- `amount` (string): New price in human-readable format (e.g. "0.05")
- `description` (string): New description
- `is_active` (boolean): Enable (true) or disable (false) the paywall
- `name` (string): New paywall name
- `paywall_id` (integer, required): Paywall ID to update
- `resource_mime` (string): New MIME type
- `resource_url` (string): New resource URL
- `token_decimals` (integer): Token decimals (needed if changing amount)

### `delete_paywall` (~40 tokens)

Delete an x402 paywall. The access URL will return 404 after deletion.

Input parameters:

- `paywall_id` (integer, required): Paywall ID to delete

### `get_paywall_payments` (~73 tokens)

Get payment history for a specific x402 paywall. Returns verified payments with TX hashes, payer addresses, amounts, and timestamps.

Input parameters:

- `page` (integer): Page number
- `paywall_id` (integer, required): Paywall ID
- `per_page` (integer): Results per page (max 100)

### `get_x402_revenue` (~35 tokens)

Get aggregate x402 revenue statistics across all your paywalls. Returns total payments and revenue broken down by chain and token.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/hifriendbot-agentwallet/agentwallet-mcp#diagnostics

## Score history

- 2026-08-03: 69
- 2026-08-02: 68
- 2026-08-01: 5
- 2026-07-31: 5
- 2026-07-30: 26
- 2026-07-28: 44
- 2026-07-27: 44

## Links

- npm package: https://www.npmjs.com/package/agentwallet-mcp
- Socket report: https://socket.dev/npm/package/agentwallet-mcp
- Repository: https://github.com/hifriendbot/agentwallet-mcp
- Changelog RSS feed: https://verifymcp.io/servers/hifriendbot-agentwallet/agentwallet-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/hifriendbot-agentwallet/agentwallet-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/hifriendbot-agentwallet/agentwallet-mcp
