web3agent
Enables exchange trading on Binance, including order management, quoting, and market data via CCXT integration.
Enables EVM operations on Ethereum, including balance checks, token swaps, contract interactions, and wallet management.
Supports DeFi operations on Optimism, including cross-chain bridging, token swaps, and balance queries.
Enables DeFi operations on Polygon, including swaps, bridge integration, and wallet interactions.
Provides starter templates for building AI agents with Vercel AI SDK, allowing seamless integration of DeFi tooling.
Enables browser wallet flows via wagmi for executing DeFi operations in web applications.
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 initThis 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 web3agentThe 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/web3agentThe 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 initauto-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: 0x0000000000000000000000000000000000000000Supported hosts
Host | Config location |
Claude Code |
|
Cursor |
|
Windsurf |
|
OpenCode |
|
Codex |
|
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 |
0x swaps | 0x | Requires |
Starter templates
npx web3agent createScaffolds 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 --prepareThe 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
web3agentfor app-owned agents and browser-wallet flowsPrepared 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 --versionWallet 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";prepareOperation(...)returns the next wallet actions plusresumeStateYour app executes those actions with the browser wallet
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 toolsacp_claim_refundADestructive
Claim remaining budget for a Virtuals ACPRouter job using claimBudget.
Inputs: jobId (required), chainId.
acp_complete_jobADestructive
Complete a job on the Virtuals ACPRouter by auto-resolving the pending memo and signing approval.
Inputs: jobId (required), reason, chainId.
acp_create_jobADestructive
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_jobADestructive
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_jobARead-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_jobBDestructive
Reject a job on the Virtuals ACPRouter by auto-resolving the pending memo and signing rejection.
Inputs: jobId (required), reason, chainId.
acp_set_budgetBDestructive
Set a job budget on the Virtuals ACPRouter using setBudgetWithPaymentToken and optional token override.
Inputs: jobId (required), amount (required), chainId, paymentToken.
acp_submit_jobADestructive
Submit a deliverable memo on the Virtuals ACPRouter and advance the job to evaluation phase.
Inputs: jobId (required), deliverable (required), chainId.
agdp_create_offeringBRead-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_jobsARead-only
List your active or completed jobs from the aGDP marketplace. Requires an active wallet.
Inputs: status.
agdp_get_offeringARead-only
Get detailed information about a specific agent offering by ID.
Inputs: offeringId (required).
agdp_get_offeringsARead-only
Search the aGDP marketplace for AI agent offerings. Returns agent profiles with capabilities, metrics, and available services.
Inputs: topK, query.
agdp_hire_agentADestructive
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_exchangeARead-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_accountsARead-onlyIdempotent
List configured CCXT accounts from CCXT_CONFIG_PATH with redacted metadata only. Secrets are never returned.
Inputs: no named parameters.
ccxt_list_exchangesARead-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_readARead-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_writeADestructive
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_callARead-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_agentARead-only
Get ERC-8004 agent identity. Requires either agentId (token ID) or walletAddress — provide at least one.
Inputs: agentId, chainId, walletAddress.
erc8004_get_feedbackARead-only
Get aggregate ERC-8004 reputation summary for an agent with optional tag filters.
Inputs: agentId (required), tag1, tag2, chainId.
erc8004_register_agentADestructive
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_feedbackADestructive
Submit reputation feedback for an ERC-8004 agent (write operation, wallet + confirmation required).
Inputs: value (required), agentId (required), tag1, tag2, +2 more.
erc8004_update_agentADestructive
Update ERC-8004 agent metadata URI (write operation, wallet + confirmation required).
Inputs: agentId (required), name, chainId, agentURI, +3 more.
erc8183_claim_refundADestructive
Claim refund from an expired/rejected ERC-8183 job.
Inputs: jobId (required), chainId.
erc8183_complete_jobADestructive
Complete an ERC-8183 job and release escrow.
Inputs: jobId (required), reason, chainId.
erc8183_create_jobBDestructive
Create an ERC-8183 job.
Inputs: provider (required), evaluator (required), description (required), expiryDuration (required), +2 more.
erc8183_fund_jobADestructive
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_jobARead-only
Read ERC-8183 job details by ID.
Inputs: jobId (required), chainId.
erc8183_reject_jobCDestructive
Reject an ERC-8183 job.
Inputs: jobId (required), reason, chainId.
erc8183_set_budgetBDestructive
Set ERC-8183 job budget in payment token smallest units.
Inputs: jobId (required), amount (required), chainId.
erc8183_submit_jobCDestructive
Submit job deliverable hash for an ERC-8183 job.
Inputs: jobId (required), deliverable (required), chainId.
evm_approve_token_spendingBDestructive
Approve ERC-20 spender allowance using raw token units.
Inputs: amount (required), tokenAddress (required), spenderAddress (required), chainId.
evm_get_allowanceARead-only
Get ERC-20 allowance from owner to spender for a token contract.
Inputs: tokenAddress (required), spenderAddress (required), chainId, ownerAddress.
evm_get_balanceARead-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_blockBRead-only
Get block details by block number string or block hash.
Inputs: blockIdentifier (required), chainId.
evm_get_chain_infoARead-only
Get basic chain status including latest block number for a chain ID.
Inputs: chainId.
evm_get_contract_abiBRead-only
Fetch a contract ABI from Etherscan for a specific chain.
Inputs: contractAddress (required), chainId.
evm_get_erc1155_balanceARead-only
Get ERC-1155 token balance for an owner and token ID.
Inputs: tokenId (required), ownerAddress (required), tokenAddress (required), chainId.
evm_get_gas_priceARead-only
Get current base gas price and priority fee estimates for a chain.
Inputs: chainId.
evm_get_latest_blockBRead-only
Get the latest block details for a chain.
Inputs: chainId.
evm_get_nft_infoARead-only
Get ERC-721 NFT details including collection metadata, owner, and tokenURI.
Inputs: tokenId (required), tokenAddress (required), chainId.
evm_get_supported_networksARead-only
List supported EVM networks available for EVM tool operations.
Inputs: no named parameters.
evm_get_token_balanceARead-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_transactionBRead-only
Get transaction details for a transaction hash.
Inputs: txHash (required), chainId.
evm_get_transaction_receiptBRead-only
Get the transaction receipt (status, logs, gas usage) for a hash.
Inputs: txHash (required), chainId.
evm_get_wallet_addressARead-only
Get the currently active wallet address, mode, and chain context.
Inputs: no named parameters.
evm_list_registered_abisARead-only
List all ABI labels registered via evm_register_abi.
Inputs: no named parameters.
evm_lookup_ens_addressARead-only
Perform reverse ENS lookup for an address.
Inputs: address (required), chainId.
evm_multicallARead-only
Batch multiple contract read calls into one multicall RPC request.
Inputs: calls (required), chainId, allowFailure.
evm_read_contractARead-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_abiARead-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_nameBRead-only
Resolve an ENS name to an EVM address.
Inputs: ensName (required), chainId.
evm_sign_messageADestructive
Sign an arbitrary UTF-8 message with the active wallet.
Inputs: message (required).
evm_sign_typed_dataADestructive
Sign EIP-712 typed data payload with the active wallet.
Inputs: typesJson (required), domainJson (required), messageJson (required), primaryType (required).
evm_transfer_erc20ADestructive
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_nativeADestructive
Send native tokens (ETH, MATIC, etc.) to an address or ENS name.
Inputs: to (required), amount (required), chainId.
evm_wait_for_transactionARead-only
Wait for transaction confirmations and return the confirmed receipt.
Inputs: txHash (required), chainId, confirmations.
evm_write_contractADestructive
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_byARead-only
Get the earliest transaction for an address — useful for identifying initial funding or activity.
Inputs: address (required), chainId (required).
explorer_get_address_infoARead-only
Get address overview including balances, ENS name, contract metadata, and public tags.
Inputs: address (required), chainId (required).
explorer_get_blockARead-only
Get block information including gas consumption, rewards, and optionally full transaction list.
Inputs: chainId (required), blockNumber (required).
explorer_get_block_by_timestampARead-only
Find the block number closest to a given Unix timestamp (before or after).
Inputs: chainId (required), closest (required), timestamp (required).
explorer_get_block_rewardsBRead-only
Get block reward details including miner reward, uncle inclusion reward, and uncle blocks.
Inputs: chainId (required), blockNumber (required).
explorer_get_blocks_by_validatorARead-only
Get blocks mined/validated by a specific address.
Inputs: address (required), chainId (required), page, pageSize.
explorer_get_contract_abiARead-only
Fetch the ABI for a verified smart contract. Works only for source-verified contracts.
Inputs: chainId (required), contractAddress (required).
explorer_get_contract_codeARead-only
Get the deployed bytecode of a contract at a given address.
Inputs: chainId (required), contractAddress (required).
explorer_get_contract_creatorARead-only
Find who deployed a contract and the creation transaction hash.
Inputs: chainId (required), contractAddress (required).
explorer_get_contract_sourceBRead-only
Get verified source code for a smart contract.
Inputs: chainId (required), contractAddress (required).
explorer_get_daily_block_rewardsBRead-only
Get daily block rewards for a date range.
Inputs: chainId (required), endDate (required), startDate (required), sort.
explorer_get_daily_gas_usedARead-only
Get daily average gas used for a date range.
Inputs: chainId (required), endDate (required), startDate (required), sort.
explorer_get_daily_new_addressesARead-only
Get daily new address count for a date range.
Inputs: chainId (required), endDate (required), startDate (required), sort.
explorer_get_daily_tx_countBRead-only
Get daily transaction count for a date range.
Inputs: chainId (required), endDate (required), startDate (required), sort.
explorer_get_event_logsARead-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_topicsARead-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_balanceARead-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_priceARead-only
Get historical daily native token prices for a date range.
Inputs: chainId (required), endDate (required), startDate (required), sort.
explorer_get_historical_token_balanceARead-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_txsARead-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_priceARead-only
Get the current native token price in USD and BTC.
Inputs: chainId (required).
explorer_get_native_supplyARead-only
Get the native token supply including staking, burned fees, and withdrawal totals.
Inputs: chainId (required).
explorer_get_network_utilizationARead-only
Get daily network utilization percentage for a date range.
Inputs: chainId (required), endDate (required), startDate (required), sort.
explorer_get_nft_inventoryBRead-only
List NFT collections and token IDs owned by an address.
Inputs: address (required), chainId (required), page, pageSize.
explorer_get_nft_transfersARead-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_holdersBRead-only
Get a paginated list of token holders for a given token contract.
Inputs: chainId (required), contractAddress (required), page, pageSize.
explorer_get_token_infoARead-only
Get token metadata including name, symbol, decimals, total supply, and social profiles.
Inputs: chainId (required), contractAddress (required).
explorer_get_tokens_by_addressARead-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_supplyARead-only
Get the total supply of a token, optionally at a specific historical block number.
Inputs: chainId (required), contractAddress (required), blockNumber.
explorer_get_token_transfersARead-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_holdersARead-only
Get the top N token holders by balance for a given token contract.
Inputs: chainId (required), contractAddress (required), count.
explorer_get_tx_detailsARead-only
Get full transaction details including decoded input parameters and token movements.
Inputs: txHash (required), chainId (required).
explorer_get_tx_execution_statusARead-only
Check the execution status of a transaction (whether it errored during execution).
Inputs: txHash (required), chainId (required).
explorer_get_tx_historyARead-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_receiptBRead-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_bridgeADestructive
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_chainsARead-only
Get list of chains supported by LI.FI for cross-chain bridging
Inputs: no named parameters.
lifi_get_quoteARead-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_intentARead-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_tokensARead-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_chainsARead-only
List all supported EVM chains with their chain IDs, names, and native currencies.
Inputs: no named parameters.
market_get_categoriesARead-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_flowsARead-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_tvlARead-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_volumeARead-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_rankingsARead-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_ratesARead-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_losersARead-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_statsARead-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_klinesARead-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_bookARead-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_tvlARead-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_sentimentARead-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_statsARead-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_tickerARead-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_historyARead-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_priceARead-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_protocolsARead-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_tokensARead-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_get_trendingARead-onlyIdempotent
Fetch the currently trending cryptocurrencies on CoinGecko based on search activity. Returns a list of trending coins with their name, symbol, CoinGecko ID, and market cap rank.
Inputs: limit.
market_search_tokenARead-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_prepareARead-only
Prepare an external-wallet operation for Orbs, LI.FI, or GOAT. Returns the next actions plus opaque resume state.
operation_resumeADestructive
Resume a previously prepared external-wallet operation after signatures or transactions complete externally.
Inputs: resumeState (required), actionResults.
orbs_cancel_orderADestructive
Cancel a Spot order onchain by calling RePermit.cancel with the order digest. Write, confirmation-gated.
Inputs: digest (required), chainId.
orbs_get_quoteARead-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_approvalsARead-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_limitADestructive
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_orderADestructive
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_twapADestructive
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_intentARead-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_intentARead-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_intentARead-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_intentARead-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_ordersARead-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_orderADestructive
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_swapADestructive
Submit an externally signed Orbs Liquidity Hub swap using the quote returned by orbs_prepare_swap_intent.
Inputs: quote (required), signature (required), chainId.
orbs_swapADestructive
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_statusARead-only
Check the status of a pending Orbs Liquidity Hub swap
Inputs: user (required), sessionId (required), chainId, maxAttempts.
policy_getARead-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_airdropsARead-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_yieldsARead-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_securityARead-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_raisesARead-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_governanceARead-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_historyARead-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_newsARead-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_infoARead-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_diligenceARead-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_holdersARead-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_unlocksARead-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_transfersARead-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_opportunitiesARead-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_tokenARead-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_statusARead-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_confirmADestructive
Confirm a pending operation by ID. Returns the operation details so the caller can execute it.
Inputs: id (required).
transaction_denyAIdempotent
Deny and remove a pending operation by ID without executing it.
Inputs: id (required).
transaction_listARead-only
List all pending operations awaiting confirmation. Automatically prunes expired entries.
Inputs: no named parameters.
transaction_simulateARead-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_activateADestructive
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_deactivateAIdempotent
Deactivate the current runtime/session wallet and revert to read-only ephemeral mode without deleting persisted wallet material.
Inputs: no named parameters.
wallet_deleteADestructive
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_addressesARead-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_mnemonicARead-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_generateARead-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_mnemonicARead-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_activeARead-only
Get the currently active wallet address, chain ID, and mode (private-key, mnemonic, or read-only).
Inputs: no named parameters.
wallet_infoARead-only
Get wallet backend metadata, storage security posture, and current wallet state without exposing secrets.
Inputs: no named parameters.
wallet_set_confirmationADestructiveIdempotent
Toggle write confirmation at runtime. When enabled, write operations are queued and require explicit confirmation.
Inputs: enabled (required).
x402_check_requirementsARead-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_fetchADestructive
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
Scored across 195 tools
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 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.
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.
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
Related MCP Connectors
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
MCP server for the Z1N Protocol - on-chain identity for AI agents on Polygon
Compliance MCP for AI agents: sanctions & KYT screening on 50+ chains, stablecoin-freeze, oracle.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
AlicenseCqualityDmaintenanceAn MCP server providing unified access to blockchain operations, bridging, swapping, and crypto trading strategies for AI agents.37178GPL 3.0- AlicenseNot gradedqualityBmaintenanceNon-custodial BVCC Agent Wallet MCP server: let an AI agent check balances, send native/ERC-20, approve, and swap on Uniswap v3/v4 across Ethereum, BNB Chain, Arbitrum and Base, within on-chain enforced limits.842 npm2MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI agents real-time access to DeFi across multiple chains, enabling non-custodial crypto trading, portfolio queries, and transaction execution.7 npm7MIT

Syeniteofficial
FlicenseNot gradedqualityCmaintenanceA DeFi MCP server enabling AI agents to query lending rates, execute swaps/bridges, monitor positions, and access prediction markets across 30+ chains with a trust layer for calldata verification.-