> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coinvoyage.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Wallet Portfolio

> Scan a wallet's tokens with balances and USD values across the given chains.



## OpenAPI

````yaml https://api.coinvoyage.io/v3/openapi.json post /wallet/portfolio
openapi: 3.1.0
info:
  title: CoinVoyage API (v3)
  description: >-
    CoinVoyage v3 payment API. Unified Intent envelope, snake_case money via the
    Amount shape, and a single SHA-256 signature scheme.
  version: 3.0.0
servers:
  - url: https://api.coinvoyage.io/v3
security: []
paths:
  /wallet/portfolio:
    post:
      tags:
        - wallet
      summary: Wallet Portfolio
      description: >-
        Scan a wallet's tokens with balances and USD values across the given
        chains.
      operationId: v3WalletPortfolio
      parameters:
        - description: API key for authentication
          in: header
          name: X-API-KEY
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PortfolioRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PortfolioResponse'
          description: Portfolio scan succeeded
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Invalid request body
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      security:
        - APIKeyHeader: []
components:
  schemas:
    PortfolioRequest:
      example:
        filter:
          min_balance_usd: 1
        force_refresh: false
        wallet:
          address: 0x1234...abcd
          chain_ids:
            - 1
            - 8453
            - 137
          chain_type: EVM
      properties:
        wallet:
          $ref: '#/components/schemas/Wallet'
        filter:
          anyOf:
            - $ref: '#/components/schemas/PortfolioFilter'
            - type: 'null'
        force_refresh:
          example: false
          type: boolean
      required:
        - wallet
      type: object
    PortfolioResponse:
      example:
        chain_type: EVM
        currencies:
          - balance:
              raw: '100000000'
              ui: '100.0'
              value_usd: 100
            currency:
              address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
              chain_id: 1
              decimals: 6
              id: 1:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
              name: USD Coin
              price_usd: 1
              symbol: USDC
        wallet_address: 0x1234...abcd
      properties:
        wallet_address:
          example: 0x1234...abcd
          type: string
        chain_type:
          $ref: '#/components/schemas/ChainType'
          example: EVM
        scanned_at:
          format: date-time
          type: string
        expires_at:
          format: date-time
          type: string
        currencies:
          items:
            $ref: '#/components/schemas/PortfolioHolding'
          type: array
      required:
        - wallet_address
        - chain_type
        - scanned_at
        - expires_at
        - currencies
      type: object
    ErrorResponse:
      example:
        code: 400
        error: Bad Request
        message: Invalid request parameters
      properties:
        error:
          example: Bad Request
          type: string
        message:
          example: Invalid request parameters
          type: string
        code:
          example: 400
          format: int64
          type: integer
        details:
          anyOf:
            - type: string
            - type: number
            - type: object
      required:
        - error
        - message
        - code
      type: object
    Wallet:
      example:
        address: 0x1234...abcd
        chain_ids:
          - 1
          - 8453
          - 137
        chain_type: EVM
      properties:
        address:
          example: 0x1234...abcd
          type: string
        chain_type:
          $ref: '#/components/schemas/ChainType'
          example: EVM
        chain_ids:
          example:
            - 1
            - 8453
            - 137
          items:
            $ref: '#/components/schemas/ChainID'
          type: array
      required:
        - address
        - chain_type
      type: object
    PortfolioFilter:
      example:
        min_balance_usd: 1
      properties:
        min_balance_usd:
          example: 1
          type:
            - number
            - 'null'
      type: object
    ChainType:
      enum:
        - EVM
        - SOL
        - SUI
        - UTXO
      type: string
    PortfolioHolding:
      example:
        balance:
          raw: '100000000'
          ui: '100.0'
          value_usd: 100
        currency:
          address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
          chain_id: 1
          decimals: 6
          id: 1:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
          name: USD Coin
          price_usd: 1
          symbol: USDC
      properties:
        currency:
          $ref: '#/components/schemas/CurrencyView'
        balance:
          $ref: '#/components/schemas/Amount'
      required:
        - currency
        - balance
      type: object
    ChainID:
      enum:
        - 1
        - 10
        - 56
        - 137
        - 8453
        - 42161
        - 20000000000001
        - 30000000000001
        - 30000000000002
      example: 1
      format: int64
      type: integer
    CurrencyView:
      example:
        address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
        chain_id: 1
        decimals: 6
        id: 1:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
        name: USD Coin
        price_usd: 1
        symbol: USDC
      properties:
        id:
          example: 1:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
          type: string
        chain_id:
          $ref: '#/components/schemas/ChainID'
          example: 1
        address:
          example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
          type:
            - string
            - 'null'
        symbol:
          example: USDC
          type: string
        name:
          example: USD Coin
          type: string
        decimals:
          example: 6
          format: int64
          type: integer
        image_uri:
          type:
            - string
            - 'null'
        chain_image_uri:
          type:
            - string
            - 'null'
        price_usd:
          example: 1
          type:
            - number
            - 'null'
      required:
        - id
        - chain_id
        - symbol
        - decimals
      type: object
    Amount:
      example:
        raw: '100000000'
        ui: '100.0'
        value_usd: 100
      properties:
        ui:
          example: '100.0'
          type: string
        raw:
          example: '100000000'
          type: string
        value_usd:
          example: 100
          type:
            - number
            - 'null'
      required:
        - ui
        - raw
      type: object
  securitySchemes:
    APIKeyHeader:
      in: header
      name: X-API-KEY
      type: apiKey

````