Skip to content
Skip to content

Tool Catalog

The Balchemy platform exposes 106 registered tools through its MCP (Model Context Protocol) gateway. By default, the MCP endpoint surfaces 7 tools — the high-level agent interface designed for most external agent use cases. The full catalog of 106 tools becomes available when the platform flag MCP_EXPOSE_GRANULAR_TOOLS=true is enabled on the bot.

All tools are executed server-side. They communicate with the Rust trading engine over gRPC and with third-party data providers via the backend's service layer. Every tool call is scope-checked, rate-limited, and recorded in the MCP audit log.


Access model

Default (7 tools)

The 7 default tools cover the entire agent lifecycle without requiring granular access:

ToolDescription
ask_botNatural language query routed through the full AI pipeline
trade_commandDirect natural-language trading command (bypasses LLM)
agent_executeHigh-level instruction executor for external agents
agent_researchToken research with snapshot delta tracking
agent_portfolioPortfolio and position state snapshot
agent_statusRuntime/auth health check
agent_configGet or update trading config and risk policy

Granular (106 tools, MCP_EXPOSE_GRANULAR_TOOLS=true)

Granular mode exposes all 106 tools across 14 categories. Contact the Balchemy team to enable this flag for your integration.


Scope model

Every tool declaration includes a requiredScope field. Your MCP key must carry at least that scope or tool calls return a 403 Forbidden error.

ScopeGrants
readRead-only tools — market data, research, portfolio views, wallet info
tradeAll read tools plus all execution and configuration tools

Pass scope during ERC-8004 onboarding to receive a key with the appropriate permissions.


Category 1 — AI tools

These are the 7 default tools. They form the primary interface for external agents.

ToolDescriptionScopeKey parameters
ask_botSend a message to the bot and receive its reply. Routes through the full message handler pipeline, including knowledge base retrieval, tool invocation, and conversation history.trademessage (required), chat_id (optional), metadata (optional object)
trade_commandExecute a natural-language trading command directly against the trading bridge. Bypasses the LLM — the command string is parsed and dispatched to the execution pipeline.trademessage (required), chat_id, last_mentioned_ca, recent_messages (array)
agent_executeHigh-level instruction endpoint. Accepts a free-text instruction, routes it through the trading bridge, and returns a structured envelope with intent, result, and metadata.tradeinstruction (required), chat_id, metadata
agent_researchComprehensive token research endpoint. Returns a raw research envelope including on-chain data, X (Twitter) sentiment, dev wallet analysis, and holder distribution. Tracks deltas between calls.readquery (required), chain (solana/base/ethereum), includeX, includeOnchain, includeDevWallets, includeHolders, maxPosts
agent_portfolioReturns a snapshot of the current agent state: balances, open orders, positions, and 7-day PnL. Tracks deltas between consecutive calls.read(none)
agent_statusReports auth and runtime status for the current session: user ID presence, bot ID, trading enabled flag, trading service availability.read(none)
agent_configGet or update trading configuration and risk policy. Supports three operations: get, update_trade_defaults, update_risk_policy.tradeoperation (required), defaults (for update_trade_defaults), policy (for update_risk_policy)

Structured response envelope

All AI tools return a structured envelope:

{
  "reply": "Human-readable response text",
  "structured": { ... },
  "trace_id": "uuid-v4",
  "session_cursor": "ISO-8601 timestamp",
  "capabilities_hash": "...",
  "metadata": {
    "tool": "ask_bot",
    "raw_mode": false,
    "ts": "2026-03-19T12:00:00.000Z",
    "trace_id": "...",
    "session_cursor": "...",
    "capabilities_hash": "..."
  }
}

Tools that return large unstructured datasets (agent_research, agent_portfolio) set raw_mode: true in their metadata.


Category 2 — Solana trading tools

Direct integration with Solana DeFi protocols. All Solana tools proxy through the Rust trading engine.

