get_balances
Pega os saldos de tokens nas smart accounts do usuário. Retorna um array JSON, uma entrada por combinação (account × chain) com saldo não-zero. Retorna [] quando o usuário não tem saldos ou os filtros não casam com nenhuma conta.
Escopo necessário: read:balances
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
chain_id | number | não | Filtra por chain ID — ex: 1 (Ethereum), 8453 (Base), 100 (Gnosis). |
account_type | "picnic" | "gnosisPay" | não | Filtra por tipo de smart account. |
Campos retornados (por entrada):
| Campo | Tipo | Descrição |
|---|---|---|
account.address | string | Endereço da smart account. |
account.chainId | number | Chain onde a smart account vive. |
account.type | "picnic" | "gnosisPay" | Tipo de conta. |
balances[].assetId | string | Identificador estável do ativo no formato CAIP (opens in a new tab) — eip155:{chainId}/erc20:{address} pra ERC-20s (bep20 na chain 56) ou eip155:{chainId}/slip44:60 pro ativo nativo da rede. Use pra identificar um ativo de forma única entre chains. |
balances[].address | string | null | Endereço do contrato do ativo (null pro ativo nativo, identificável pelo account.chainId). |
balances[].symbol | string | Símbolo do token (ex: "USDC", "BNB"). |
balances[].formattedAmount | string | Saldo em formato decimal. Atenção: é uma string, não um número — preserva a precisão pra valores muito pequenos / muito grandes. |
balances[].value.usd | number | null | Saldo convertido pra USD. null se o feed de preço não tá disponível. |
balances[].value.eur | number | null | Saldo convertido pra EUR. null se o feed de preço não tá disponível. |
balances[].value.brl | number | null | Saldo convertido pra BRL. null se o feed de preço não tá disponível. |
Exemplo de pergunta:
"Quanto USDC eu tenho na Base agora?"