Skip to main content
Glama

npm version npm downloads License: MIT GitHub stars

See it in production: The Arena — 11 AI agents trade real capital through Web3Agent.

web3agent

MCP package: web3agent | npm: https://www.npmjs.com/package/web3agent | GitHub: https://github.com/Apegurus/web3agent | Contact: hello@apeguru.dev

Links: Website · GitHub · npm · Smithery · The Arena · X / @Web3AgentFi

Give your AI agent EVM execution and DeFi tooling: swaps, bridges, limit and trigger orders, exchange trading, market data, research, wallet management. 190+ MCP tools. One install.

Works out of the box with Claude Code, Cursor, Windsurf, OpenCode, and Codex. Self-custodial. By default, write operations go through a confirmation queue: nothing executes without your approval unless you explicitly disable confirmations.

EVM execution is a solved problem. Stop rebuilding it. Plug in and ship.


What you can do

Once installed, your AI agent can execute real DeFi operations in plain language:

  • "Swap 0.1 ETH for USDC on Base" — quoted, routed, confirmation-gated, executed

  • "Bridge 500 USDC from Arbitrum to Optimism" — cross-chain via LI.FI, 20+ chains

  • "Set a limit or trigger order to buy ETH at $2,800" — decentralized Spot orders via Orbs

  • "Cancel my open orders on Binance" — CCXT exchange access with per-method risk classification

  • "What's my USDC balance on Base?" — read-only EVM and ERC-20 balance checks

  • "Show me yield opportunities above 5% APY" — research tools, protocol analysis, due diligence

Common flows avoid ABI handling and transaction building. Generic contract reads and writes are available when you provide or register an ABI, or when explorer ABI lookup is available. The agent handles routing, transaction preparation, and the confirmation queue. You approve, it executes.


Related MCP server: bvcc-agent-mcp

Quickstart for agent power users

npx web3agent init

This detects Claude Code, Cursor, Windsurf, OpenCode, or Codex and configures the MCP server automatically. Restart your host, then ask:

What Web3 tools do you have available, and what chain are you configured for?

For any other MCP-capable host, configure a stdio server that runs:

npx web3agent

The generic MCP config shape is:

{
  "web3agent": {
    "type": "stdio",
    "command": "npx",
    "args": ["web3agent"]
  }
}

Writes are confirmation-gated by default, and wallet secrets are not exposed through MCP unless explicitly enabled.

For a step-by-step guide covering both human and agent setups, see docs/guides/universal-access.md.

Smithery local bundle

Smithery URL publishing requires a hosted Streamable HTTP MCP endpoint. Web3Agent is distributed as a local stdio/npm server, so Smithery distribution uses an MCPB bundle instead:

pnpm run mcpb:check
smithery mcp publish dist/web3agent.mcpb -n Apegurus/web3agent

The generated MCPB is a thin local bundle that launches the published npm package with npm exec --package web3agent@0.6.2.

Why Web3Agent

  • One-line install. npx web3agent init auto-configures Claude Code, Cursor, Windsurf, OpenCode, or Codex. No manual config edits for supported hosts.

  • Self-custodial. Keys stay in your environment, wallet secrets are kept out of agent-visible MCP flows by default, and every write goes through the confirmation queue unless you intentionally disable it.

  • Battle-tested infrastructure. Built on GOAT SDK, LI.FI, Orbs, Blockscout, Etherscan, DexScreener, and other production Web3 rails.

  • Live in production. Powers Orbzy and The Arena, where AI agents trade real capital through Web3Agent.

  • One MCP surface. Swaps, bridges, orders, market data, research, token resolution, wallet lifecycle, and agent-payment protocols are available through one server.

Who it is for

  • AI agent builders who need Web3 execution without rebuilding protocol integrations

  • DeFi teams adding MCP support to internal tools, research agents, or trading agents

  • Developers prototyping wallet-aware agents, swaps, bridges, and market workflows

  • MCP host users who want read-only chain data plus explicit-confirmation write flows

Copy-paste prompts

Use these after installation to get to value quickly:

List the supported chains and tell me which Web3 tools are safest to try first.
Resolve USDC, WETH, and DEGEN on Base. Show token addresses and decimals.
Quote swapping 0.01 ETH to USDC on Base, but do not execute anything.
Show yield opportunities above 5% APY and explain the main protocol risks.
Explain this wallet's recent activity on Base: 0x0000000000000000000000000000000000000000

Supported hosts

Host

Config location

Claude Code

~/.claude/mcp.json

Cursor

.cursor/mcp.json

Windsurf

~/.codeium/windsurf/mcp_config.json

OpenCode

.opencode/config.json

Codex

.codex/config.toml

OpenClaw

agent-mediated self-install via canonical guide


Supported chains

Basic EVM operations use viem's chain registry and can target any viem-supported EVM chain when RPC access is available.

Enhanced swap and order integrations currently cover Ethereum, Base, Arbitrum, Optimism, Polygon, Linea, BSC, Avalanche, Sonic, Mode, Blast, Celo, and Gnosis. Token resolution, explorer, LI.FI, and market/research tools have provider-specific coverage; LI.FI bridge quotes and execution support 20+ chains through LI.FI's own chain list.

Default: Base (8453). Override with the CHAIN_ID env var or pass chainId per call.


What's included

Capability

Provider

Notes

On-chain state

Native EVM tools

Balances, contract reads/writes, gas, ENS, multicall (27 tools)

Swaps

GOAT / Uniswap / Balancer

Same-chain, ERC-20/721

Aggregated swaps

Orbs Liquidity Hub

Optimal pricing via solver network

Cross-chain bridges

LI.FI

20+ chains

Lending

GOAT SDK / protocol integrations

Aave, Morpho, and major money-market surfaces where supported

Advanced orders

Orbs

Spot market, limit, TWAP, stop-loss, take-profit, delayed orders

Exchange trading

CCXT

Public/private access across 100+ exchanges (6 tools)

Block explorer

Blockscout + Etherscan

Address info, tx history, NFTs, contract ABIs, network stats (35 tools)

Market data

DefiLlama / CoinGecko / Binance

TVL, prices, DEX volume, stablecoin stats, sentiment (20 tools)

Research

DefiLlama / on-chain

Contract security, yield analysis, whale tracking, governance (13 tools)

Token resolution

Built-in registry + DexScreener

Symbol-to-address, long-tail assets

Wallet management

web3agent + Open Wallet Standard

CLI/MCP lifecycle, encrypted OWS vault when configured, legacy fallback

Confirmation queue

Built-in

Write operations require explicit approval by default

Agent protocols

aGDP / ACP / ERC-8183 / x402 / ERC-8004

Agent marketplace, cooperation, payments

Price data

CoinGecko

Requires COINGECKO_API_KEY

0x swaps

0x

Requires ZEROX_API_KEY


Starter templates

npx web3agent create

Scaffolds a ready-to-run project from one of three bundled templates:

  • Vercel AI SDK — chat agent with tool calling

  • Mastra — agent framework with web3agent tools

  • MCP-host — lightweight MCP client