ToolDescriptionScopeKey parameters
trading_solana_jupiter_tokens_searchSearch Solana tokens via the Jupiter tokens API.readq (search query), limit
trading_solana_jupiter_priceGet current Solana token prices via the Jupiter price API. Accepts up to multiple mint addresses.readmints (required, array of mint addresses), vsToken
trading_solana_jupiter_quoteGet a Solana swap quote via Jupiter. Returns route, price impact, fees, and estimated output.readinputMint (required), outputMint (required), amount (required, in lamports), slippageBps, platformFeeBps
trading_solana_jupiter_swapPlan or execute a Solana swap via Jupiter. Custodial-only. Defaults to plan mode (submit=false). Input mint must be native SOL or USDC (P3 constraint).tradeinputMint (required), outputMint (required), amount (required), slippageBps, submit (boolean, default false)
trading_solana_rugcheck_reportFetch a RugCheck.xyz security report for a Solana token. Returns risk score, flagged signals, and liquidity metadata.readmint (required, token mint address)
trading_solana_token_insightsGet on-chain token insights via Solana RPC: mint authority, freeze authority, supply, decimals, and top holders.readmint (required)
trading_solana_pretrade_reportProduce a pre-trade checklist combining RugCheck + token insights for a proposed swap. Returns raw risk signals before you commit.readinputMint (required), outputMint (required), amount (required), slippageBps

Category 3 — EVM trading tools

EVM trading is available on Base (chain ID 8453) via the 0x protocol.

ToolDescriptionScopeKey parameters
trading_evm_statusGet EVM integration status. Confirms engine health and Base chain availability.read(none)
trading_evm_wallets_listList all custodial EVM wallets for the authenticated user on Base.read(none)
trading_evm_wallets_custodial_createCreate a new custodial EVM wallet on Base.tradechainId, label, makeDefault
trading_evm_quoteGet an EVM swap quote via 0x. Read-only; does not create an order.readsellToken (required), buyToken (required), sellAmount (required, in token base units), chainId (default 8453), walletId, slippageBps
trading_evm_swapExecute an EVM swap via custodial signing. Defaults to submit=false (creates a pending order). Pass submit=true for on-chain execution.tradesellToken (required), buyToken (required), sellAmount (required), chainId, walletId, slippageBps, submit
trading_evm_token_resolveResolve EVM token metadata (symbol, name, decimals) by contract address on Base (chain 8453).readtokenAddress (required), chainId
trading_evm_contract_risk_liteGet minimal EVM contract risk signals (proxy flag, owner address) for a token contract.readtokenAddress (required), chainId
trading_evm_chain_block_numberFetch the latest block number for an EVM chain via RPC.readchainId (required)

Category 4 — EVM pre-trade tool

ToolDescriptionScopeKey parameters
trading_evm_pretrade_reportProduce a pre-trade checklist for an EVM swap. Runs security signals (Honeypot, GoPlus, contract risk) before the swap is submitted.readsellToken (required), buyToken (required), sellAmount (required), chainId

Category 5 — Security tools

On-chain token risk intelligence aggregated from Honeypot.is, GoPlus Security, and Bubblemaps.

ToolDescriptionScopeKey parameters
trading_security_honeypot_checkRun Honeypot.is signals for a token address. Returns is-honeypot flag, buy/sell tax, holder count, and liquidity analysis.readtokenAddress (required), chainId (default 8453)
trading_security_goplus_token_securityRun GoPlus Security analysis for a token. Returns comprehensive risk flags including ownership, proxy status, tax, and DEX liquidity.readtokenAddress (required), chainId (default 8453)
trading_security_bubblemaps_mapFetch Bubblemaps token ownership cluster graph. Visualizes wallet concentration and connected address groups.readchain (required, e.g. "base", "solana"), tokenAddress (required)

Category 6 — Wallet management tools

Full lifecycle management for connected and custodial wallets.

