Skip to main content

Overview

Aggregates token balances across all Cronos chains (EVM, zkEVM, and POS) for a given address. Tool Name: get_unified_portfolio

Parameters

address
string
required
Wallet address in EVM format (0x…) or Bech32 format (cro1…)

Response

Returns a unified portfolio with balances across all chains:
{
  "address": {
    "evm": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0",
    "bech32": "cro1wsknttrxv0q4y4jh3hj4ulg0avgraa4s..."
  },
  "timestamp": "2026-01-23T03:11:54.000Z",
  "total_value_cro": "1234.5678",
  "chains": [
    {
      "name": "Cronos EVM",
      "chain_id": "25",
      "native_balance": {
        "denom": "CRO",
        "amount": "500.0000",
        "decimals": 18
      },
      "tokens": [
        {
          "symbol": "USDC",
          "contract_address": "0xc21223249CA28397B4B6541dfFaEcC539BfF0c59",
          "balance": "1000.000000",
          "decimals": 6,
          "value_cro": null
        }
      ],
      "ibc_tokens": []
    },
    {
      "name": "Cronos zkEVM",
      "chain_id": "388",
      "native_balance": {
        "denom": "zkCRO",
        "amount": "234.5678",
        "decimals": 18
      },
      "tokens": [],
      "ibc_tokens": []
    },
    {
      "name": "Cronos POS",
      "chain_id": "cronos_25-1",
      "native_balance": {
        "denom": "basecro",
        "amount": "500.0000",
        "decimals": 18
      },
      "tokens": [],
      "ibc_tokens": [
        {
          "denom": "ibc/...",
          "symbol": "ATOM",
          "amount": "10.5"
        }
      ]
    }
  ],
  "warnings": ["Optional warnings if any chain failed"]
}

Features

Auto-detection

Automatically detects and converts address formats (EVM ↔ Bech32)

Parallel Queries

Queries all chains simultaneously for fast results

Graceful Degradation

Returns partial data if any chain fails

Top Tokens

Includes top 5 ERC-20 tokens by TVL
Timeout: 5-second timeout per chain for optimal performance

Example Usage

Python (Claude Desktop / MCP Client)

result = use_mcp_tool(
    server_name="cato",
    tool_name="get_unified_portfolio",
    arguments={
        "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0"
    }
)

Natural Language Query

Simply ask Claude:
"What tokens does 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0 hold on Cronos?"

"Show me the portfolio for cro1wsknttrxv0q4y4jh3hj4ulg0avgraa4s..."

"Which chain has the most CRO for this address: 0x123..."

Response Fields

Address Object

FieldTypeDescription
evmstringEVM format address (0x…)
bech32stringBech32 format address (cro1…)

Chain Object

FieldTypeDescription
namestringChain name (e.g., “Cronos EVM”)
chain_idstringChain ID
native_balanceobjectNative token balance
tokensarrayERC-20 token balances
ibc_tokensarrayIBC token balances (POS chain only)

Token Object

FieldTypeDescription
symbolstringToken symbol
contract_addressstringToken contract address
balancestringToken balance (formatted)
decimalsnumberToken decimals
value_crostring | nullValue in CRO (if available)

Use Cases

Track all your assets across Cronos chains in a single query. Perfect for portfolio management apps or personal tracking.
Analyze token distribution and identify opportunities for consolidation or yield optimization.
Display comprehensive balance information in wallets or DApp interfaces.
Gather all holdings for tax reporting and accounting purposes.

Error Handling

Invalid Address Format

{
  "content": [
    {
      "type": "text",
      "text": "{\"error\": \"Invalid address format\"}"
    }
  ],
  "isError": true
}
Solution: Ensure address matches either:
  • EVM format: 0x followed by 40 hex characters
  • Bech32 format: cro1 followed by valid bech32 characters

RPC Timeout

If a chain query times out, the response will include:
  • Data from successful chains
  • Warning message in the warnings array

find_best_yield

Find yield opportunities for your tokens

Transaction History

View historical transactions