Each starter uses the same web3agent lifecycle surfaces as MCP and CLI.


Examples

Root examples are included in the npm package:

# Safe import-only previews
node examples/swap.mjs
node examples/bridge.mjs

# Read-only live quote examples
node examples/swap.mjs --quote
node examples/bridge.mjs --quote

# Prepared external-wallet flows
WEB3AGENT_EXAMPLE_ACCOUNT=0x... node examples/swap.mjs --prepare
WEB3AGENT_EXAMPLE_ACCOUNT=0x... node examples/bridge.mjs --prepare

The examples default to small USDC-denominated flows and only prepare wallet actions when you pass --prepare.

Quickstart examples

Agent that prepares a swap on Base

import { prepareOperation, resolveCanonicalTokenSync } from "web3agent";

const chainId = 8453;
const usdc = resolveCanonicalTokenSync({ chainId, symbol: "USDC" });
const weth = resolveCanonicalTokenSync({ chainId, symbol: "WETH" });

if (!usdc || !weth) throw new Error("Missing canonical token");

const intent = await prepareOperation({
  integration: "orbs",
  kind: "swap",
  account: "0xYourWallet",
  chainId,
  fromToken: usdc.address,
  toToken: weth.address,
  fromAmount: "10000000",
  slippagePct: 0.5,
});

console.log(intent.nextActions);

Agent that prepares a bridge from Ethereum to Arbitrum

import { prepareOperation, resolveCanonicalTokenSync } from "web3agent";

const fromChainId = 1;
const toChainId = 42161;
const from = resolveCanonicalTokenSync({ chainId: fromChainId, symbol: "USDC" });
const to = resolveCanonicalTokenSync({ chainId: toChainId, symbol: "USDC" });

if (!from || !to) throw new Error("Missing canonical token");

const bridge = await prepareOperation({
  integration: "lifi",
  kind: "bridge",
  account: "0xYourWallet",
  fromChainId,
  toChainId,
  fromToken: from.address,
  toToken: to.address,
  fromAmount: "1000000",
});

console.log(bridge.nextActions);

Agent that monitors a wallet

import { getAddressInfo, getTransactionHistory, listSupportedChains } from "web3agent";

const address = "0x0000000000000000000000000000000000000000";
const chainId = 8453;

const [chains, info, history] = await Promise.all([
  listSupportedChains(),
  getAddressInfo({ address, chainId }),
  getTransactionHistory({ address, chainId, pageSize: 5 }),
]);

console.log({
  supportedChains: chains.chains.length,
  wallet: info,
  recentTransactions: history.transactions,
});

For crypto teams

Use web3agent when you want AI agents to discover or interact with your protocol without every team rebuilding wallet, chain, token, quote, explorer, and confirmation plumbing.

Integration surfaces:

  • MCP tools for Claude Code, Cursor, Windsurf, OpenCode, Codex, and other MCP hosts

  • Programmatic SDK from web3agent for app-owned agents and browser-wallet flows

  • Prepared operations for protocols that need users or apps to sign externally

  • Confirmation-gated writes so execution never bypasses an explicit approval path by default

Good first integration targets:

  • token, market, and position reads

  • quote and simulation tools

  • prepared wallet actions for browser/app signing

  • protocol-specific research or risk tools

For protocol support or integration questions, open an issue at https://github.com/Apegurus/web3agent/issues or contact hello@apeguru.dev.


Usage

# Initialize for your host (run once)
npx web3agent init

# Start the MCP server
npx web3agent

# CLI fallback (for non-MCP hosts or scripting)
npx web3agent tools list --json
npx web3agent tools call resolve_token --input '{"symbol":"USDC","chainId":8453}' --json
npx web3agent doctor --json

# Local-only wallet secret flows (requires OWS_PASSPHRASE >= 12 chars and an interactive TTY)
OWS_PASSPHRASE='...' npx web3agent wallet generate
OWS_PASSPHRASE='...' npx web3agent wallet generate --mnemonic
OWS_PASSPHRASE='...' npx web3agent wallet activate --from-file ./secret.txt --type private-key

# Options
npx web3agent --help
npx web3agent --version

Wallet secret MCP tools are disabled by default so private keys and mnemonics do not enter an AI agent's inference context. Use the local web3agent wallet ... commands above for safe generation/import. If you explicitly accept the risk of agent-visible secrets, set WEB3AGENT_ALLOW_AGENT_VISIBLE_SECRETS=1 to re-enable the legacy MCP behavior.

wallet_deactivate only deactivates the current runtime session and returns to read-only ephemeral mode. Use confirmation-gated wallet_delete when you intentionally want to permanently remove persisted wallet material.

Wallet security defaults

By default, web3agent keeps wallet secrets out of MCP tool responses and agent-visible inputs. The local web3agent wallet ... commands are the recommended way to generate or import private keys and mnemonics because they require an interactive TTY and refuse JSON secret output. Set WEB3AGENT_ALLOW_AGENT_VISIBLE_SECRETS=1 only if you explicitly accept that private keys or mnemonics can be sent through the MCP host and visible to the agent/inference provider.

For persisted server-side wallets, setting OWS_PASSPHRASE is not mandatory, but strongly recommended. When it is set on macOS/Linux and OWS is available, web3agent uses the Open Wallet Standard encrypted vault instead of the legacy filesystem-protected wallet store. The OWS spec minimum is 12 characters; web3agent warns on weak runtime passphrases and local wallet generation/import rejects shorter values. Use a 16+ character mixed passphrase in production. Configure it in the process that runs web3agent, whether that is npx web3agent as an MCP server or an app/service using createRuntime({ env: { OWS_PASSPHRASE: "..." } }).

If OWS_PASSPHRASE is missing, empty, OWS is unavailable, the platform is Windows, or OWS_FORCE_LEGACY=1 is set, web3agent falls back to legacy wallet storage protected by file permissions only. Migrating a legacy wallet.json leaves a plaintext wallet.json.migrated rollback backup; delete it after verifying OWS access. For multi-agent services, run separate wallet-using runtimes in separate processes until per-runtime wallet isolation is supported.


Programmatic usage

Root API

Use the package root for stable, typed EVM capabilities from another app or agent layer.

import {
  getChain,
  listChainTokens,
  resolveCanonicalTokenSync,
  resolveToken,
} from "web3agent";

const chain = getChain(8453);
const usdc = resolveCanonicalTokenSync({ symbol: "USDC", chainId: 8453 });
const tokens = listChainTokens({ chainId: 8453 });
const discovered = await resolveToken({ symbol: "DEGEN", chainId: 8453 });

console.log(
  chain?.name,
  usdc?.address,
  discovered.address,
  tokens.tokens.length,
);

Use resolveCanonicalToken() for well-known registry tokens and native-token aliases. Use resolveToken() when you also want DexScreener discovery fallback for long-tail assets.

Browser wallet flows

Use the root API when your app owns the signer (e.g. a browser wallet via wagmi or AppKit).