ToolDescriptionScopeKey parameters
trading_wallet_listList all connected wallets for the authenticated user.read(none)
trading_wallet_defaultGet the user's default wallet.read(none)
trading_wallet_verification_messageGenerate a SIWE/SIWS verification message for a wallet connect flow.readpublic_key (required)
trading_wallet_connectConnect a new wallet using a signed verification message.tradewallet (required object with signature + public key)
trading_wallet_platform_delegateGet the platform delegate public key for delegated signing operations.read(none)
trading_wallet_set_defaultSet the default wallet by index.tradewallet_index (required)
trading_wallet_approvalsList token approvals for a specific wallet.readwallet_index
trading_wallet_has_approvalCheck whether a specific token has been approved for a wallet.readwallet_index (required), token_mint (required)
trading_wallet_approve_tokenRecord a new token approval for a wallet.tradeapproval (required object)
trading_wallet_revoke_tokenRevoke a token approval.traderevoke (required object)
trading_wallet_custodial_getGet custodial wallet information for the authenticated user.read(none)
trading_wallet_custodial_ensureEnsure a custodial wallet exists, creating one if necessary.trade(none)
trading_wallet_default_order_profile_getGet the default order profile for this bot (amount, slippage, stop-loss, take-profit, DCA config).read(none — requires botId in context)
trading_wallet_default_order_profile_updateUpdate the default order profile for this bot.tradeamount (required), amountUnit (SOL/USDC/USD), slippageBps, stopLossPercent, takeProfitTargets, dcaLegs, autoApprove, maxLossPercent, maxPositionSize, name

Category 7 — Trading config tools

Read and write the bot-level trading configuration. Changes take effect on the next executed trade.

ToolDescriptionScopeKey parameters
trading_config_getGet the full trading config for this bot including defaults, risk policy, and wallet mode.read(none)
trading_config_trade_defaultsUpdate trading defaults (slippage, amount, etc.).tradedefaults (required object)
trading_config_risk_policyUpdate the risk policy (max loss, max position size, circuit breaker thresholds).tradepolicy (required object)
trading_config_wallet_modeUpdate wallet mode: custodial, delegated, or connected.tradewallet_mode (required string)
trading_config_pool_preferencesUpdate DEX pool preferences (priority pools, excluded pools).tradeprefs (required object)
trading_config_launchpadsGet current launchpad configuration (enabled/disabled, priority).read(none)
trading_config_launchpad_toggleEnable or disable a specific launchpad integration (pumpfun, bonk, etc.).tradetype (required), enabled (required boolean)
trading_config_launchpad_priorityUpdate the priority rank for a launchpad. Lower numbers = higher priority.tradetype (required), priority (required number)

Category 8 — Trading strategy tools

Create, delete, and control DCA and other automated trading strategies.

ToolDescriptionScopeKey parameters
trading_strategies_listList all trading strategies for this bot. Optionally filter by strategy type.readtype (optional filter)
trading_strategies_createCreate a new trading strategy. Supports DCA, limit, trailing stop, partial sell, and take-profit configuration objects.tradename (required), type (required), dca_config, limit_config, trailing_stop_config, partial_sell_config, take_profit_config
trading_strategies_deleteDelete a trading strategy by name or index.tradestrategy_name or strategy_index (at least one required)
trading_dca_statsGet DCA execution statistics for this bot: intervals hit, total invested, average entry price.read(none)
trading_dca_pausePause a running DCA strategy by name. The strategy is preserved and can be resumed.tradestrategy_name (required)
trading_dca_resumeResume a paused DCA strategy by name.tradestrategy_name (required)

Category 9 — Trading core tools

Position tracking, order management, and token research.

ToolDescriptionScopeKey parameters
trading_positionsList all open trading positions for this bot.read(none)
trading_positions_pnlGet PnL breakdown for open and closed positions. Returns unrealized and realized profit/loss.read(none)
trading_agentic_state_snapshotGet a full agentic state snapshot: balances, orders, positions, and 7-day PnL in a single call.read(none)
trading_orders_listList orders for this bot. Optionally filter by status and limit result count.readstatus (optional), limit (optional)
trading_orders_approveApprove a pending order by ID. Required when autoApprove=false in the order profile.tradeorder_id (required)
trading_orders_cancelCancel an order by ID.tradeorder_id (required)
trading_token_researchRun a comprehensive token research report. Aggregates on-chain data, social signals, dev wallets, and holder distribution. Returns a structured envelope with a snapshot delta tracker.readquery (token name or address), chain, includeX, includeOnchain, includeDevWallets, includeHolders, maxPosts

Category 10 — DEX pool tools

Low-level EVM DEX log and state inspection via UniswapV2/V3 ABI.

