---
title: "Wallet Portfolio"
method: POST
path: "/wallet/portfolio"
tags: ["wallet"]
---

# Wallet Portfolio

`POST /wallet/portfolio`

Scan wallets with per-wallet success or error results.

## Headers

- `X-API-KEY` string, required

## Request body

- PortfolioRequest
  - `wallets` Wallet[], required
    - `address` string, required
    - `chain_type` 'EVM' | 'SOL' | 'SUI' | 'UTXO', required
    - `chain_ids` ChainID[]
  - `filter` PortfolioFilter
    - `min_balance_usd` number, nullable
  - `force_refresh` boolean

## Response `200`

Portfolio completed

- PortfolioResponse
  - `portfolio` PortfolioResult[], required
    - `wallet` Wallet, required
      - `address` string, required
      - `chain_type` 'EVM' | 'SOL' | 'SUI' | 'UTXO', required
      - `chain_ids` ChainID[]
    - `chain_type` 'EVM' | 'SOL' | 'SUI' | 'UTXO', required
    - `scanned_at` string, date-time, required
    - `expires_at` string, date-time, required
    - `currencies` PortfolioHolding[], required
      - `currency` Currency, required
        - `id` string, required
        - `chain_id` 1 | 10 | 56 | 137 | 4663 | 8453 | 42161 | 20000000000001 | 30000000000001 | 30000000000002, required
        - `address` string, nullable
        - `symbol` string, required
        - `name` string
        - `decimals` integer, required
        - `image_uri` string, nullable
        - `chain_image_uri` string, nullable
        - `price_usd` number, nullable
      - `balance` Amount, required
        - `ui` string, required
        - `raw` string, required — A big integer represented as a string to preserve precision
        - `value_usd` number, nullable
  - `errors` PortfolioError[], required
    - `wallet` Wallet, required
      - `address` string, required
      - `chain_type` 'EVM' | 'SOL' | 'SUI' | 'UTXO', required
      - `chain_ids` ChainID[]
    - `code` 'invalid_wallet' | 'unsupported_chain' | 'upstream_unavailable' | 'scan_failed', required — Per-wallet portfolio failure category.
    - `message` string, required

## Other responses

- `401` — Unauthorized
- `422` — Invalid request body
- `500` — Internal Server Error

---

[API](https://skmtc.net/coinvoyage/apis/coinvoyage-api-v3.md) · [All operations](https://skmtc.net/coinvoyage/apis/coinvoyage-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/coinvoyage/coinvoyage-api-v3/revisions/f3a3056f2c83/schema)
