> For the complete documentation index, see [llms.txt](https://docs.dapplooker.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dapplooker.com/products/api-endpoints/wallet-intelligence/wallet-positions.md).

# Wallet Positions

#### **Endpoint**

**GET** `https://api.dapplooker.com/v1/wallet-positions/{address}`

#### **Authentication**

| Method                    | Description                                                                                                       |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **API Key**               | Provide your DappLooker API key using the `api_key` query parameter for authenticated access.                     |
| **x402 Payment Protocol** | If `api_key` is not provided, the request automatically uses the x402 protocol for on-chain payment verification. |

#### **Path Parameters**

| Parameter | Type   | Mandatory | Description                           |
| --------- | ------ | --------- | ------------------------------------- |
| `address` | string | Yes       | EVM (`0x…`) or Solana wallet address. |

#### **Query Parameters**

| Parameter name           | Type    | Mandatory | Description                                                                                                                                                 |
| ------------------------ | ------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `api_key`                | string  | Yes       | Your unique DappLooker API key used for authentication. Optional if querying via x402                                                                       |
| `currency`               | string  | No        | Currency for price and value fields. Default: `usd`.                                                                                                        |
| `filter[position_types]` | string  | No        | Comma-separated position types to include. Values: `wallet`, `deposit`, `loan`, `locked`, `staked`, `reward`, `investment`.                                 |
| `filter[positions]`      | string  | No        | Scope of positions to include. Values: `only_simple` (wallet token balances), `only_complex` (DeFi protocol positions), `no_filter` (default, returns all). |
| `filter[chain_ids]`      | string  | No        | Comma-separated chain IDs to filter (e.g. `ethereum,base,arbitrum`).                                                                                        |
| `filter[fungible_ids]`   | string  | No        | Comma-separated fungible asset IDs to scope to specific tokens.                                                                                             |
| `filter[dapp_ids]`       | string  | No        | Comma-separated protocol/dapp IDs to filter positions by specific DeFi protocols.                                                                           |
| `filter[trash]`          | string  | No        | Spam filter. Values: `only_non_trash` (recommended), `only_trash`, `no_filter` (default).                                                                   |
| `sort`                   | string  | No        | Sort order by position value. Values: `value` (ascending), `-value` (descending).                                                                           |
| `sync`                   | boolean | No        | Trigger a live blockchain sync before responding. Default: `false`.                                                                                         |
| `page[after]`            | string  | No        | Pagination cursor. Use the URL from `links.next` in the previous response.                                                                                  |
| `page[size]`             | integer | No        | Results per page. Default and max: `100`.                                                                                                                   |

#### **Example Request**

bash

```bash
# All positions across all chains, no spam
curl --location 'https://api.dapplooker.com/v1/wallet-positions/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990?api_key=<API_KEY>&filter[trash]=only_non_trash'

# Token balances only on Ethereum and Base, sorted by value descending
curl --location 'https://api.dapplooker.com/v1/wallet-positions/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990?api_key=<API_KEY>&filter[position_types]=wallet&filter[chain_ids]=ethereum,base&sort=-value'

# DeFi positions only (deposits, loans, staked)
curl --location 'https://api.dapplooker.com/v1/wallet-positions/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990?api_key=<API_KEY>&filter[position_types]=deposit,loan,staked'
```

#### **Example Response**

json

```json
{
  "success": true,
  "data": [
    {
      "id": "9f323844-65e0-4b94-ab41-6bdeb952ae6d",
      "name": "ETH on Ethereum",
      "position_type": "wallet",
      "chain_id": "ethereum",
      "protocol": null,
      "protocol_module": null,
      "pool_address": null,
      "group_id": null,
      "updated_at": "2026-06-29T07:00:00.000Z",
      "updated_at_block": 22584100,
      "application_metadata": null,
      "fungible_info": {
        "id": "eth",
        "name": "Ethereum",
        "symbol": "ETH",
        "icon": {
          "url": "https://icons.dapplooker.com/tokens/eth.png"
        },
        "verified": true,
        "implementations": [
          {
            "chain_id": "ethereum",
            "address": null,
            "decimals": 18
          }
        ]
      },
      "quantity": {
        "int": "1250000000000000000",
        "decimals": 18,
        "float": 1.25,
        "numeric": "1.25"
      },
      "value": 4127.50,
      "price": 3302.00,
      "changes": {
        "absolute_1d": 98.45,
        "percent_1d": 2.44
      },
      "flags": {
        "displayable": true,
        "is_trash": false
      }
    },
    {
      "id": "a8b12cde-f349-4a91-b183-2f7d93c51a2e",
      "name": "USDC on Aave V3",
      "position_type": "deposit",
      "chain_id": "ethereum",
      "protocol": "aave-v3",
      "protocol_module": "lending",
      "pool_address": "0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2",
      "group_id": null,
      "updated_at": "2026-06-29T06:55:12.000Z",
      "updated_at_block": 22584088,
      "application_metadata": {
        "name": "Aave V3",
        "icon": {
          "url": "https://icons.dapplooker.com/protocols/aave-v3.png"
        },
        "contract_address": "0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2"
      },
      "fungible_info": {
        "id": "usdc",
        "name": "USD Coin",
        "symbol": "USDC",
        "icon": {
          "url": "https://icons.dapplooker.com/tokens/usdc.png"
        },
        "verified": true,
        "implementations": [
          {
            "chain_id": "ethereum",
            "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
            "decimals": 6
          }
        ]
      },
      "quantity": {
        "int": "500000000",
        "decimals": 6,
        "float": 500.00,
        "numeric": "500.00"
      },
      "value": 500.00,
      "price": 1.00,
      "changes": {
        "absolute_1d": 0.12,
        "percent_1d": 0.02
      },
      "flags": {
        "displayable": true,
        "is_trash": false
      }
    }
  ],
  "links": {
    "next": "https://api.dapplooker.com/v1/wallet-positions/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990?page[after]=eyJpZCI6ImE4YjEyY2RlIn0%3D"
  }
}
```

#### **Response Fields Explanation**

* `id` *(string)*: Unique position identifier.
* `name` *(string)*: Human-readable position label (e.g. "ETH on Ethereum", "USDC on Aave V3").
* `position_type` *(string)*: Category of position. Values: `wallet`, `deposit`, `loan`, `locked`, `staked`, `reward`, `investment`.
* `chain_id` *(string)*: Blockchain where this position exists (e.g. `ethereum`, `base`, `arbitrum`).
* `protocol` *(string | null)*: Protocol identifier string (e.g. `aave-v3`, `uniswap-v3`). Null for plain wallet token holdings.
* `protocol_module` *(string | null)*: Sub-module within the protocol that manages this position (e.g. `lending`, `liquidity`). Null if not applicable.
* `pool_address` *(string | null)*: On-chain pool or vault contract address for this position. Null for simple token balances.
* `group_id` *(string | null)*: Shared identifier for positions in the same liquidity pool. Group by this field to render LP token pairs together.
* `updated_at` *(string)*: ISO 8601 timestamp of the last on-chain update for this position.
* `updated_at_block` *(integer)*: Block number of the last on-chain update.
* `application_metadata` *(object | null)*: DeFi protocol context for this position. Null for plain wallet holdings.
  * `name` *(string)*: Protocol display name.
  * `icon.url` *(string)*: Protocol logo URL.
  * `contract_address` *(string)*: Protocol contract address.
* `fungible_info` *(object)*: Token metadata.
  * `id` *(string)*: Token identifier.
  * `name` *(string)*: Token full name.
  * `symbol` *(string)*: Token ticker symbol.
  * `icon.url` *(string)*: Token logo URL.
  * `verified` *(boolean)*: Whether the token is on the verified list.
  * `implementations` *(array)*: Chain + address pairs for each network where this token is deployed. `address` is null for native assets (e.g. ETH on Ethereum).
* `quantity` *(object)*: Token amount held.
  * `int` *(string)*: Raw on-chain amount in base units. Use for on-chain transaction construction.
  * `decimals` *(integer)*: Decimal precision of the token.
  * `float` *(float)*: Display-ready amount (int / 10^decimals).
  * `numeric` *(string)*: Same as `float` expressed as a string.
* `value` *(float)*: Current value of this position in the selected currency.
* `price` *(float)*: Current token price in the selected currency.
* `changes.absolute_1d` *(float)*: 24h absolute value change for this position.
* `changes.percent_1d` *(float)*: 24h percentage change for this position.
* `flags.displayable` *(boolean)*: Whether this position should be shown in standard wallet views.
* `flags.is_trash` *(boolean)*: Whether this position is classified as spam or dust.
* `links.next` *(string | null)*: Full URL for the next page of results. Null when on the last page.