ToolDescriptionScopeKey parameters
trading_evm_dex_uniswap_v2_pairs_createdFetch UniswapV2-compatible PairCreated factory logs for a block range.readchainId (required), fromBlock (required), toBlock (required)
trading_evm_dex_uniswap_v3_pools_createdFetch UniswapV3 PoolCreated factory logs for a block range.readchainId (required), fromBlock (required), toBlock (required)
trading_evm_dex_pool_swapsFetch swap logs for a DEX pool (V2 or V3) by pool address and block range.readchainId (required), poolAddress (required), poolType (uniswap_v2/uniswap_v3, required), fromBlock (required), toBlock (required)
trading_evm_dex_pool_mintsFetch liquidity mint logs for a DEX pool by pool address and block range.readchainId, poolAddress, poolType, fromBlock, toBlock (all required)
trading_evm_dex_pool_burnsFetch liquidity burn logs for a DEX pool by pool address and block range.readchainId, poolAddress, poolType, fromBlock, toBlock (all required)
trading_evm_dex_pool_syncsFetch UniswapV2 Sync logs (reserve0/reserve1 updates) for a pool.readchainId, poolAddress, poolType (uniswap_v2), fromBlock, toBlock (all required)
trading_evm_dex_pool_lookupLookup pool address via factory eth_call. Supports getPair (V2) and getPool (V3).readchainId (required), poolType (required), tokenA (required), tokenB (required), fee (required for V3)
trading_evm_dex_pool_stateFetch a DEX pool state snapshot via eth_call. Returns reserves (V2) or slot0 + liquidity (V3).readchainId (required), poolAddress (required), poolType (required)

Category 11 — Launchpad tools

Discovery and metadata for tokens deployed via crypto launchpads.

Pump.fun

ToolDescriptionScopeKey parameters
trading_launchpad_pumpfun_search_coinsSearch the Pump.fun coin feed by free-text query.readquery (required), offset, limit, sort, order, includeNsfw
trading_launchpad_pumpfun_trending_coinsGet the Pump.fun trending coins feed.readoffset, limit, sort, order, includeNsfw

Clanker

ToolDescriptionScopeKey parameters
trading_launchpad_clanker_tokensBrowse and search Clanker-deployed tokens. Filter by query, FID, pair address, chain, and sort order.readq, fid, pairAddress, sort (asc/desc), sortBy, limit, cursor, chainId, includeMarket
trading_launchpad_clanker_creator_searchSearch Clanker token creators by query string.readq (required), limit, offset, sort, trustedOnly
trading_launchpad_clanker_token_by_addressGet Clanker token details by contract address.readaddress (required)
trading_launchpad_clanker_tokens_by_creatorList all Clanker tokens deployed by a given creator address.readaddress (required), cursor

Zora

ToolDescriptionScopeKey parameters
trading_launchpad_zora_coinGet Zora coin or token details by contract address.readaddress (required), chain
trading_launchpad_zora_exploreExplore Zora coins by list type: trending, new, top, or other valid types.readlistType (required), count, after (cursor)

BaseMeme

ToolDescriptionScopeKey parameters
trading_launchpad_basememe_factory_logsFetch BaseMeme factory contract logs for a block range. Useful for discovering newly deployed meme tokens on Base.readchainId (required), fromBlock (required), toBlock (required), deployment (current_v4/legacy_v3)

Category 12 — Market data tools

Aggregated market data from DexScreener, GeckoTerminal, CoinGecko, and DefiLlama.

DexScreener

ToolDescriptionScopeKey parameters
trading_market_dexscreener_search_pairsSearch DexScreener trading pairs by free-text query.readq (required), chainId (optional filter)
trading_market_dexscreener_token_pairsGet all DexScreener pairs for a specific token address.readchainId (required), tokenAddress (required)
trading_market_dexscreener_pair_detailsGet DexScreener pair details for a specific pair address.readchainId (required), pairAddress (required)
trading_market_dexscreener_tokensBulk-fetch DexScreener token details for a list of token addresses.readchainId (required), tokenAddresses (required, array)
trading_market_dexscreener_token_boosts_topGet the top boosted tokens list from DexScreener.read(none)
trading_market_dexscreener_token_boosts_latestGet the latest boosted tokens list from DexScreener.read(none)

GeckoTerminal

