Skip to main content

Bands

BandWhat it includesTypical use
readbalances, prices, fee quotes, asset resolution, transaction queriessafe default
preparetransaction preparation toolsprepare transactions before signing or execution
signwallet and signing tools - MPC 2-of-2 threshold signingdetached signing
broadcastsign-and-send - MPC 2-of-2 threshold signingexecute on-chain actions
If MPC signing is not configured, the sign and broadcast tools are not exposed even if the band set includes them.

Token-transfer pattern

When you are working with token transfers, use this order:
  1. Call resolve_asset with the chain and a token symbol, name, or contract
  2. Choose the intended candidate
  3. Pass the selected tokenContract into the transaction-preparation step
WalletSuite MCP does not guess token contracts from symbols or names.

Read Tools

get_balance

What it does: Returns the native balance for one address on one chain. Band: read Required inputs:
  • address
  • chain
Optional inputs:
  • fiat (defaults to USD)
Returns: Native asset balance and valuation details for the selected chain. Example prompt: Check the native balance for 0x... on ethereum.

get_all_balances

What it does: Returns native and token balances for one address on one chain. Band: read Required inputs:
  • address
  • chain
Optional inputs:
  • fiat (defaults to USD)
  • assetIds
  • includeNative (defaults to true)
Returns: A broader portfolio view for the selected chain. Example prompt: Show all balances for 0x... on ethereum.

get_price

What it does: Returns the current price for a token by symbol or by contract address. Band: read Required inputs:
  • either symbol
  • or both contractAddress and chain
Optional inputs:
  • base (defaults to USD)
Returns: Current token price data for the requested pair. Example prompt: What's the price of ETH?

get_fee_quote

What it does: Estimates the network fee for a native or token transfer before execution. Band: read Required inputs:
  • chain
  • from
  • to
  • amountWei
Optional inputs:
  • tokenContract
  • memo
  • fiat
Returns: Estimated network fee details for the proposed transfer. Example prompt: Estimate the fee to send 1000000 smallest-unit USDC from 0x... to 0x... on ethereum.

resolve_asset

What it does: Resolves a token symbol, name, or exact contract into one or more chain-specific asset candidates. Band: read Required inputs:
  • chain
  • exactly one of tokenContract, symbol, or name
Optional inputs:
  • limit (defaults to 5, max 10)
Returns: A candidate list plus a resolution status of unique, ambiguous, or not_found. Example prompt: Resolve USDC on ethereum so I can prepare a transfer.

get_tx_status

What it does: Returns the status of one transaction hash on one chain. Band: read Required inputs:
  • hash
  • chain
Returns: A transaction status such as PENDING, SUCCEEDED, FAILED, or UNKNOWN. Example prompt: What's the status of transaction 0x... on ethereum?

get_tx_history

What it does: Returns recent transaction history for one address on one chain. Band: read Required inputs:
  • address
  • chain
Optional inputs:
  • limit (defaults to 10, max 50)
Returns: A trimmed list of recent transactions for the address. Example prompt: Show me the last 10 transactions for 0x... on ethereum.

Prepare Tools

prepare_transfer

What it does: Prepares a structured transfer request for later execution. Band: prepare Required inputs:
  • chain
  • from
  • to
  • either amount or amountWei
Optional inputs:
  • symbol
  • tokenContract
  • nonce
  • maxPriorityFeePerGasWei
  • priorityFeeMultiplier
Important rules:
  • provide either amount or amountWei, never both
  • token transfers require tokenContract
  • if you only know the token symbol or name, resolve it first with resolve_asset
Returns: A structured prepared transfer result for the requested transaction. Example prompt: Prepare a transfer of 1 ETH from 0x... to 0x... on ethereum.

prepare_serialized_unsigned_tx

What it does: Prepares signing-ready raw unsigned transaction hex for the MPC signing layer and subsequent broadcast. Band: prepare Required inputs:
  • chain
  • to
  • either walletName or from
  • either amount or amountWei
Optional inputs:
  • walletName
  • from
  • symbol
  • tokenContract
  • nonce
  • maxPriorityFeePerGasWei
  • priorityFeeMultiplier
Important rules:
  • provide either amount or amountWei, never both
  • token transfers require tokenContract
  • if you only know the token symbol or name, resolve it first with resolve_asset
  • see Supported Chains for the chain surface
Returns: Signing-ready raw unsigned transaction hex plus a review summary. Example prompt: Prepare a signing-ready transaction to send 1 ETH from my local wallet to 0x... on ethereum.

prepare_onramp

What it does: Prepares a MoonPay on-ramp widget URL for funding a destination address or a managed MPC wallet on a supported chain. Band: prepare Required inputs:
  • chain
  • exactly one of address or walletName
