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

# Get wallet balance chart

> This endpoint returns a portfolio balance chart for a wallet.
This is over a specified time period, based on the provided start and end timestamps.
Results can be filtered by blockchain and asset type, offering flexible and detailed visualizations of wallet performance, similar to what you see in the Zerion interface.

**Complex positions.** By default the chart counts only simple positions: token and native-coin balances held directly in the wallet. Set `filter[positions]` to `only_complex` or `no_filter` to also include complex DeFi protocol positions. Uniswap V2 LP positions are supported today, and support for more protocols is rolling out over time. Positions from protocols that aren't yet supported are omitted from the chart.




## OpenAPI

````yaml /openapi-v1.yaml get /v1/wallets/{address}/charts/{chart_period}
openapi: 3.0.3
info:
  version: 1.0.0
  title: REST API
  description: REST-like API provides access to rich Zerion ecosystem.
  contact:
    name: Zerion API
    url: https://developers.zerion.io/
    email: api@zerion.io
servers:
  - description: Production API
    url: https://api.zerion.io
security:
  - APIKeyBasicAuth: []
tags:
  - name: wallets
    description: >-
      Operations related to wallets, such as portfolio charts, positions, and
      transactions.
  - name: wallet sets
    description: >-
      Operations on a wallet set — aggregated portfolio data across at most one
      EVM address and one Solana address queried together.
  - name: fungibles
    description: >-
      Operations related to fungible assets, such as list them all, search or
      get by ID.
  - name: chains
    description: Operations related to chains, such as list all chains.
  - name: swap
    description: Operations related to swapping and bridging assets.
  - name: gas
    description: Operations related to gas.
  - name: nfts
    description: >-
      Operations related to non fungible assets, such list them, search or get
      by ID.
  - name: dapps
    description: >-
      Operations related to decentralized applications, such as list them all,
      search or get by ID.
  - name: subscriptions to transactions
    description: Operations related to subscriptions to transactions.