import {
  prepareOperation,
  resumeOperation,
  simulateTransaction,
} from "web3agent";
  1. prepareOperation(...) returns the next wallet actions plus resumeState

  2. Your app executes those actions with the browser wallet

  3. resumeOperation(...) continues until the operation completes

Transaction actions are only considered complete once you return a confirmed result:

{ type: "transaction", txHash: "0x...", status: "confirmed" }

resumeOperation() independently verifies the receipt before advancing.

Architecture notes: docs/architecture/browser-wallet-operations.md

Runtime API

Use web3agent/runtime when you need tool discovery, generic invocation, or upstream passthrough tools.

import { createRuntime } from "web3agent/runtime";

const runtime = await createRuntime();

try {
  console.log(runtime.getHealth());
  console.log(
    runtime
      .listTools()
      .slice(0, 5)
      .map((tool) => tool.name),
  );
  const result = await runtime.invokeTool("list_supported_chains");
  console.log(result.structuredContent);
} finally {
  await runtime.shutdown();
}

Environment variables

See WEB3_CONTEXT.md for the full environment variable reference.

For authenticated exchange access via CCXT tools, set CCXT_CONFIG_PATH to a JSON file containing named accounts and exchange credentials.


Known limitations

  • Blockscout explorer tools work on 8 chains only (Ethereum, Polygon, Arbitrum, Optimism, Base, Gnosis, Scroll, zkSync Era)

  • Yield tooling is read-only research; protocol-specific execution beyond first-class tools uses ABI-backed EVM calls

  • 0x and CoinGecko plugins require their respective API keys

  • MCP hosts cannot open a browser wallet prompt directly — MCP can prepare, simulate, and submit signed payloads, but signing requires your app to handle the wallet interaction


Requirements

  • Node.js 22+

  • pnpm (for development)


License

MIT

Available Tools

195 tools
acp_claim_refundA
Destructive

Claim remaining budget for a Virtuals ACPRouter job using claimBudget.

Inputs: jobId (required), chainId.

acp_complete_jobA
Destructive

Complete a job on the Virtuals ACPRouter by auto-resolving the pending memo and signing approval.

Inputs: jobId (required), reason, chainId.

acp_create_jobA
Destructive

Create a job on the Virtuals ACPRouter (Base). Specify provider, evaluator, description, and expiry.

Inputs: provider (required), evaluator (required), description (required), expiryDuration (required), +3 more.

acp_fund_jobA
Destructive

Fund a Virtuals ACPRouter job. Automatically checks allowance, approves ERC-20 if needed, then creates payable memo escrow.

Inputs: jobId (required), amount (required), chainId, expiredAt.

acp_get_jobA
Read-only

Get job details and full memo history from the Virtuals ACPRouter. Shows phase, participants, budget, and all memos with their status.

Inputs: jobId (required), chainId, memoLimit.

acp_reject_jobB
Destructive

Reject a job on the Virtuals ACPRouter by auto-resolving the pending memo and signing rejection.

Inputs: jobId (required), reason, chainId.

acp_set_budgetB
Destructive

Set a job budget on the Virtuals ACPRouter using setBudgetWithPaymentToken and optional token override.

Inputs: jobId (required), amount (required), chainId, paymentToken.

acp_submit_jobA
Destructive

Submit a deliverable memo on the Virtuals ACPRouter and advance the job to evaluation phase.

Inputs: jobId (required), deliverable (required), chainId.

agdp_create_offeringB
Read-only

Create a new offering on the aGDP marketplace. NOTE: requires a LITE_AGENT_API_KEY from Virtuals — visit agdp.io/join to register.

Inputs: name (required), price (required), description (required), category.

agdp_get_my_jobsA
Read-only

List your active or completed jobs from the aGDP marketplace. Requires an active wallet.

Inputs: status.

agdp_get_offeringA
Read-only

Get detailed information about a specific agent offering by ID.

Inputs: offeringId (required).

agdp_get_offeringsA
Read-only

Search the aGDP marketplace for AI agent offerings. Returns agent profiles with capabilities, metrics, and available services.

Inputs: topK, query.

agdp_hire_agentA
Destructive

Hire an AI agent from the aGDP marketplace via API (write operation, requires wallet and confirmation). For on-chain job creation, use acp_create_job separately.

Inputs: offeringId (required), serviceRequirements.

approveC

Approve an amount of an ERC20 token to an address

Inputs: amount (required), spender (required), tokenAddress (required), chainId.

approve_token_evmC

Approve an amount (specified in base units) of an ERC20 token for a spender

Inputs: amount (required), spender (required), tokenAddress (required), chainId.

ccxt_describe_exchangeA
Read-onlyIdempotent

Inspect a CCXT exchange or configured account and return supported methods, market types, timeframes, symbols, and invocation modes so callers can route requests safely.

Inputs: account, exchange, loadMarkets, reloadMarkets.

ccxt_list_accountsA
Read-onlyIdempotent

List configured CCXT accounts from CCXT_CONFIG_PATH with redacted metadata only. Secrets are never returned.

Inputs: no named parameters.

ccxt_list_exchangesA
Read-onlyIdempotent

List CCXT-supported exchanges and summarize which ones have configured authenticated accounts, public market access, and available market-type metadata.

Inputs: hasAuth, marketType, configuredOnly.

ccxt_private_readA
Read-onlyIdempotent

Invoke an authenticated read-only CCXT method using a configured named account. This covers balances, positions, orders, fills, and private implicit GET-style endpoints.

Inputs: method (required), account (required), args, params, +2 more.

ccxt_private_writeA
Destructive

Invoke an authenticated mutating CCXT method using a configured named account. This covers order placement, cancellation, leverage, transfers, withdrawals, and private implicit write endpoints.

Inputs: method (required), account (required), args, params, +2 more.

ccxt_public_callA
Read-onlyIdempotent

Invoke a public CCXT unified or implicit method on a selected exchange. Use ccxt_describe_exchange first for capability discovery when calling niche methods.

Inputs: method (required), exchange (required), args, params, +4 more.

convert_from_base_unitB

Convert an amount of an ERC20 token from its base unit to its decimal unit

Inputs: amount (required), decimals (required), chainId.

convert_from_base_unitsA

Convert a token amount from its smallest unit (e.g., wei) to human-readable units.

Inputs: amount (required), chainId, tokenAddress.

convert_to_base_unitC

Convert an amount of an ERC20 token to its base unit

Inputs: amount (required), decimals (required), chainId.

convert_to_base_unitsB

Convert a token amount from human-readable units to its smallest unit (e.g., wei).

Inputs: amount (required), chainId, tokenAddress.

dexscreener_get_pairs_by_chain_and_pairC

Fetch pairs by chainId and pairId from Dexscreener

Inputs: pairId (required), chainId (required).

dexscreener_get_token_pairs_by_token_addressB

Get all DEX pairs for given token addresses (up to 30) from Dexscreener

Inputs: tokenAddresses (required), chainId.

