A tool outside the agent’s granted profile is never registered in the schema — the prompt-injection boundary. What each level grants is in Execution Levels.
Token-transfer pattern
When you are working with token transfers, use this order:- Call
resolve_assetwith the chain and a token symbol, name, or contract - Choose the intended candidate
- Pass the selected
tokenContractinto the transaction-preparation step
R0 · Read Tools
Available at R0 Read and above. No signing scope is present, so no signing tool is reachable regardless of policy.get_balance
What it does: Returns the native balance for one address on one chain.
Required inputs:
addresschain
fiat(defaults toUSD)
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.
Required inputs:
addresschain
fiat(defaults toUSD)assetIdsincludeNative(defaults totrue)
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.
Required inputs:
- either
symbol - or both
contractAddressandchain
base(defaults toUSD)
What's the price of ETH?
get_fee_quote
What it does: Estimates the network fee for a native or token transfer before execution.
Required inputs:
chainfromtoamountWei
tokenContractmemofiat
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.
Required inputs:
chain- exactly one of
tokenContract,symbol, orname
limit(defaults to5, max10)
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.
Required inputs:
hashchain
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.
Required inputs:
addresschain
limit(defaults to10, max50)
Show me the last 10 transactions for 0x... on ethereum.
R1 · Prepare Tools
Available at R1 Prepare and above. These construct unsigned artifacts; they never release a signature.prepare_transfer
What it does: Prepares a structured transfer request for later execution.
Required inputs:
chainfromto- either
amountoramountWei
symboltokenContractnoncemaxPriorityFeePerGasWeipriorityFeeMultiplier
- provide either
amountoramountWei, never both - token transfers require
tokenContract - if you only know the token symbol or name, resolve it first with
resolve_asset
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.
Required inputs:
chainto- either
walletNameorfrom - either
amountoramountWei
walletNamefromsymboltokenContractnoncemaxPriorityFeePerGasWeipriorityFeeMultiplier
- provide either
amountoramountWei, 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
Prepare a signing-ready transaction to send 1 ETH from my local wallet to 0x... on ethereum.
prepare_onramp
What it does: Prepares a fiat on-ramp widget URL for funding a destination address or a managed MPC wallet on a supported chain.
Required inputs:
chain- exactly one of
addressorwalletName
currencyCode(defaults to the chain-native asset)baseCurrencyCode(required ifbaseCurrencyAmountorquoteCurrencyAmountis provided)- one of
baseCurrencyAmountorquoteCurrencyAmount lockAmount(only valid withbaseCurrencyAmount)redirectUrl(HTTPS)
- Requires the fiat on-ramp to be enabled. If unavailable, the call returns a structured
not_availableerror. - If
walletNameis provided, the tool resolves the chain-specific wallet address before building the widget URL.
Prepare an on-ramp to fund my treasury wallet with 500 USD on ethereum.
R2 · Execute Tools
Available at R2 Execute. These are registered only when the agent’s tool profile includesexecute and its token carries wallets:sign — otherwise they never appear in the schema.
Signing is non-custodial MPC threshold signing — no full private key is ever assembled. External BYO signing, where you manage the key yourself, is also supported. See the trust model. Every execution composes with the deterministic policy engine before a signature is released — see Policy Gates.
Not agent tools. Wallet creation and policy-rule management are admin operations, not MCP tools — see Managing Policy Rules. Agents are provisioned in the dashboard, not from a tool — see Connect your agent.
get_wallet_address
What it does: Returns the address for a named wallet on a supported signing chain.
Required inputs:
walletNamechain
Get the ethereum address for my wallet named treasury.
sign_transaction
What it does: Signs a raw unsigned transaction hex blob via MPC threshold signing.
Required inputs:
walletNamechainunsignedTxHex
Sign this raw unsigned ethereum transaction hex with my treasury wallet.
send_transaction
What it does: Signs and broadcasts a raw unsigned transaction hex blob via MPC threshold signing.
Required inputs:
walletNamechainunsignedTxHexconfirmBroadcast=true
- this is the destructive path
- explicit confirmation is required
- this works with raw unsigned transaction hex
Broadcast this unsigned ethereum transaction with my treasury wallet.