Skip to main content
GET
/
v1
/
wallets
/
{address}
/
positions
Get wallet fungible positions
curl --request GET \
  --url https://api.zerion.io/v1/wallets/{address}/positions/ \
  --header 'Authorization: Basic <encoded-value>'
{
  "links": {
    "self": "https://api.zerion.io/v1/wallets/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990/positions/"
  },
  "data": [
    {
      "type": "positions",
      "id": "0x111c47865ade3b172a928df8f990bc7f2a3b9aaa-polygon-asset-none-",
      "attributes": {
        "name": "Asset",
        "quantity": {
          "int": "12345678",
          "decimals": 5,
          "float": 123.45678,
          "numeric": "123.45678"
        },
        "parent": "0x111c47865ade3b172a928df8f990bc7f2a3b9aaa-polygon-asset-none-",
        "protocol": "<string>",
        "protocol_module": "lending",
        "pool_address": "0x109830a1aaad605bbf02a9dfa7b0b92ec2fb7daa",
        "group_id": "0a771a0064dad468045899032c7fb01a971f973f7dff0a5cdc3ce199f45e94d7",
        "position_type": "deposit",
        "value": 5.384656557642683,
        "price": 0.043615722,
        "changes": {
          "absolute_1d": 0.272309794,
          "percent_1d": 5.326512552079021
        },
        "fungible_info": {
          "name": "Bankless BED Index",
          "symbol": "BED",
          "icon": {
            "url": "https://token-icons.s3.amazonaws.com/0x0391d2021f89dc339f60fff84546ea23e337750f.png"
          },
          "flags": {
            "verified": true
          },
          "implementations": [
            {
              "chain_id": "ethereum",
              "decimals": 18,
              "address": "0x2af1df3ab0ab157e1e2ad8f88a7d04fbea0c7dc6"
            }
          ],
          "id": "0230395c-2b01-46d8-b2d6-ce8121d51f9e",
          "description": "The BED index is meant to track crypto’s top 3 investab.",
          "market_data": {
            "price": 106.87952669793131,
            "total_supply": 29905.762448515918,
            "circulating_supply": 29905.762448515918,
            "fully_diluted_valuation": 3196313.736038149,
            "market_cap": 3196313.736038149,
            "changes": {
              "percent_1d": -0.7379066649086338,
              "percent_30d": -2.499465618806962,
              "percent_90d": 11.316340269371775,
              "percent_365d": null
            },
            "trading_volumes": {
              "volume_1d": 40096375.69294812
            }
          }
        },
        "flags": {
          "displayable": true,
          "is_trash": true
        },
        "updated_at": "2023-11-10T23:00:00Z",
        "updated_at_block": 123,
        "application_metadata": {
          "name": "AAVE",
          "icon": {
            "url": "https://token-icons.s3.amazonaws.com/0x0391d2021f89dc339f60fff84546ea23e337750f.png"
          },
          "url": "https://app.aave.com/"
        }
      },
      "relationships": {
        "chain": {
          "links": {
            "related": "https://api.zerion.io/v1/chains/polygon"
          },
          "data": {
            "type": "chains",
            "id": "polygon"
          }
        },
        "fungible": {
          "links": {
            "related": "https://api.zerion.io/v1/fungibles/0x111c47865ade3b172a928df8f990bc7f2a3b9aaa"
          },
          "data": {
            "type": "fungibles",
            "id": "0x111c47865ade3b172a928df8f990bc7f2a3b9aaa"
          }
        },
        "dapp": {
          "data": {
            "type": "dapps",
            "id": "aave-v3"
          }
        }
      }
    }
  ]
}

Authorizations

Authorization
string
header
required

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Headers

X-Env
enum<string>

Custom header that allows you to get data for testnets.

Available options:
testnet

Path Parameters

address
required

The web3 wallet address A wallet address, which can be either an EVM or Solana address

Pattern: ^0x[a-fA-F0-9]{40}$
Example:

"0x42b9df65b219b3dd36ff330a4dd8f327a6ada990"

Query Parameters

filter[positions]
enum<string>
default:only_simple

This parameter allows users to filter DeFi positions based on their types. There are three options:

  • only_simple: Retrieves exclusively wallet-type positions. These are basic, non-protocol related positions. This option is applied if parameter is not specified.
  • only_complex: Fetches only positions associated with all DeFi protocols (including staked assets, liquidity pools, etc), like Uniswap or Aave. This option excludes simple wallet positions.
  • no_filter: Applies no filtering, thus returning both protocol-related and simple wallet positions.

⚠️ Note: Different pricing models are applied for enterprise usage of this API, depending on the filter type selected. For detailed pricing information, please reach out to us at api@zerion.io.

Available options:
only_simple,
only_complex,
no_filter
currency
enum<string>
default:usd

Denominated currency value of returned prices

Available options:
eth,
btc,
usd,
eur,
krw,
rub,
gbp,
aud,
cad,
inr,
jpy,
nzd,
try,
zar,
cny,
chf
filter[position_types]
(enum<string> | null)[]

Keep only positions with these types (comma-separated list).

Possible values:

  • deposit - Assets deposited into a DeFi protocol (e.g., supplied to lending pools, deposited in vaults, or provided as liquidity)
  • loan - Borrowed assets representing a debt position that needs to be repaid
  • locked - Assets locked for a specific period or purpose (e.g., vote-escrowed tokens, time-locked tokens)
  • staked - Assets staked in a protocol to earn rewards, participate in consensus, or for governance purposes
  • reward - Earned rewards that are claimable or have been distributed but not yet withdrawn
  • wallet - Regular assets held directly in the wallet, not actively deposited in any protocol
  • investment - Investment positions such as tokenized funds, indices, or structured products
Maximum array length: 8

Position's type indicating how the assets are being used or their current state.

Available options:
deposit,
loan,
locked,
staked,
reward,
wallet,
investment
filter[chain_ids]
string[]

Keep only positions from these chains (comma-separated list). Available chain ids can be found in chains endpoints.

Maximum array length: 25
Example:
["polygon"]
filter[fungible_ids]
string[]

Keep only positions related to given fungible assets (comma-separated list).

Maximum array length: 25
Maximum string length: 44
filter[dapp_ids]
string[]

Keep only positions related to these decentralized applications (dapps) (comma-separated list).

Maximum array length: 25
Required string length: 1 - 32
Example:
["polygon"]
filter[trash]
enum<string>
default:only_non_trash

Filter positions based on the is_trash flag. If no flag is specified, then only_non_trash is applied.

Available options:
only_trash,
only_non_trash,
no_filter
sort
enum<string>
default:value

Choose how the result should be ordered

Available options:
-value,
value
sync
boolean
default:false

Controls whether the endpoint should wait for position data to be ready before responding.

  • true: The endpoint will wait up to 30 seconds for position data to be aggregated before responding. If data is ready sooner, the response is returned immediately. If data is not ready within 30 seconds, a timeout error may occur.
  • false (default): The endpoint returns immediately with available position data.

NOTE: When using sync=true, be prepared to handle longer response times (up to 30 seconds). Ensure your client timeout settings accommodate this duration.

Response

Response for requested list of positions

data
object[]
required