dexscreener_search_pairsB

Search for DEX pairs matching a query string on Dexscreener

Inputs: query (required), chainId.

erc8004_get_agentA
Read-only

Get ERC-8004 agent identity. Requires either agentId (token ID) or walletAddress — provide at least one.

Inputs: agentId, chainId, walletAddress.

erc8004_get_feedbackA
Read-only

Get aggregate ERC-8004 reputation summary for an agent with optional tag filters.

Inputs: agentId (required), tag1, tag2, chainId.

erc8004_register_agentA
Destructive

Register an agent on the ERC-8004 Identity Registry (write operation, wallet + confirmation required).

Inputs: name (required), description (required), chainId, agentURI, +2 more.

erc8004_submit_feedbackA
Destructive

Submit reputation feedback for an ERC-8004 agent (write operation, wallet + confirmation required).

Inputs: value (required), agentId (required), tag1, tag2, +2 more.

erc8004_update_agentA
Destructive

Update ERC-8004 agent metadata URI (write operation, wallet + confirmation required).

Inputs: agentId (required), name, chainId, agentURI, +3 more.

erc8183_claim_refundA
Destructive

Claim refund from an expired/rejected ERC-8183 job.

Inputs: jobId (required), chainId.

erc8183_complete_jobA
Destructive

Complete an ERC-8183 job and release escrow.

Inputs: jobId (required), reason, chainId.

erc8183_create_jobB
Destructive

Create an ERC-8183 job.

Inputs: provider (required), evaluator (required), description (required), expiryDuration (required), +2 more.

erc8183_fund_jobA
Destructive

Fund ERC-8183 job escrow. Performs allowance check + approve if needed, then funds in one confirmation flow.

Inputs: jobId (required), expectedBudget (required), chainId.

erc8183_get_jobA
Read-only

Read ERC-8183 job details by ID.

Inputs: jobId (required), chainId.

erc8183_reject_jobC
Destructive

Reject an ERC-8183 job.

Inputs: jobId (required), reason, chainId.

erc8183_set_budgetB
Destructive

Set ERC-8183 job budget in payment token smallest units.

Inputs: jobId (required), amount (required), chainId.

erc8183_submit_jobC
Destructive

Submit job deliverable hash for an ERC-8183 job.

Inputs: jobId (required), deliverable (required), chainId.

evm_approve_token_spendingB
Destructive

Approve ERC-20 spender allowance using raw token units.

Inputs: amount (required), tokenAddress (required), spenderAddress (required), chainId.

evm_get_allowanceA
Read-only

Get ERC-20 allowance from owner to spender for a token contract.

Inputs: tokenAddress (required), spenderAddress (required), chainId, ownerAddress.

evm_get_balanceA
Read-only

Get NATIVE token balance (ETH, MATIC, BNB, etc.) for an address or ENS name. This does NOT return ERC-20 token balances — use evm_get_token_balance for that.

Inputs: address (required), chainId.

evm_get_blockB
Read-only

Get block details by block number string or block hash.

Inputs: blockIdentifier (required), chainId.

evm_get_chain_infoA
Read-only

Get basic chain status including latest block number for a chain ID.

Inputs: chainId.

evm_get_contract_abiB
Read-only

Fetch a contract ABI from Etherscan for a specific chain.

Inputs: contractAddress (required), chainId.

evm_get_erc1155_balanceA
Read-only

Get ERC-1155 token balance for an owner and token ID.

Inputs: tokenId (required), ownerAddress (required), tokenAddress (required), chainId.

evm_get_gas_priceA
Read-only

Get current base gas price and priority fee estimates for a chain.

Inputs: chainId.

evm_get_latest_blockB
Read-only

Get the latest block details for a chain.

Inputs: chainId.

evm_get_nft_infoA
Read-only

Get ERC-721 NFT details including collection metadata, owner, and tokenURI.

Inputs: tokenId (required), tokenAddress (required), chainId.

evm_get_supported_networksA
Read-only

List supported EVM networks available for EVM tool operations.

Inputs: no named parameters.

evm_get_token_balanceA
Read-only

Get ERC-20 token balance (USDC, WETH, DAI, etc.) for an owner address. Requires the token contract address. For native token balance (ETH, MATIC), use evm_get_balance instead.

Inputs: ownerAddress (required), tokenAddress (required), chainId.

evm_get_transactionB
Read-only

Get transaction details for a transaction hash.

Inputs: txHash (required), chainId.

evm_get_transaction_receiptB
Read-only

Get the transaction receipt (status, logs, gas usage) for a hash.

Inputs: txHash (required), chainId.

evm_get_wallet_addressA
Read-only

Get the currently active wallet address, mode, and chain context.

Inputs: no named parameters.

evm_list_registered_abisA
Read-only

List all ABI labels registered via evm_register_abi.

Inputs: no named parameters.

evm_lookup_ens_addressA
Read-only

Perform reverse ENS lookup for an address.

Inputs: address (required), chainId.

evm_multicallA
Read-only

Batch multiple contract read calls into one multicall RPC request.

Inputs: calls (required), chainId, allowFailure.

evm_read_contractA
Read-only

Read contract state by function name. Provide abiLabel (from evm_register_abi), abiJson, or let the tool auto-resolve from Etherscan.

Inputs: functionName (required), contractAddress (required), args, abiJson, +2 more.

evm_register_abiA
Read-only

Register a contract ABI under a label for reuse. Once registered, pass abiLabel to evm_read_contract, evm_write_contract, or evm_multicall instead of repeating the full ABI JSON on every call.

Inputs: label (required), abiJson (required).

evm_resolve_ens_nameB
Read-only

Resolve an ENS name to an EVM address.

Inputs: ensName (required), chainId.

evm_sign_messageA
Destructive

Sign an arbitrary UTF-8 message with the active wallet.

Inputs: message (required).

evm_sign_typed_dataA
Destructive

Sign EIP-712 typed data payload with the active wallet.

Inputs: typesJson (required), domainJson (required), messageJson (required), primaryType (required).

evm_transfer_erc20A
Destructive

Transfer ERC-20 tokens. Amount is in the token's smallest unit (e.g. for USDC with 6 decimals, '1000000' = 1 USDC). Use evm_get_token_balance to check decimals first.

Inputs: to (required), amount (required), tokenAddress (required), chainId.

evm_transfer_nativeA
Destructive

Send native tokens (ETH, MATIC, etc.) to an address or ENS name.

Inputs: to (required), amount (required), chainId.

evm_wait_for_transactionA
Read-only

Wait for transaction confirmations and return the confirmed receipt.

Inputs: txHash (required), chainId, confirmations.

evm_write_contractA
Destructive

Execute a state-changing contract function. Provide abiLabel (from evm_register_abi), abiJson, or let the tool auto-resolve. Confirmation-gated.

Inputs: functionName (required), contractAddress (required), args, value, +3 more.

explorer_get_address_funded_byA
Read-only

Get the earliest transaction for an address — useful for identifying initial funding or activity.

