Skip to main content
Glama

Get wallet balances

get_wallet_balances
Read-onlyIdempotent

Native coin + token balances valued in USD, read from the Sentio portfolio API. address is a 0x EVM address, or a 64-hex Sui address for sui_mainnet. chain is one chain id or a list of them (each one of 1 Ethereum, 10 Optimism, 56 BNB Chain, 143 Monad, 8453 Base, 42161 Arbitrum, 43114 Avalanche, sui_mainnet Sui; one wallet is either EVM or Sui, so a list stays within one of those). Pass address + one chain for that wallet on that chain; address + a list of chains for the same wallet on each of them in one call; address alone for every chain of the address's kind (Ethereum, Optimism, BNB Chain, Monad, Base, Arbitrum, Avalanche for an EVM address; Sui for a Sui address); or no arguments for every wallet address you track, listing the chains each one holds tokens on. Token addresses are contract addresses on EVM chains and coin types (0x…::sui::SUI) on Sui. Across every tracked wallet, each wallet is read from its latest stored portfolio sample (the Sentio API samples tracked wallets hourly): such an entry says source: "sample" and gives its time as asOf. A wallet without a recent sample, and any Sui wallet (its stored history covers fewer protocols), is scanned live (source: "live"). For one wallet's current state, ask for it by address. An aggregate answers within about 40 s: a wallet it could not re-read in time is answered from its last live read of the past 15 minutes when there is one (asOf says when), and otherwise comes back with pending: true, partial: true and no figures, and the total is marked partial. Its scan keeps running, so asking again in a minute usually returns it — do not report a pending wallet as empty. The Sentio portfolio API answers within about 25 s: when it stops a scan before reading everything, or a chain or protocol read fails (for example the wallet token-balance provider), the result (and each affected entry) carries partial: true and missing lists the chains and protocols not read. Its values are then incomplete and can be too low or too high (an unread position is left out; a debt left unpriced overstates a net value) — say so, and retry later or ask for fewer chains rather than reporting them as complete.

Input Schema

