Skip to main content
POST
/
api
/
v1
/
developer
/
wallet
/
positions
Wallet DeFi Positions
curl --request POST \
  --url https://api.allium.so/api/v1/developer/wallet/positions \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
[
  {
    "chain": "solana",
    "address": "125Z6k4ZAxsgdG7JxrKZpwbcS1rxqpAeqM9GSCKd66Wp"
  }
]
'
{
  "items": [
    {
      "address": "0xab16781a13fe343a275f4bb5c883a64ceda52917",
      "chain": "ethereum",
      "fee_tier": "500",
      "in_range": true,
      "pool_address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
      "position_id": "uniswap_v3-ethereum-637818",
      "position_type": "LP",
      "protocol": "uniswap_v3",
      "token0": {
        "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
        "chain": "ethereum",
        "decimals": 6,
        "info": {
          "name": "USD Coin",
          "symbol": "USDC"
        },
        "object": "token",
        "type": "evm_erc20"
      },
      "token0_amount": "2100.543210",
      "token0_amount_usd": "2100.54",
      "token1": {
        "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
        "chain": "ethereum",
        "decimals": 18,
        "info": {
          "name": "Wrapped Ether",
          "symbol": "WETH"
        },
        "object": "token",
        "type": "evm_erc20"
      },
      "token1_amount": "1.234567890123456789",
      "token1_amount_usd": "2421.33",
      "total_value_usd": "4521.87",
      "unclaimed_fees_token0": "3.210000",
      "unclaimed_fees_token1": "0.001234567890123456",
      "unclaimed_fees_usd": "5.63"
    }
  ],
  "cursor": "<string>",
  "total": 123
}

Position Types

The response contains a flat array of positions in items. Each position has a position_type discriminator:
  • LP — Liquidity pool positions (Uniswap V2/V3/V4, PancakeSwap V3, Raydium CLMM, Meteora DLMM)
  • lending — Lending/borrowing positions (Aave V3, Compound V3)
  • staked — Staking positions (Lido, Hyperliquid, etc.)
  • regular — Simple token holdings (Solana balances, Hyperliquid spot)
  • perps — Perpetual futures positions (Hyperliquid)

Supported Chains

ChainChain IDStatus
ArbitrumArbitrumarbitrum✅ Live
AvalancheAvalancheavalanche✅ Live
BaseBasebase✅ Live
BlastBlastblast✅ Live
BSCBSCbsc✅ Live
CeloCelocelo✅ Live
EthereumEthereumethereum✅ Live
HyperliquidHyperliquidhyperliquid✅ Live
MegaETHMegaETHmegaeth✅ Live
MonadMonadmonad✅ Live
OptimismOptimismoptimism✅ Live
PlasmaPlasmaplasma✅ Live
PolygonPolygonpolygon✅ Live
SolanaSolanasolana✅ Live
SoneiumSoneiumsoneium✅ Live
UnichainUnichainunichain✅ Live
World ChainWorld Chainworldchain✅ Live
X LayerX Layerx_layer✅ Live
zkSynczkSynczksync✅ Live
ZoraZorazora✅ Live

Important Notes

  • USD value fields (total_value_usd, token0_amount_usd, staked_amount_usd, etc.) may return null when price data is temporarily unavailable
  • Positions are sorted by type priority (lending > LP > staked > regular), then by USD value descending
  • Each entry in the request array is an address/chain pair — to query the same address on multiple chains, include separate entries for each chain
  • Use the returned cursor query parameter to paginate through large result sets

Authorizations

X-API-KEY
string
header
required

Query Parameters

limit
integer
default:25

Max number of positions returned. Default is 25.

Required range: x <= 100
cursor
string

Cursor to request the next page of results.

Body

application/json
Required array length: 1 - 5 elements
chain
string
required

Lowercase chain name

address
string
required

Wallet address

Response

Successful Response

Response envelope for wallet positions with pagination support.

items
(LPPosition · object | LendingPosition · object | StakedPosition · object | PerpPosition · object | RegularPosition · object)[]
required

List of DeFi positions across all requested wallets

Liquidity provider position (e.g., Uniswap V3, Raydium CLMM, Meteora DLMM). Concentrated or standard AMM positions.

Example:
{
  "address": "0xab16781a13fe343a275f4bb5c883a64ceda52917",
  "chain": "ethereum",
  "fee_tier": "500",
  "in_range": true,
  "pool_address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
  "position_id": "uniswap_v3-ethereum-637818",
  "position_type": "LP",
  "protocol": "uniswap_v3",
  "token0": {
    "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "chain": "ethereum",
    "decimals": 6,
    "info": { "name": "USD Coin", "symbol": "USDC" },
    "object": "token",
    "type": "evm_erc20"
  },
  "token0_amount": "2100.543210",
  "token0_amount_usd": "2100.54",
  "token1": {
    "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "chain": "ethereum",
    "decimals": 18,
    "info": { "name": "Wrapped Ether", "symbol": "WETH" },
    "object": "token",
    "type": "evm_erc20"
  },
  "token1_amount": "1.234567890123456789",
  "token1_amount_usd": "2421.33",
  "total_value_usd": "4521.87",
  "unclaimed_fees_token0": "3.210000",
  "unclaimed_fees_token1": "0.001234567890123456",
  "unclaimed_fees_usd": "5.63"
}
cursor
string | null

Pagination cursor for the next page of results

total
integer | null

Total number of positions across all pages