Inputs: address (required), chainId (required).

explorer_get_address_infoA
Read-only

Get address overview including balances, ENS name, contract metadata, and public tags.

Inputs: address (required), chainId (required).

explorer_get_blockA
Read-only

Get block information including gas consumption, rewards, and optionally full transaction list.

Inputs: chainId (required), blockNumber (required).

explorer_get_block_by_timestampA
Read-only

Find the block number closest to a given Unix timestamp (before or after).

Inputs: chainId (required), closest (required), timestamp (required).

explorer_get_block_rewardsB
Read-only

Get block reward details including miner reward, uncle inclusion reward, and uncle blocks.

Inputs: chainId (required), blockNumber (required).

explorer_get_blocks_by_validatorA
Read-only

Get blocks mined/validated by a specific address.

Inputs: address (required), chainId (required), page, pageSize.

explorer_get_contract_abiA
Read-only

Fetch the ABI for a verified smart contract. Works only for source-verified contracts.

Inputs: chainId (required), contractAddress (required).

explorer_get_contract_codeA
Read-only

Get the deployed bytecode of a contract at a given address.

Inputs: chainId (required), contractAddress (required).

explorer_get_contract_creatorA
Read-only

Find who deployed a contract and the creation transaction hash.

Inputs: chainId (required), contractAddress (required).

explorer_get_contract_sourceB
Read-only

Get verified source code for a smart contract.

Inputs: chainId (required), contractAddress (required).

explorer_get_daily_block_rewardsB
Read-only

Get daily block rewards for a date range.

Inputs: chainId (required), endDate (required), startDate (required), sort.

explorer_get_daily_gas_usedA
Read-only

Get daily average gas used for a date range.

Inputs: chainId (required), endDate (required), startDate (required), sort.

explorer_get_daily_new_addressesA
Read-only

Get daily new address count for a date range.

Inputs: chainId (required), endDate (required), startDate (required), sort.

explorer_get_daily_tx_countB
Read-only

Get daily transaction count for a date range.

Inputs: chainId (required), endDate (required), startDate (required), sort.

explorer_get_event_logsA
Read-only

Get event logs emitted by a specific contract address, optionally filtered by topics and block range.

Inputs: address (required), chainId (required), topic0, topic1, +4 more.

explorer_get_event_logs_by_topicsA
Read-only

Get event logs across all contracts filtered by topics and block range (no address required).

Inputs: topic0 (required), chainId (required), topic1, topic2, +3 more.

explorer_get_historical_balanceA
Read-only

Get the native token balance of an address at a specific historical block number.

Inputs: address (required), chainId (required), blockNumber (required).

explorer_get_historical_priceA
Read-only

Get historical daily native token prices for a date range.

Inputs: chainId (required), endDate (required), startDate (required), sort.

explorer_get_historical_token_balanceA
Read-only

Get the ERC-20 token balance of an address at a specific historical block number.

Inputs: address (required), chainId (required), blockNumber (required), contractAddress (required).

explorer_get_internal_txsA
Read-only

Get internal (trace) transactions for an address, including contract-to-contract calls.

Inputs: address (required), chainId (required), page, endBlock, +2 more.

explorer_get_native_priceA
Read-only

Get the current native token price in USD and BTC.

Inputs: chainId (required).

explorer_get_native_supplyA
Read-only

Get the native token supply including staking, burned fees, and withdrawal totals.

Inputs: chainId (required).

explorer_get_network_utilizationA
Read-only

Get daily network utilization percentage for a date range.

Inputs: chainId (required), endDate (required), startDate (required), sort.

explorer_get_nft_inventoryB
Read-only

List NFT collections and token IDs owned by an address.

Inputs: address (required), chainId (required), page, pageSize.

explorer_get_nft_transfersA
Read-only

Get NFT transfer history (ERC-721 and ERC-1155) for an address, merged and sorted by time.

Inputs: address (required), chainId (required), page, endBlock, +3 more.

explorer_get_token_holdersB
Read-only

Get a paginated list of token holders for a given token contract.

Inputs: chainId (required), contractAddress (required), page, pageSize.

explorer_get_token_infoA
Read-only

Get token metadata including name, symbol, decimals, total supply, and social profiles.

Inputs: chainId (required), contractAddress (required).

explorer_get_tokens_by_addressA
Read-only

List all ERC-20 token holdings with balances and market data for an address.

Inputs: address (required), chainId (required), page, pageSize.

explorer_get_token_supplyA
Read-only

Get the total supply of a token, optionally at a specific historical block number.

Inputs: chainId (required), contractAddress (required), blockNumber.

explorer_get_token_transfersA
Read-only

Get ERC-20 token transfer history for an address, optionally filtered by token contract.

Inputs: address (required), chainId (required), page, endBlock, +3 more.

explorer_get_top_token_holdersA
Read-only

Get the top N token holders by balance for a given token contract.

Inputs: chainId (required), contractAddress (required), count.

explorer_get_tx_detailsA
Read-only

Get full transaction details including decoded input parameters and token movements.

Inputs: txHash (required), chainId (required).

explorer_get_tx_execution_statusA
Read-only

Check the execution status of a transaction (whether it errored during execution).

Inputs: txHash (required), chainId (required).

explorer_get_tx_historyA
Read-only

Get transaction history for an address, optionally filtered by block range and method.

Inputs: address (required), chainId (required), page, endBlock, +2 more.

explorer_get_tx_receiptB
Read-only

Get transaction receipt with execution status and gas usage.

Inputs: txHash (required), chainId (required).

get_addressC

Get the address of the wallet

Inputs: chainId.

get_address_from_ensC

Get the address from an ENS (Ethereum Name Service, e.g. goat.eth) name

Inputs: ensName (required), chainId.

get_balanceA

Get the balance of the wallet for native currency or a specific ERC20 token.

Inputs: address (required), chainId, tokenAddress.

get_chainC

Get the chain of the wallet

Inputs: chainId.

get_token_allowanceB

Get the allowance of an ERC20 token

Inputs: owner (required), spender (required), tokenAddress (required), chainId.

get_token_allowance_evmB

Get the allowance of an ERC20 token for a spender (returns amount in base units)

Inputs: owner (required), spender (required), tokenAddress (required), chainId.

get_token_balanceB

Get the balance of an ERC20 token in base units. Convert to decimal units before returning.

Inputs: wallet (required), tokenAddress (required), chainId.

get_token_info_by_symbolA

Get the ERC20 token info by its symbol, including the contract address, decimals, and name

Inputs: symbol (required), chainId.

get_token_info_by_tickerB

Get information about a configured token (like contract address and decimals) by its ticker symbol.

Inputs: ticker (required), chainId.

get_token_total_supplyC

Get the total supply of an ERC20 token

Inputs: tokenAddress (required), chainId.

lifi_execute_bridgeA
Destructive

Execute a cross-chain bridge (write operation, requires wallet and confirmation). Requires token addresses — use resolve_token first to get addresses.