paths:
  /v1/wallets/{address}/charts/{chart_period}:
    get:
      tags:
        - wallets
      summary: Get wallet balance chart
      description: >
        This endpoint returns a portfolio balance chart for a wallet.

        This is over a specified time period, based on the provided start and
        end timestamps.

        Results can be filtered by blockchain and asset type, offering flexible
        and detailed visualizations of wallet performance, similar to what you
        see in the Zerion interface.


        **Complex positions.** By default the chart counts only simple
        positions: token and native-coin balances held directly in the wallet.
        Set `filter[positions]` to `only_complex` or `no_filter` to also include
        complex DeFi protocol positions. Uniswap V2 LP positions are supported
        today, and support for more protocols is rolling out over time.
        Positions from protocols that aren't yet supported are omitted from the
        chart.
      operationId: getWalletChart
      parameters:
        - $ref: '#/components/parameters/ChartPeriod'
        - $ref: '#/components/parameters/Currency'
        - $ref: '#/components/parameters/WalletAddress'
        - name: filter[chain_ids]
          in: query
          style: form
          explode: false
          description: >-
            Account only for balance on these chains (comma-separated list).
            Available chain ids can be found in chains endpoints.
          schema:
            type: array
            example:
              - aurora
            maxItems: 25
            items:
              type: string
        - name: filter[fungible_ids]
          in: query
          style: form
          explode: false
          description: >-
            Account only for balance of given fungible assets (comma-separated
            list). Mutually exclusive with `filter[exclude_fungible_ids]` —
            combining both returns `400`.
          schema:
            type: array
            maxItems: 25
            items:
              type: string
              maxLength: 44
        - name: filter[exclude_fungible_ids]
          in: query
          style: form
          explode: false
          description: >-
            Exclude balance contributions from the given fungible assets
            (comma-separated list). Useful when the set you want to keep is
            large but the set you want to omit is small. Mutually exclusive with
            `filter[fungible_ids]` — combining both returns `400`.
          schema:
            type: array
            maxItems: 25
            items:
              type: string
              maxLength: 44
        - name: filter[positions]
          in: query
          style: form
          explode: false
          description: >
            Which positions to include in the balance chart.

            - `only_simple` (default) — simple positions only: wallet token and
            native-coin balances.

            - `only_complex` — complex DeFi protocol positions only (e.g.
            liquidity-pool and vault positions).

            - `no_filter` — include both simple and complex positions.


            Uniswap V2 LP positions are supported today, and support for more
            protocols is rolling out over time.
          schema:
            type: string
            default: only_simple
            enum:
              - only_simple
              - only_complex
              - no_filter
      responses:
        '200':
          $ref: '#/components/responses/ChartsResponse'
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  parameters:
    ChartPeriod:
      name: chart_period
      in: path
      required: true
      description: >
        Chart period. Determines both the time window covered and the spacing

        between chart points (`points`). Each period samples the window at a
        fixed

        interval, so the number of points is roughly constant (~290–460)
        regardless

        of period:


        | Period     | Point interval | Time window         |

        | ---------- | -------------- | ------------------- |

        | `hour`     | 10 seconds     | last 1 hour         |

        | `day`      | 5 minutes      | last 24 hours       |

        | `week`     | 30 minutes     | last 7 days         |

        | `month`    | 2 hours        | last 30 days        |

        | `3months`  | 6 hours        | last 90 days        |

        | `6months`  | 12 hours       | last 180 days       |

        | `year`     | 1 day          | last 365 days       |

        | `5years`   | 4 days         | last 5 years        |

        | `max`      | varies         | full available history |


        Point counts are approximate, and `begin_at` / `end_at` are aligned to
        the

        interval. For `max`, the interval is derived from the amount of
        available

        history (targeting ~400 points), so it varies; for wallet and wallet-set

        charts the spacing is at least 1 day.
      schema:
        type: string
        minLength: 3
        maxLength: 7
        default: day
        enum:
          - hour
          - day
          - week
          - month
          - 3months
          - 6months
          - year
          - 5years
          - max
    Currency:
      name: currency
      in: query
      required: false
      description: Denominated currency value of returned prices
      schema:
        type: string
        default: usd
        enum:
          - eth
          - btc
          - usd
          - eur
          - krw
          - rub
          - gbp
          - aud
          - cad
          - inr
          - jpy
          - nzd
          - try
          - zar
          - cny
          - chf
    WalletAddress:
      name: address
      in: path
      required: true
      description: >-
        The web3 wallet address. Must be a valid EVM or Solana address. Returns
        400 if the address is not tracked by Zerion.
      example: '0x42b9df65b219b3dd36ff330a4dd8f327a6ada990'
      schema:
        $ref: '#/components/schemas/WalletAddress'
  responses:
    ChartsResponse:
      description: Resource for the requested wallet chart
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Response'
    MalformedParameters:
      description: Parameters are malformed
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  type: object
                  properties:
                    title:
                      type: string
                      description: Error short title
                      example: Parameter is malformed
                    detail:
                      type: string
                      description: Long description of the error
                      example: Some validation errors will be described here
    UnauthenticatedError:
      description: Unathenticated request
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  type: object
                  properties:
                    title:
                      type: string
                      description: Error short title
                      example: Unauthorized Error
                    detail:
                      type: string
                      description: Long description of the error
                      example: >-
                        The API key is invalid, please, make sure that you are
                        using a valid key
    TooManyRequests:
      description: Too many requests error
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  type: object
                  properties:
                    title:
                      type: string
                      description: Error short title
                      example: Too many requests
                    detail:
                      type: string
                      description: Long description of the error
                      example: Your request had been throttled
  schemas:
    WalletAddress:
      oneOf:
        - $ref: '#/components/schemas/EVMAddress'
        - $ref: '#/components/schemas/SolanaAddress'
      description: A wallet address, which can be either an EVM or Solana address
    Response:
      type: object
      required:
        - links
        - data
      properties:
        links:
          $ref: '#/components/schemas/ResponseLinks'
        data:
          $ref: '#/components/schemas/Container'
    EVMAddress:
      type: string
      description: Ethereum-compatible address (EVM).
      pattern: ^0x[a-fA-F0-9]{40}$
      example: '0x42b9df65b219b3dd36ff330a4dd8f327a6ada990'
    SolanaAddress:
      type: string
      description: Solana address
      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
      example: 8BH9pjtgyZDC4iAQH5ZiYDZ1MDWC98xki2V8NzqqKW3K
    ResponseLinks:
      type: object
      properties:
        self:
          type: string
          format: url
          example: >-
            https://api.zerion.io/v1/wallets/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990/charts/day
    Container:
      type: object
      required:
        - type
        - id
      properties:
        type:
          type: string
          description: Resource type
          enum:
            - wallet_chart
        id:
          type: string
          description: Wallet chart unique identifier
          example: 0x42b9df65b219b3dd36ff330a4dd8f327a6ada990-day
        attributes:
          $ref: '#/components/schemas/Attributes'
    Attributes:
      type: object
      required:
        - begin_at
        - end_at
      properties:
        begin_at:
          type: string
          description: Begin timestamp of the chart
          example: '2023-01-18T11:00:00Z'
        end_at:
          type: string
          description: End timestamp of the chart
          example: '2023-01-25T10:30:00Z'
        points:
          type: array
          description: >-
            Sorted list of chart points. The spacing between points depends on
            `chart_period` — see that parameter for the per-period interval.
          items:
            type: array
            description: >-
              Chart point - tuple of two items, the first one is timestamp, the
              second one is a balance in requested currency
            items:
              oneOf:
                - type: integer
                - type: number
            minItems: 2
            maxItems: 2
            example:
              - 1674039600
              - 1145.00999
  securitySchemes:
    APIKeyBasicAuth:
      type: http
      scheme: basic
      description: >-
        To test endpoints here, paste your API key from the
        [dashboard](https://dashboard.zerion.io/) into the username field and
        leave the password empty.

````