Picnic agents is in early access — read-only access only for now.
EN
Docs
Tools
get_balances

get_balances

Get token balances across the user's smart accounts. Returns a JSON array, one entry per (account × chain) combination with non-zero balances. Returns [] when the user has no balances or when filters match no accounts.

Required scope: read:balances

Parameters:

NameTypeRequiredDescription
chain_idnumbernoFilter by blockchain chain ID — e.g. 1 (Ethereum), 8453 (Base), 100 (Gnosis).
account_type"picnic" | "gnosisPay"noFilter by smart account type.

Returned fields (per entry):

FieldTypeDescription
account.addressstringSmart account address.
account.chainIdnumberChain the smart account lives on.
account.type"picnic" | "gnosisPay"Account type.
balances[].assetIdstringStable CAIP (opens in a new tab)-style asset identifier — eip155:{chainId}/erc20:{address} for ERC-20s (bep20 on chain 56) or eip155:{chainId}/slip44:60 for the chain's native asset. Use this to uniquely identify an asset across chains.
balances[].addressstring | nullAsset contract address (null for the chain's native asset, identifiable from account.chainId).
balances[].symbolstringToken symbol (e.g. "USDC", "BNB").
balances[].formattedAmountstringDecimal-formatted balance. Note: this is a string, not a number — preserves precision for very small / large amounts.
balances[].value.usdnumber | nullBalance converted to USD. null if the price feed is unavailable.
balances[].value.eurnumber | nullBalance converted to EUR. null if the price feed is unavailable.
balances[].value.brlnumber | nullBalance converted to BRL. null if the price feed is unavailable.

Example prompt:

"How much USDC do I have on Base right now?"