Optional inputs:
  • currencyCode (defaults to the chain-native asset)
  • baseCurrencyCode (required if baseCurrencyAmount or quoteCurrencyAmount is provided)
  • one of baseCurrencyAmount or quoteCurrencyAmount
  • lockAmount (only valid with baseCurrencyAmount)
  • redirectUrl (HTTPS)
Returns: A MoonPay widget URL plus the resolved destination address and next-action hint. Notes:
  • Requires MoonPay credentials on the server. If unconfigured, the call returns a structured not_available error.
  • If walletName is provided, the tool resolves the chain-specific wallet address before building the widget URL.
Example prompt: Prepare an on-ramp to fund my treasury wallet with 500 USD on ethereum.

Sign Tools

Signing runs through MPC 2-of-2 threshold signing (DKLS23). WalletSuite holds one key share and you hold the other; both shares are required to produce any signature, and no full private key is ever assembled on either side. Owner-mode tools (wallet creation, custom policies, agent API keys) run a key-generation or policy ceremony against the cosigner; they appear only in owner sessions.

create_wallet

What it does: Bootstraps a new MPC wallet by running a distributed key-generation (DKG) ceremony against the configured cosigner and derives the wallet’s addresses for supported chains. Your local share is encrypted at rest with the WALLETSUITE_PASSPHRASE secret; the cosigner persists its half on S3 + KMS. The share, mnemonic, and any private key material are never returned. Band: sign Required inputs:
  • walletName (must match ^[a-zA-Z0-9_-]{1,64}$)
Availability: Owner mode only. Returns: walletName, the derived address, keyId, and createdAt. Example prompt: Create a wallet called treasury.

get_wallet_address

What it does: Returns the address for a named wallet on a supported signing chain. Band: sign Required inputs:
  • walletName
  • chain
Returns: The wallet address for the selected chain. Example prompt: Get the ethereum address for my wallet named treasury.

sign_transaction

What it does: Signs a raw unsigned transaction hex blob via MPC 2-of-2 threshold signing. Band: sign Required inputs:
  • walletName
  • chain
  • unsignedTxHex
Returns: A signature and recovery id when available. Important note: This works with raw unsigned transaction hex. Example prompt: Sign this raw unsigned ethereum transaction hex with my treasury wallet.

create_custom_policy

What it does: Registers a custom policy on the cosigner and returns the resulting policyId. The cosigner enforces the policy’s destination allowlist, per-transaction native-value cap, and rate limit at signing time. Band: sign Required inputs:
  • walletName
  • at least one constraint: allowlist, maxValueEth, or rateLimitPerHour
Optional inputs:
  • allowlist (EIP-55 checksummed destination addresses the cosigner will permit)
  • maxValueEth (per-transaction native-value cap as a decimal string, up to 18 fractional digits)
  • rateLimitPerHour (integer in the range 1-1000)
Availability: Owner mode only. Returns: walletName, the new policyId, appliedAt, and the constraints that were applied. Example prompt: Create a policy for my treasury wallet that caps transfers at 1 ETH and allows only 0x... as a destination.

create_agent_api_key

What it does: Issues an agent API token bound to an MPC wallet on the cosigner, writes the secret token to a mode-0600 file, and returns metadata only. The cosigner stores only the SHA-256 hash of the token; the raw token is written once to the file and is never returned in chat. Band: sign Required inputs:
  • walletName
  • label (human-readable label persisted with the cosigner-side token-hash record)
Optional inputs:
  • expiresIn - one of 30d (default), 90d, or never
  • allowedTools (list of MCP tool names this agent token is permitted to invoke)
  • tokenFile (defaults to ~/.walletsuite/mpc-agent-token)
Availability: Owner mode only. Returns: Key metadata (walletName, label, tokenHash, expiresIn, expiresAt when set, allowedTools when set), the token file path, and a nextAction hint to launch the server in MPC agent mode with MPC_AGENT_TOKEN set from the file. Example prompt: Create an agent API key for my treasury wallet labeled trader.

Broadcast Tools

send_transaction

What it does: Signs and broadcasts a raw unsigned transaction hex blob via MPC 2-of-2 threshold signing. Band: broadcast Required inputs:
  • walletName
  • chain
  • unsignedTxHex
  • confirmBroadcast=true
Returns: The resulting transaction hash. Important notes:
  • this is the destructive path
  • explicit confirmation is required
  • the matching RPC URL must be configured
  • this works with raw unsigned transaction hex
Example prompt: Broadcast this unsigned ethereum transaction with my treasury wallet.