The 4 Bands
| Band | Tools | What the Agent Can Do |
|---|---|---|
| read (default) | get_balance, get_all_balances, get_price, get_fee_quote, resolve_asset, get_tx_status, get_tx_history | Query balances, prices, fees, assets, transaction status |
| prepare | + prepare_transfer, prepare_serialized_unsigned_tx, prepare_onramp | Construct unsigned transaction payloads (no execution) |
| sign | + get_wallet_address, sign_transaction, create_wallet*, create_agent_api_key*, create_custom_policy* | OWS local signing and wallet management |
| broadcast | + send_transaction | Sign and submit transactions to the blockchain |
Configuration
Set theMCP_BANDS environment variable:
| Value | Active Bands |
|---|---|
read | read |
read,prepare | read + prepare |
read,prepare,sign | read + prepare + sign |
full | all 4 bands |
read. Start narrow, expand as needed.
How It Works
MCP_BANDS=read has 7 tools in its schema. An agent with MCP_BANDS=full has 16 tools in owner mode or 13 in agent mode — the three owner-only tools (create_wallet, create_custom_policy, create_agent_api_key) are not registered when the server runs in agent mode. There is nothing to bypass because the restricted tools were never registered.
Tool Annotations
Every tool carries advisory metadata that helps MCP clients categorize behavior:| Band | Read-only | Destructive | Idempotent | Open-world |
|---|---|---|---|---|
| read | yes | no | yes | yes |
| prepare | no | no | no | yes |
| sign | no | no | yes | no |
| broadcast | no | yes | no | yes |
Multi-Agent Pattern
Run multiple MCP server instances with different band configurations to implement role-based access:| Agent Role | Band Config | Tools Visible | Purpose |
|---|---|---|---|
| Monitoring agent | MCP_BANDS=read | 7 | Portfolio queries, price alerts |
| Treasury agent | MCP_BANDS=read,prepare | 10 | Prepare transactions for review |
| Executor agent | MCP_BANDS=full | 16 (owner) / 13 (agent) | Sign and broadcast (policy-gated) |
Feature-Gated Tools
Some tools within active bands may returnnot_available errors if the backend feature is not enabled for your API key (e.g., swaps, staking, NFTs). This is a separate layer:
- Bands control the MCP tool schema (which tools exist)
- Feature gates control the backend API (which tools succeed)
category: "not_available" and a message explaining why. See Structured Errors for how to handle these.
Why Start with Read
Read-only tools answer most wallet questions without creating transfer payloads or exposing any signing surface:- “What’s my ETH balance?” —
get_balance - “How much is 1 ETH in USD?” —
get_price - “What would the gas fee be for this transfer?” —
get_fee_quote - “Show me recent transactions” —
get_tx_history
- Start with
read— prove the integration works - Add
preparewhen you need transaction construction - Add
signwhen you are ready to manage a local OWS wallet - Add
broadcastwhen you are ready to execute on-chain actions