---
title: "Get wallet set fungible positions"
method: GET
path: "/v1/wallet-sets/positions/"
tags: ["wallet sets"]
---

# Get wallet set fungible positions

`GET /v1/wallet-sets/positions/`

This endpoint returns a list of wallet set positions.
A wallet set is represented by an EVM address, a Solana address, or both. At least one address must be provided.

This endpoint supports testnets. To get data for testnets use `X-Env` header.

**Understanding Liquidity Pool Positions:**

Liquidity pools (Uniswap, Curve, Balancer, etc.) return **multiple positions** - one for each token in the pool. Positions belonging to the same pool share the same `group_id` value in attributes.

For example, a Uniswap V2 USDC/WETH pool returns two positions:
- Position 1: WETH token, `group_id="820ee2f1ca8ccb716f6beb5e450908a028be890ec44aba87c739b416ef41e197"`, `fungible_info.symbol="WETH"`
- Position 2: USDC token, `group_id="820ee2f1ca8ccb716f6beb5e450908a028be890ec44aba87c739b416ef41e197"`, `fungible_info.symbol="USDC"`

To display all tokens in a liquidity pool together, group positions by their `group_id` attribute.

**Temporary limitations for Solana addresses:**
- Doesn't support protocol positions

> NOTE: Don't forget to stop retries after some reasonable period of time. If the `200` status is not returned within 2 minutes it most probably means that some unexpected error occurred and the client should stop the polling.

> NOTE: This endpoint is not paginated and returns all matching positions in a single response. It supports a lot of filters and sorting parameters, so make sure that a request URL length is in a safe range for your platform. Usually, 2000 characters are the safe limit in virtually any combination of client and server software.

> NOTE: Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions. There is a non-zero probability that IDs may change in the future, and this should not result in any breaking changes.

## Query parameters

- `addresses` string[], required
- `filter[positions]` 'only_simple' | 'only_complex' | 'no_filter'
- `currency` 'eth' | 'btc' | 'usd' | 'eur' | 'krw' | 'rub' | 'gbp' | 'aud' | 'cad' | 'inr' | 'jpy' | 'nzd' | 'try' | 'zar' | 'cny' | 'chf'
- `filter[position_types]` PositionType[]
- `filter[chain_ids]` string[]
- `filter[fungible_ids]` string[]
- `filter[dapp_ids]` string[]
- `filter[trash]` 'only_trash' | 'only_non_trash' | 'no_filter'
- `sort` '-value' | 'value'

## Headers

- `X-Env` 'testnet'

## Response `200`

Response for requested list of positions