ToolDescriptionScopeKey parameters
trading_market_geckoterminal_search_poolsSearch GeckoTerminal liquidity pools by query string.readquery (required), network, page
trading_market_geckoterminal_trending_poolsGet trending liquidity pools for a network on GeckoTerminal.readnetwork (required, e.g. "solana", "base")
trading_market_geckoterminal_pool_detailsGet full details for a GeckoTerminal pool by address.readnetwork (required), poolAddress (required)
trading_market_geckoterminal_pool_ohlcvGet OHLCV candlestick data for a GeckoTerminal pool.readnetwork (required), poolAddress (required), timeframe (required), limit, beforeTimestamp
trading_market_geckoterminal_pool_tradesGet recent trades for a GeckoTerminal pool.readnetwork (required), poolAddress (required), limit

CoinGecko

ToolDescriptionScopeKey parameters
trading_market_coingecko_onchain_trending_poolsGet CoinGecko on-chain trending pools for a specific network.readnetwork (required)

DefiLlama

ToolDescriptionScopeKey parameters
trading_market_defillama_prices_currentGet current coin prices via DefiLlama. Accepts a list of coin IDs (e.g. "coingecko:solana").readcoinIds (required, array)

Category 13 — Social tools

On-chain social signal data from Farcaster via Neynar.

ToolDescriptionScopeKey parameters
trading_social_neynar_search_castsSearch Farcaster casts via the Neynar API. Useful for sentiment analysis and community signal detection.readq (required, search query), limit, cursor

Category 14 — Indexer tools

EVM on-chain data via Blockscout (supports Base by default, chain ID 8453).

ToolDescriptionScopeKey parameters
trading_indexer_blockscout_token_detailsGet Blockscout token metadata for a contract address: name, symbol, type, total supply, holder count.readtokenAddress (required), chainId (default 8453)
trading_indexer_blockscout_token_holdersGet paginated token holder list for a contract address.readtokenAddress (required), chainId, itemsCount, value, addressHash
trading_indexer_blockscout_token_transfersGet paginated token transfer history for a contract address.readtokenAddress (required), chainId, blockNumber, index
trading_indexer_blockscout_contract_detailsGet smart contract details including verification status, proxy information, and source code metadata.readaddress (required), chainId (default 8453)
trading_indexer_blockscout_address_transactionsGet paginated transaction history for any address.readaddress (required), chainId, itemsCount, blockNumber, index

Category 15 — Simulation tools

Transaction simulation via Tenderly before on-chain submission.

ToolDescriptionScopeKey parameters
trading_simulation_tenderly_simulate_txSimulate an EVM transaction via the Tenderly Simulation API. Returns execution trace, state changes, and revert reason if failed.readfrom (required), to (required), data (required, hex-encoded calldata), chainId (default 8453), value (in wei)
trading_simulation_evm_gas_estimateEstimate gas for an EVM transaction using Tenderly simulation. Returns gasUsed, gasLimit, and success flag.readfrom (required), to (required), data (required), chainId, value

Category 16 — Verification tools

Smart contract source verification via Sourcify.

ToolDescriptionScopeKey parameters
trading_verification_sourcify_contract_lookupLook up contract source verification metadata via Sourcify. Returns verification status, compiler version, and ABI hash.readaddress (required), chainId (default 8453), fields (optional field selector)

Tool response format

All tool responses follow the MCP tools/call JSON-RPC response format:

{
  "jsonrpc": "2.0",
  "id": "req-uuid",
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{...json string...}"
      }
    ],
    "isError": false
  }
}

When a tool fails, isError is true and the text field contains a JSON error object with code and message fields.

Use the SDK helpers to work with responses:

import { getToolText, parseToolJson, isToolError } from "@balchemy/agent-sdk";
 
const response = await mcp.callTool("trading_positions", {});
 
if (isToolError(response)) {
  console.error("Tool error:", getToolText(response));
} else {
  const data = parseToolJson(response);
  console.log(data);
}

Safety profiles

Each tool carries an internal safety profile that controls execution guards:

ProfileBehavior
read_onlyNo side effects. Can run even when trading is disabled.
trade_guardedRequires tradingEnabled=true and tradingServiceAvailable=true on the bot context. Returns a soft error message rather than throwing if conditions are not met.

Connection lost. Retrying...