Inputs: toToken (required), fromToken (required), toChainId (required), fromAmount (required), +1 more.

lifi_get_chainsA
Read-only

Get list of chains supported by LI.FI for cross-chain bridging

Inputs: no named parameters.

lifi_get_quoteA
Read-only

Get a cross-chain bridge/swap quote from LI.FI. Supports 20+ EVM chains including Ethereum, BSC, Polygon, Arbitrum, Optimism, Base, Linea, Avalanche, zkSync, Scroll, Gnosis, and more. Requires token addresses — use resolve_token first to get addresses.

Inputs: toToken (required), fromToken (required), toChainId (required), fromAmount (required), +1 more.

lifi_prepare_bridge_intentA
Read-only

Prepare a cross-chain bridge route for an external wallet. Returns raw transaction steps without executing them.

Inputs: account (required), toToken (required), fromToken (required), toChainId (required), +3 more.

list_chain_tokensA
Read-only

List all well-known tokens available in the built-in registry for a specific chain. Returns symbol, address, decimals, and name for each token.

Inputs: chainId (required).

list_supported_chainsA
Read-only

List all supported EVM chains with their chain IDs, names, and native currencies.

Inputs: no named parameters.

market_get_categoriesA
Read-onlyIdempotent

Fetch a list of cryptocurrency categories from CoinGecko with their aggregate market data. Returns category name, total market cap, 24h market cap change, and top-3 coins for each category.

Inputs: limit, order.

market_get_cex_fund_flowsA
Read-onlyIdempotent

Fetch net fund flow data for centralized exchanges from DefiLlama's CEX tracker. Returns inflow and outflow amounts for each exchange, useful for monitoring capital movements on CEXes.

Inputs: limit.

market_get_chain_tvlA
Read-onlyIdempotent

Retrieve the historical TVL time series for a specific blockchain network from DefiLlama. Returns a list of date/TVL pairs showing how the chain's total locked value has evolved over time.

Inputs: chain (required).

market_get_dex_volumeA
Read-onlyIdempotent

Fetch 24-hour trading volume data for decentralized exchanges from DefiLlama. Returns a ranked list of DEXes with their daily and total volume figures.

Inputs: chain, protocol.

market_get_exchange_rankingsA
Read-onlyIdempotent

Retrieve a ranked list of centralized exchanges from DefiLlama by their assets under management. Returns exchange name, total assets, reported vs clean volume metrics, and number of coins/pairs tracked.

Inputs: limit.

market_get_funding_ratesA
Read-onlyIdempotent

Deprecated: prefer ccxt_public_call and ccxt_describe_exchange for new integrations. Fetch the current perpetual futures funding rates for one or all symbols from Binance. Returns the funding rate, funding time, and mark price for each perpetual contract, which is useful for tracking carry costs in leveraged positions.

Inputs: symbol (required), limit.

market_get_gainers_losersA
Read-onlyIdempotent

Retrieve the top gaining and losing tokens over a specified time period from DefiLlama. Returns separate lists of gainers and losers, each with token symbol and price change percentage.

Inputs: limit, period.

market_get_global_statsA
Read-onlyIdempotent

Fetch aggregate global DeFi market statistics from DefiLlama. Returns total DeFi TVL across all chains and protocols, providing a macro view of the DeFi ecosystem.

Inputs: no named parameters.

market_get_klinesA
Read-onlyIdempotent

Deprecated: prefer ccxt_public_call and ccxt_describe_exchange for new integrations. Fetch candlestick (OHLCV) chart data for a trading pair from Binance at a specified interval. Returns open, high, low, close price, volume, and timestamp for each candle in the requested range.

Inputs: symbol (required), interval (required), limit.

market_get_order_bookA
Read-onlyIdempotent

Deprecated: prefer ccxt_public_call and ccxt_describe_exchange for new integrations. Fetch the current order book depth for a trading pair from Binance. Returns bid and ask price levels with their quantities up to the requested depth.

Inputs: symbol (required), limit.

market_get_protocol_tvlA
Read-onlyIdempotent

Fetch the Total Value Locked (TVL) for a specific DeFi protocol by its DefiLlama slug. Returns current TVL in USD, percentage changes over 1d/7d/30d periods, per-chain TVL breakdown, protocol category, and website URL.

Inputs: protocol (required).

market_get_sentimentA
Read-onlyIdempotent

Fetch the Crypto Fear & Greed Index from alternative.me for the specified number of recent days. Returns the current index value with classification (e.g. Fear, Greed) plus historical daily readings.

Inputs: days.

market_get_stablecoin_statsA
Read-onlyIdempotent

Retrieve stablecoin market statistics from DefiLlama, including circulating supply and peg data. Returns a list of stablecoins with their name, symbol, total circulating supply, peg type, and peg mechanism.

Inputs: chain.

market_get_tickerA
Read-onlyIdempotent

Deprecated: prefer ccxt_public_call and ccxt_describe_exchange for new integrations. Fetch real-time 24-hour ticker statistics for a trading pair from Binance. Returns last price, price change, high/low, volume, bid/ask, and quote volume for the specified symbol.

Inputs: symbol (required).

market_get_token_historyA
Read-onlyIdempotent

Fetch historical price data for a token from CoinGecko by its coin ID. Returns OHLC candlestick data and market cap/volume history for the specified number of days.

Inputs: token (required), period.

market_get_token_priceA
Read-onlyIdempotent

Fetch current USD prices for one or more tokens using DefiLlama's price oracle. Accepts token identifiers in the format 'chain:address' (e.g. 'ethereum:0x...') and returns price, symbol, decimals, confidence score, and last-updated timestamp for each token.

Inputs: tokens (required), searchWidth.

market_get_top_protocolsA
Read-onlyIdempotent

Retrieve a ranked list of the top DeFi protocols by TVL from DefiLlama. Returns protocol name, current TVL, 1-day TVL change, first listed chain, category, and DefiLlama slug for each entry in the list.

Inputs: chain, limit, category.

market_get_top_tokensA
Read-onlyIdempotent

Retrieve the top cryptocurrencies by market capitalization from CoinGecko. Returns name, symbol, current price, market cap, 24h price change percentage, and trading volume for each token.

Inputs: limit, order, category.

market_search_tokenA
Read-onlyIdempotent

Search for cryptocurrencies, exchanges, and NFTs on CoinGecko by keyword. Returns matching coins with their CoinGecko ID, symbol, name, and market cap rank.

Inputs: query (required).

operation_prepareA
Read-only

Prepare an external-wallet operation for Orbs, LI.FI, or GOAT. Returns the next actions plus opaque resume state.

operation_resumeA
Destructive

Resume a previously prepared external-wallet operation after signatures or transactions complete externally.

Inputs: resumeState (required), actionResults.

orbs_cancel_orderA
Destructive

Cancel a Spot order onchain by calling RePermit.cancel with the order digest. Write, confirmation-gated.

Inputs: digest (required), chainId.

orbs_get_quoteA
Read-only