- Response10
  - `links` ResponseLinks10, required
    - `self` string, url, required
  - `data` Container3[], required
    - `type` 'positions', required — Resource type
    - `id` string, required — Position's unique id
    - `attributes` Attributes4, required
      - `parent` string, nullable — Id of parent position
      - `protocol` string, nullable — Protocol which the position is belong to.
      - `protocol_module` string — The specific module or functionality within a DeFi protocol where this position is held. This categorizes the type of protocol interaction. Possible values and their meanings: - `deposit` - Generic deposit module for protocols with simple deposit functionality - `lending` - Lending and borrowing protocols (e.g., Aave, Compound) where users can supply or borrow assets - `yield` - Yield optimization and aggregator protocols (e.g., Yearn Finance) that automatically maximize returns - `liquidity_pool` - Automated Market Maker (AMM) liquidity pools (e.g., Uniswap, Curve) where users provide liquidity for trading - `staked` - Staking modules where assets are staked for rewards, governance, or network security - `leveraged_farming` - Leveraged yield farming protocols (e.g., Alpaca Finance) that enable leveraged positions on farms - `nft_staked` - NFT staking modules where NFTs are staked to earn rewards - `farming` - Yield farming and reward distribution modules (e.g., liquidity mining programs) - `locked` - Token locking mechanisms such as vote-escrowed (ve) tokens or time-locked positions - `vesting` - Token vesting schedules for team allocations, investor tokens, or earned rewards - `rewards` - Unclaimed rewards modules representing rewards that have been earned but not yet claimed - `investment` - Investment product modules such as tokenized funds, indices, or structured investment vehicles
      - `pool_address` string — Address of the pool the position belongs to if applicable
      - `name` string, required — Human readable position name
      - `group_id` string — Unique ID which could be used to group position within DApp naturally for convenience of users. For example for UniswapV2 it is grouping by specific pool.
      - `position_type` 'deposit' | 'loan' | 'locked' | 'staked' | 'reward' | 'wallet' | 'investment', nullable — Position's type indicating how the assets are being used or their current state.
      - `quantity` Quantity, required
        - `int` string, required — Objective on-chain raw amount in base units. Use this value for building on-chain transactions.
        - `decimals` integer, required — Decimal number precision of the quantity - digits after the floating point.
        - `float` number, float, required — Ready-to-display value = int / 10^decimals. For Token-2022 ScaledUiAmount assets (a small subset of Solana tokens), the display value is int × multiplier / 10^decimals.
        - `numeric` string, required — Ready-to-display value = int / 10^decimals. For Token-2022 ScaledUiAmount assets (a small subset of Solana tokens), the display value is int × multiplier / 10^decimals.
      - `value` number, float, nullable — Position value in requested currency
      - `price` number, float — Price of position's asset
      - `changes` Change2 — Position changes
        - `absolute_1d` number, float, required — Daily absolute position change value
        - `percent_1d` number, float, required — Daily position change percent
      - `fungible_info` Info
        - `id` string — Unique identifier of the fungible asset.
        - `name` string, required — Displayable name of the fungible fungible.
        - `symbol` string, required — Displayable symbol of the fungible fungible.
        - `description` string, nullable — Brief description of the fungible. Currently available at transaction callback notifications only.
        - `icon` Icon, required — Icon related to object.
          - `url` string, url, nullable — URL of the icon.
        - `flags` Flags, required
          - `verified` boolean, required — Whether this fungible verified or not
        - `implementations` Implementation[], required — Implementation details of the fungible on various chains.
          - `chain_id` string, required — Unique id of the chain.
          - `address` string — Implementation address on the chain.
          - `decimals` integer, required — Number of decimals points of the implementation.
        - `market_data` MarketData
          - `total_supply` number, double — Total market supply of fungible
          - `circulating_supply` number, double — Circulating value of fungible
          - `fully_diluted_valuation` number, double — Total market capitalization of fungible in selected currency
          - `market_cap` number, double — Circulating market capitalization of fungible in selected currency
          - `price` number, double, nullable, required — Latest fungible price
          - `changes` MarketDataChanges
            - `percent_1d` number, double, nullable — Price relative change in percent for 1 day
            - `percent_30d` number, double, nullable — Price relative change in percent for 30 days
            - `percent_90d` number, double, nullable — Price relative change in percent for 90 days
            - `percent_365d` number, double, nullable — Price relative change in percent for 1 year
          - `trading_volumes` TradingVolumes
            - `volume_1d` number, double — Trading volume over the last 24 hours in the selected currency.
      - `flags` Flags2
        - `displayable` boolean, required — Whether this position should be displayable and calculated in the wallet or not
        - `is_trash` boolean — Is the position classified by Zerion as trash.
      - `updated_at` string — ISO-8601 timestamp the position was updated at. The field indicates when our service last checked and updated the balance. This update typically occurs immediately after any event causing a change in position.
      - `updated_at_block` integer — Number of the block of the position
      - `application_metadata` DAppInfo
        - `name` string — Human readable representation of DApp. That offers more intuitive understanding for users. Note: only available for positions within protocols.
        - `icon` Icon — Icon related to object.
          - `url` string, url, nullable — URL of the icon.
        - `url` string, url — URL of the DApp the position relates to.
      - `receipt` Receipt — Token representing a DeFi position.
        - `fungible_info` Info
          - `id` string — Unique identifier of the fungible asset.
          - `name` string, required — Displayable name of the fungible fungible.
          - `symbol` string, required — Displayable symbol of the fungible fungible.
          - `description` string, nullable — Brief description of the fungible. Currently available at transaction callback notifications only.
          - `icon` Icon, required — Icon related to object.
            - `url` string, url, nullable — URL of the icon.
          - `flags` Flags, required
            - `verified` boolean, required — Whether this fungible verified or not
          - `implementations` Implementation[], required — Implementation details of the fungible on various chains.
            - `chain_id` string, required — Unique id of the chain.
            - `address` string — Implementation address on the chain.
            - `decimals` integer, required — Number of decimals points of the implementation.
          - `market_data` MarketData
            - `total_supply` number, double — Total market supply of fungible
            - `circulating_supply` number, double — Circulating value of fungible
            - `fully_diluted_valuation` number, double — Total market capitalization of fungible in selected currency
            - `market_cap` number, double — Circulating market capitalization of fungible in selected currency
            - `price` number, double, nullable, required — Latest fungible price
            - `changes` MarketDataChanges
              - …
            - `trading_volumes` TradingVolumes
              - …
    - `relationships` Relationships
      - `chain` Relationship, required
        - `links` RelationshipLinks, required
          - `related` string, url, required — URL to the current chain.
        - `data` ContainerShort, required
          - `type` string, required — Chain resource type.
          - `id` string, required — Chain unique identifier.
      - `fungible` object, required
        - `links` object, required
          - `related` string, url, required
        - `data` object, required
          - `type` string, required
          - `id` string, required
      - `dapp` Relationship2
        - `data` ContainerShort2, required
          - `type` string, required — Decentralized application resource type.
          - `id` string, required — Decentralized application ID

## Other responses

- `400` — Parameters are malformed
- `401` — Unathenticated request
- `429` — Too many requests error

---

[API](https://skmtc.dev/zerion/apis/rest-api.md) · [All operations](https://skmtc.dev/zerion/apis/rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/zerion/rest-api/revisions/2ef116ef914f/schema)