NameRequiredDescriptionDefault
chainNoOne or more chain ids, all EVM or all Sui: 1 Ethereum, 10 Optimism, 56 BNB Chain, 143 Monad, 8453 Base, 42161 Arbitrum, 43114 Avalanche, sui_mainnet Sui
addressNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / chain / anyOf
      Previous value: -[
      -  {
      -    "description": "Chain id: 1 Ethereum, 56 BNB Chain, 8453 Base, 42161 Arbitrum, sui_mainnet Sui",
      -    "oneOf": [
      -      {
      -        "enum": [
      -          "1"
      -        ],
      -        "title": "Ethereum",
      -        "type": "string"
      -      },
      -      {
      -        "enum": [
      -          "56"
      -        ],
      -        "title": "BNB Chain",
      -        "type": "string"
      -      },
      -      {
      -        "enum": [
      -          "8453"
      -        ],
      -        "title": "Base",
      -        "type": "string"
      -      },
      -      {
      -        "enum": [
      -          "42161"
      -        ],
      -        "title": "Arbitrum",
      -        "type": "string"
      -      },
      -      {
      -        "enum": [
      -          "sui_mainnet"
      -        ],
      -        "title": "Sui",
      -        "type": "string"
      -      }
      -    ],
      -    "title": "One chain",
      -    "type": "string"
      -  },
      -  {
      -    "items": {
      -      "description": "Chain id: 1 Ethereum, 56 BNB Chain, 8453 Base, 42161 Arbitrum, sui_mainnet Sui",
      -      "oneOf": [
      -        {
      -          "enum": [
      -            "1"
      -          ],
      -          "title": "Ethereum",
      -          "type": "string"
      -        },
      -        {
      -          "enum": [
      -            "56"
      -          ],
      -          "title": "BNB Chain",
      -          "type": "string"
      -        },
      -        {
      -          "enum": [
      -            "8453"
      -          ],
      -          "title": "Base",
      -          "type": "string"
      -        },
      -        {
      -          "enum": [
      -            "42161"
      -          ],
      -          "title": "Arbitrum",
      -          "type": "string"
      -        },
      -        {
      -          "enum": [
      -            "sui_mainnet"
      -          ],
      -          "title": "Sui",
      -          "type": "string"
      -        }
      -      ],
      -      "type": "string"
      -    },
      -    "maxItems": 5,
      -    "minItems": 1,
      -    "title": "Several chains",
      -    "type": "array"
      -  }
      -]New value: +[
      +  {
      +    "description": "Chain id: 1 Ethereum, 10 Optimism, 56 BNB Chain, 143 Monad, 8453 Base, 42161 Arbitrum, 43114 Avalanche, sui_mainnet Sui",
      +    "oneOf": [
      +      {
      +        "enum": [
      +          "1"
      +        ],
      +        "title": "Ethereum",
      +        "type": "string"
      +      },
      +      {
      +        "enum": [
      +          "10"
      +        ],
      +        "title": "Optimism",
      +        "type": "string"
      +      },
      +      {
      +        "enum": [
      +          "56"
      +        ],
      +        "title": "BNB Chain",
      +        "type": "string"
      +      },
      +      {
      +        "enum": [
      +          "143"
      +        ],
      +        "title": "Monad",
      +        "type": "string"
      +      },
      +      {
      +        "enum": [
      +          "8453"
      +        ],
      +        "title": "Base",
      +        "type": "string"
      +      },
      +      {
      +        "enum": [
      +          "42161"
      +        ],
      +        "title": "Arbitrum",
      +        "type": "string"
      +      },
      +      {
      +        "enum": [
      +          "43114"
      +        ],
      +        "title": "Avalanche",
      +        "type": "string"
      +      },
      +      {
      +        "enum": [
      +          "sui_mainnet"
      +        ],
      +        "title": "Sui",
      +        "type": "string"
      +      }
      +    ],
      +    "title": "One chain",
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "description": "Chain id: 1 Ethereum, 10 Optimism, 56 BNB Chain, 143 Monad, 8453 Base, 42161 Arbitrum, 43114 Avalanche, sui_mainnet Sui",
      +      "oneOf": [
      +        {
      +          "enum": [
      +            "1"
      +          ],
      +          "title": "Ethereum",
      +          "type": "string"
      +        },
      +        {
      +          "enum": [
      +            "10"
      +          ],
      +          "title": "Optimism",
      +          "type": "string"
      +        },
      +        {
      +          "enum": [
      +            "56"
      +          ],
      +          "title": "BNB Chain",
      +          "type": "string"
      +        },
      +        {
      +          "enum": [
      +            "143"
      +          ],
      +          "title": "Monad",
      +          "type": "string"
      +        },
      +        {
      +          "enum": [
      +            "8453"
      +          ],
      +          "title": "Base",
      +          "type": "string"
      +        },
      +        {
      +          "enum": [
      +            "42161"
      +          ],
      +          "title": "Arbitrum",
      +          "type": "string"
      +        },
      +        {
      +          "enum": [
      +            "43114"
      +          ],
      +          "title": "Avalanche",
      +          "type": "string"
      +        },
      +        {
      +          "enum": [
      +            "sui_mainnet"
      +          ],
      +          "title": "Sui",
      +          "type": "string"
      +        }
      +      ],
      +      "type": "string"
      +    },
      +    "maxItems": 8,
      +    "minItems": 1,
      +    "title": "Several chains",
      +    "type": "array"
      +  }
      +]
    • changedInput schema / properties / chain / description
      Previous value: -"One or more chain ids, all EVM or all Sui: 1 Ethereum, 56 BNB Chain, 8453 Base, 42161 Arbitrum, sui_mainnet Sui"New value: +"One or more chain ids, all EVM or all Sui: 1 Ethereum, 10 Optimism, 56 BNB Chain, 143 Monad, 8453 Base, 42161 Arbitrum, 43114 Avalanche, sui_mainnet Sui"
  2. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "address": {
      -        "type": "string"
      -      },
      -      "chain": {
      -        "type": "string"
      -      },
      -      "chainName": {
      -        "type": "string"
      -      },
      -      "tokens": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "address": {
      -              "anyOf": [
      -                {
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "amount": {
      -              "type": "string"
      -            },
      -            "decimals": {
      -              "type": "number"
      -            },
      -            "price": {
      -              "anyOf": [
      -                {
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "symbol": {
      -              "type": "string"
      -            },
      -            "value": {
      -              "anyOf": [
      -                {
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            }
      -          },
      -          "required": [
      -            "symbol",
      -            "address",
      -            "decimals",
      -            "amount",
      -            "price",
      -            "value"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "totalValue": {
      -        "type": "number"
      -      }
      -    },
      -    "required": [
      -      "chain",
      -      "chainName",
      -      "address",
      -      "totalValue",
      -      "tokens"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "addresses": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "address": {
      -              "type": "string"
      -            },
      -            "chain": {
      -              "type": "string"
      -            },
      -            "chainName": {
      -              "type": "string"
      -            },
      -            "error": {
      -              "type": "string"
      -            },
      -            "tokens": {
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "address": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "amount": {
      -                    "type": "string"
      -                  },
      -                  "decimals": {
      -                    "type": "number"
      -                  },
      -                  "price": {
      -                    "anyOf": [
      -                      {
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "symbol": {
      -                    "type": "string"
      -                  },
      -                  "value": {
      -                    "anyOf": [
      -                      {
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "symbol",
      -                  "address",
      -                  "decimals",
      -                  "amount",
      -                  "price",
      -                  "value"
      -                ],
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            "totalValue": {
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "chain",
      -            "chainName",
      -            "address",
      -            "totalValue",
      -            "tokens"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "totalValue": {
      -        "type": "number"
      -      }
      -    },
      -    "required": [
      -      "totalValue",
      -      "addresses"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "address": {
      +        "type": "string"
      +      },
      +      "chain": {
      +        "type": "string"
      +      },
      +      "chainName": {
      +        "type": "string"
      +      },
      +      "missing": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "chain": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "protocolId": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            }
      +          },
      +          "required": [
      +            "chain",
      +            "protocolId"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "partial": {
      +        "const": true,
      +        "type": "boolean"
      +      },
      +      "tokens": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "address": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "amount": {
      +              "type": "string"
      +            },
      +            "decimals": {
      +              "type": "number"
      +            },
      +            "price": {
      +              "anyOf": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "symbol": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "anyOf": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            }
      +          },
      +          "required": [
      +            "symbol",
      +            "address",
      +            "decimals",
      +            "amount",
      +            "price",
      +            "value"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "totalValue": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "chain",
      +      "chainName",
      +      "address",
      +      "totalValue",
      +      "tokens"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "addresses": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "address": {
      +              "type": "string"
      +            },
      +            "asOf": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "chain": {
      +              "type": "string"
      +            },
      +            "chainName": {
      +              "type": "string"
      +            },
      +            "error": {
      +              "type": "string"
      +            },
      +            "missing": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "chain": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "protocolId": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "chain",
      +                  "protocolId"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "partial": {
      +              "const": true,
      +              "type": "boolean"
      +            },
      +            "pending": {
      +              "const": true,
      +              "type": "boolean"
      +            },
      +            "source": {
      +              "enum": [
      +                "sample",
      +                "live"
      +              ],
      +              "type": "string"
      +            },
      +            "tokens": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "address": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "amount": {
      +                    "type": "string"
      +                  },
      +                  "decimals": {
      +                    "type": "number"
      +                  },
      +                  "price": {
      +                    "anyOf": [
      +                      {
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "symbol": {
      +                    "type": "string"
      +                  },
      +                  "value": {
      +                    "anyOf": [
      +                      {
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "symbol",
      +                  "address",
      +                  "decimals",
      +                  "amount",
      +                  "price",
      +                  "value"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "totalValue": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "chain",
      +            "chainName",
      +            "address",
      +            "totalValue",
      +            "tokens"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "partial": {
      +        "const": true,
      +        "type": "boolean"
      +      },
      +      "totalValue": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "totalValue",
      +      "addresses"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description wisely spends its budget on non-obvious behavior: stored hourly samples (source: "sample", asOf) vs live scans, ~40 s aggregate budget, ~25 s Sentio timeout, and what `pending: true`, `partial: true` and `missing` mean. It even warns that a pending wallet is not empty and that partial values may be too high or too low.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and every sentence carries operational information, so the length is largely justified for four distinct call modes plus partial-result handling. However, the call-mode and partial-result discussion runs together in dense prose, making it harder to scan than a short enumerated list would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and only two optional parameters, the description covers everything an agent needs to call it correctly and interpret degraded responses. Failure modes, latency, and caching are all accounted for.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50% and `address` has no schema description at all, but the description fully compensates: '0x EVM address, or a 64-hex Sui address for sui_mainnet'. It also defines the cross-field constraint that an address and its chain list must be the same family (all EVM or all Sui), which appears nowhere in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: 'Native coin + token balances valued in USD, read from the Sentio portfolio API.' That scope is concrete enough for an agent to know it returns balance figures, not history or DeFi positions. It never explicitly names the sibling it should be preferred over (get_portfolio_value, get_token_balance_history), so separation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit invocation recipes — 'Pass address + one chain', 'address alone for every chain', 'no arguments for every wallet address you track' — and directional advice such as 'For one wallet's current state, ask for it by address' and 'retry later or ask for fewer chains'. It stops short of routing the agent to a sibling tool for any scenario, which keeps it out of 5 territory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.