Get a quote from Orbs Liquidity Hub for same-chain aggregated swap. Requires token addresses — use resolve_token first to get addresses.

Inputs: toToken (required), fromToken (required), fromAmount (required), chainId, +1 more.

orbs_get_required_approvalsA
Read-only

Check whether wrapping native assets or approving Permit2 is required before signing an Orbs swap intent.

Inputs: account (required), fromToken (required), fromAmount (required), mode, +2 more.

orbs_place_limitA
Destructive

Place a limit order via Spot protocol. Executes only when output meets minimum amount. Write, confirmation-gated.

Inputs: toToken (required), fromToken (required), fromAmount (required), toMinAmount (required), +4 more.

orbs_place_orderA
Destructive

Place a gasless order via Spot protocol. Supports market, limit, TWAP, stop-loss, take-profit, and delayed orders. Order type determined by parameters: limit (outputLimit > 0), chunked/TWAP (fromMaxAmount > fromAmount + epoch), stop-loss (outputTriggerLower), take-profit (outputTriggerUpper), delayed (future start). Write, confirmation-gated.

Inputs: toToken (required), fromToken (required), fromAmount (required), epoch, +9 more.

orbs_place_twapA
Destructive

Place a TWAP (time-weighted average price) order via Spot protocol. Splits fromAmount into equal chunks executed at regular intervals. Write, confirmation-gated.

Inputs: chunks (required), toToken (required), fillDelay (required), fromToken (required), +4 more.

orbs_prepare_limit_intentA
Read-only

Prepare a limit order for external wallet signing. Returns EIP-712 typed data, approval calldata, and metadata.

Inputs: account (required), toToken (required), fromToken (required), fromAmount (required), +5 more.

orbs_prepare_order_intentA
Read-only

Prepare a Spot order for external wallet signing. Returns EIP-712 typed data, approval calldata, submit URL, and order metadata. Supports all order types.

Inputs: account (required), toToken (required), fromToken (required), fromAmount (required), +10 more.

orbs_prepare_swap_intentA
Read-only

Prepare a same-chain Orbs swap intent for external wallet signing. Returns required approvals, full quote, and EIP-712 typed data.

Inputs: account (required), toToken (required), fromToken (required), fromAmount (required), +2 more.

orbs_prepare_twap_intentA
Read-only

Prepare a TWAP order for external wallet signing. Returns EIP-712 typed data, approval calldata, and metadata.

Inputs: chunks (required), account (required), toToken (required), fillDelay (required), +5 more.

orbs_query_ordersA
Read-only

Query Spot orders by swapper address or order hash. Falls back to SDK query if Spot API unavailable.

Inputs: hash, chainId, swapper.

orbs_submit_signed_orderA
Destructive

Submit an externally signed Spot order using the submit URL and order from orbs_prepare_order_intent.

Inputs: order (required), signature (required), submitUrl (required).

orbs_submit_signed_swapA
Destructive

Submit an externally signed Orbs Liquidity Hub swap using the quote returned by orbs_prepare_swap_intent.

Inputs: quote (required), signature (required), chainId.

orbs_swapA
Destructive

Execute a same-chain swap via Orbs Liquidity Hub (write, confirmation-gated). Supported chains: 137 (Polygon), 56 (BSC), 8453 (Base), 59144 (Linea), 81457 (Blast), 42161 (Arbitrum). Requires token addresses — use resolve_token first.

Inputs: toToken (required), fromToken (required), fromAmount (required), chainId, +1 more.

orbs_swap_statusA
Read-only

Check the status of a pending Orbs Liquidity Hub swap

Inputs: user (required), sessionId (required), chainId, maxAttempts.

policy_getA
Read-only

Get current treasury policy limits and spend totals. Shows per-transaction, hourly, and daily caps plus how much budget remains. Read-only — policy limits are set by the user, not the agent.

Inputs: includeRecentSpends.

research_airdropsA
Read-onlyIdempotent

Discover active and upcoming token airdrop opportunities tracked by DefiLlama. Returns airdrop name, protocol, eligibility criteria, estimated value, claim deadline, and status to help users identify and act on airdrop opportunities before they expire.

Inputs: limit.

research_compare_yieldsA
Read-onlyIdempotent

Compare yield opportunities for a specific token across multiple DeFi protocols and chains. Returns matching pools sorted by APY so you can quickly identify where a given token earns the most yield, including TVL and protocol information for each option.

Inputs: token (required), limit, chainId.

research_contract_securityA
Read-onlyIdempotent

Analyze the security posture of a smart contract by querying GoPlus Security. Returns audit flags such as honeypot detection, proxy patterns, ownership renouncement, trading restrictions, and other risk indicators for the given contract address.

Inputs: address (required), chainId.

research_fund_raisesA
Read-onlyIdempotent

Fetch fundraising and investment round data for crypto projects from DefiLlama. Returns project name, date, USD amount raised, funding round type, and lead investors, providing insight into which projects are attracting institutional capital.

Inputs: limit.

research_governanceA
Read-onlyIdempotent

Fetch active and recent governance proposals for DeFi protocols from DefiLlama's governance tracker. Returns proposal title, current status, vote counts (for/against/abstain), start and end dates, and discussion links to stay informed about protocol governance decisions.

Inputs: limit, status, protocol.

research_hack_historyA
Read-onlyIdempotent

Query the history of DeFi hacks and exploits tracked by DefiLlama. Returns a list of incidents with the protocol name, date, USD amount lost, attack technique, and source URL — enabling security research and risk assessment of protocols.

Inputs: limit, protocol.

research_newsA
Read-onlyIdempotent

Retrieve the latest crypto and DeFi news headlines from DefiLlama's news aggregator. Returns article titles, publication dates, source names, and URLs, providing a curated feed of relevant industry news to support market research and situational awareness.

Inputs: limit.

research_protocol_infoA
Read-onlyIdempotent

Get detailed information about a DeFi protocol including TVL, chain breakdown, category, audit history, and funding rounds from DefiLlama. If the protocol has a CoinGecko-listed token, also returns developer activity, community stats, and sentiment data.

Inputs: protocol (required).

research_token_due_diligenceA
Read-onlyIdempotent

Perform comprehensive due diligence on a token by aggregating security, holder distribution, and market data from multiple sources. Returns a structured risk assessment covering contract safety flags, top holder concentration, and liquidity metrics to support informed investment decisions.

Inputs: token (required), chainId.

research_token_holdersA
Read-onlyIdempotent

Retrieve the top token holders for a given contract address using GoPlus Security data. Returns a ranked list of holder addresses with their balance and percentage share of the total supply, enabling analysis of holder concentration and whale exposure.

Inputs: token (required), limit, chainId.

research_token_unlocksA
Read-onlyIdempotent

Retrieve upcoming token unlock events from DefiLlama's vesting tracker. Returns a list of tokens with their next unlock date, USD value to be unlocked, current price, and estimated price impact percentage — useful for anticipating supply-side selling pressure.

Inputs: limit.

