Tool reference
Six tools. Every call is policy-checked before execution; a call outside the policy returns an error naming the violated rule, which the agent can relay to the user.
list_accounts
Returns the wallet's accounts with their addresses per chain family (EVM, Avalanche X/P, Solana, Bitcoin). Only accounts the policy exposes are listed.
No parameters.
{
"accounts": [
{
"name": "Account 1",
"addresses": {
"evm": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
"avm": "X-avax1…",
"pvm": "P-avax1…",
"svm": "5oNDL…",
"btc": "bc1q…"
}
}
]
}
get_balances
Returns token balances for permitted accounts on permitted networks — native assets plus known tokens, with amounts and USD estimates.
| Parameter | Type | Notes |
|---|---|---|
account | string, optional | Restrict to one account |
network | string, optional | CAIP-2 id, e.g. eip155:43114 |
The signing tools
All four share the same contract: the agent supplies an unsigned transaction, the server checks it against the policy (account allowed? network allowed? recipient allowed? inside the spend limit?), signs with the CubeSigner-held key, broadcasts, and returns the transaction id.
| Tool | Chain family | Transaction format |
|---|---|---|
sign_and_send_evm_tx | Any permitted EVM network | EVM fields: to, value, data, plus a CAIP-2 network |
sign_and_send_avalanche_tx | Avalanche X and P-Chains | Unsigned Avalanche transaction bytes with a chain alias |
sign_and_send_solana_tx | Solana | Serialised unsigned Solana transaction |
sign_and_send_btc_tx | Bitcoin | Recipient and amount; the server assembles UTXOs |
A refusal is not an exception: the tool responds with a structured error (for example, spend limit exceeded, with the limit and attempted amount) so the agent can explain and adjust rather than retry blindly.
Errors agents should expect
| Condition | What the agent sees |
|---|---|
| Policy disabled | Every tool fails with a policy-disabled error |
| Account or network not permitted | Error naming the constraint |
| Spend limit exceeded | Error with limit and attempted amount |
| Recipient not on the allowlist | Error naming the recipient rule |