research_whale_transfersA
Read-onlyIdempotent

Track large on-chain token transfers (whale movements) using DefiLlama's large transactions feed. Returns recent high-value transfers with sender, receiver, USD amount, token symbol, chain, and timestamp to monitor smart money flows and potential market-moving activity.

Inputs: limit, symbol.

research_yield_opportunitiesA
Read-onlyIdempotent

Discover DeFi yield farming and liquidity pool opportunities from DefiLlama's yields API. Returns a filtered and ranked list of pools with APY, TVL, chain, protocol, and pool metadata to help identify the best yield strategies across the ecosystem.

Inputs: chain, limit, token, minTvl, +1 more.

resolve_tokenA
Read-only

Resolve a token symbol (e.g. 'USDT', 'WBNB') to its contract address and decimals on a specific chain. Uses a built-in registry of verified canonical addresses for major tokens with DexScreener fallback. ALWAYS call this first when you need a token address — do NOT use blockscout_lookup_token_by_symbol or get_token_info_by_symbol.

Inputs: symbol (required), chainId (required).

revoke_approvalC

Revoke approval for an ERC20 token to an address

Inputs: spender (required), tokenAddress (required), chainId.

revoke_token_approval_evmA

Revoke approval for an ERC20 token from a spender (sets allowance to 0)

Inputs: spender (required), tokenAddress (required), chainId.

send_tokenC

Send native currency or an ERC20 token to a recipient, in base units.

Inputs: recipient (required), amountInBaseUnits (required), chainId, tokenAddress.

server_statusA
Read-only

Get current server status including wallet mode, active chain, confirmation setting, and backend health.

Inputs: no named parameters.

sign_messageC

Sign a message with the wallet

Inputs: message (required), chainId.

sign_typed_data_evmC

Sign an EIP-712 typed data structure (EVM)

Inputs: types (required), domain (required), message (required), primaryType (required), +1 more.

transaction_confirmA
Destructive

Confirm a pending operation by ID. Returns the operation details so the caller can execute it.

Inputs: id (required).

transaction_denyA
Idempotent

Deny and remove a pending operation by ID without executing it.

Inputs: id (required).

transaction_listA
Read-only

List all pending operations awaiting confirmation. Automatically prunes expired entries.

Inputs: no named parameters.

transaction_simulateA
Read-only

Simulate an unsigned transaction using RPC trace when available, with fallback static decoding for token balance changes.

Inputs: to (required), data (required), from (required), chainId (required), +1 more.

transferC

Transfer an amount of an ERC20 token to an address

Inputs: to (required), amount (required), tokenAddress (required), chainId.

transfer_fromC

Transfer an amount of an ERC20 token from an address to another address

Inputs: to (required), from (required), amount (required), tokenAddress (required), +1 more.

wallet_activateA
Destructive

Activate a wallet from a private key or mnemonic using the selected backend (encrypted OWS vault when available, otherwise legacy wallet storage) and emits wallet-changed. Gated when secrets are in input: requires WEB3AGENT_ALLOW_AGENT_VISIBLE_SECRETS=1. Prefer local CLI: npx web3agent wallet activate.

Inputs: mnemonic, privateKey, accountIndex, addressIndex.

wallet_deactivateA
Idempotent

Deactivate the current runtime/session wallet and revert to read-only ephemeral mode without deleting persisted wallet material.

Inputs: no named parameters.

wallet_deleteA
Destructive

Permanently delete persisted wallet material through the active backend or legacy storage, then revert to read-only ephemeral mode. Destructive: requires explicit confirmation.

Inputs: no named parameters.

wallet_derive_addressesA
Read-only

Derive multiple addresses from a mnemonic (1-20). Returns index, address, and derivation path. Gated: requires WEB3AGENT_ALLOW_AGENT_VISIBLE_SECRETS=1 (mnemonic in agent context). Prefer local CLI.

Inputs: mnemonic (required), count.

wallet_from_mnemonicA
Read-only

Derive an address from a BIP-39 mnemonic at optional account/address index. Does NOT return private key. Gated: requires WEB3AGENT_ALLOW_AGENT_VISIBLE_SECRETS=1 (mnemonic in agent context). Prefer local CLI.

Inputs: mnemonic (required), accountIndex, addressIndex.

wallet_generateA
Read-only

Generate a new random Ethereum wallet. Returns address and private key once — never stored. Gated: requires WEB3AGENT_ALLOW_AGENT_VISIBLE_SECRETS=1. Prefer local CLI: npx web3agent wallet generate.

Inputs: no named parameters.

wallet_generate_mnemonicA
Read-only

Generate a new BIP-39 mnemonic phrase with its first derived address. Gated: requires WEB3AGENT_ALLOW_AGENT_VISIBLE_SECRETS=1. Prefer local CLI: npx web3agent wallet generate --mnemonic.

Inputs: no named parameters.

wallet_get_activeA
Read-only

Get the currently active wallet address, chain ID, and mode (private-key, mnemonic, or read-only).

Inputs: no named parameters.

wallet_infoA
Read-only

Get wallet backend metadata, storage security posture, and current wallet state without exposing secrets.

Inputs: no named parameters.

wallet_set_confirmationA
DestructiveIdempotent

Toggle write confirmation at runtime. When enabled, write operations are queued and require explicit confirmation.

Inputs: enabled (required).

x402_check_requirementsA
Read-only

Check if a URL requires x402 payment. Returns payment requirements (amount, network, token) or confirms no payment needed. Use before x402_fetch to preview costs.

Inputs: url (required), method, headers.

x402_fetchA
Destructive

Fetch a URL, automatically paying via x402 protocol if required. Checks payment cost first, queues confirmation if payment needed, then executes. No-op if no payment required.

Inputs: url (required), body, method, headers.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    C2.8/5.0

    Scored across 195 tools

    Disambiguation2/5

    With 195 tools, there is substantial overlap between tool families (e.g., evm_get_balance, get_balance, and explorer_get_historical_balance; multiple token-resolution tools). Descriptions help in some cases, but the sheer number of near-synonymous operations makes misselection likely, especially across market, explorer, and EVM domains.

    Naming Consistency2/5

    Naming conventions are inconsistent: some tools use snake_case with domain prefixes (market_get_*), others use bare verbs (get_address, sign_message), and there are duplicate variants like convert_to_base_units vs convert_to_base_unit and get_token_allowance vs get_token_allowance_evm. This mix of patterns and redundant suffixes reduces predictability.

    Tool Count1/5

    195 tools is an extreme count that overwhelms rather than serves the user. Many tools are redundant or deprecated (see market_get_ticker), and the surface area is far too large for an agent to navigate effectively. Even for a broad web3 domain, this is excessive and poorly curated.

    Completeness3/5

    Core web3 workflows are covered: market data, contract interaction, wallet operations, swaps, bridges, and job protocols. However, there are notable gaps such as NFT transfers, contract deployment, and unified lifecycle management for some token operations. The presence of deprecated tools and duplicate implementations further muddies coverage.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers