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

# Get Wallet DeFi Positions

> Retrieve DeFi positions across multiple protocols for a wallet address.

<Tip>
  This endpoint is currently in **beta**. Protocol coverage and response shape may evolve without notice until it is fully GA.
</Tip>

### Query Parameters

| Parameter | Type | Required | Description |
| - | - | - | - |
| `wallet` | string | Yes | Wallet address (EVM `0x...` format or Solana base58 format). |
| `blockchains` | string | Yes | Blockchain name or ID (e.g., `solana`, `ethereum`). |

### Step-by-Step Tutorial and Video Walkthrough

* Check out the guide: [Here](https://docs.mobula.io/guides/how-to-track-wallet-defi-positions)

### Supported Protocols

#### Solana

| Category | Protocols |
| - | - |
| Lending | Kamino, MarginFi, Solend |
| DEX (LP) | Orca, Raydium, Meteora |
| Liquid Staking | Jito, Marinade, BlazeStake, Sanctum |
| Native Staking | Solana Stake Program |
| Perps | Drift |

#### EVM (Ethereum)

| Category | Protocols |
| - | - |
| Lending | Aave V3 |
| Liquid Staking | Lido (stETH, wstETH), Ether.Fi |
| Restaking | EigenLayer |

***

### Usage Examples

* Query DeFi positions on Solana

```bash theme={null}
curl -X GET "https://api.mobula.io/api/2/wallet/defi-positions?wallet=7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs&blockchains=solana" \
  -H "Authorization: YOUR_API_KEY"
```

* Query DeFi positions on Ethereum

```bash theme={null}
curl -X GET "https://api.mobula.io/api/2/wallet/defi-positions?wallet=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&blockchains=ethereum" \
  -H "Authorization: YOUR_API_KEY"
```

***

### Response Format (Solana)

```json theme={null}
{
  "data": {
    "wallet": "6Doy9NiFN4euSrkzpbYfyZe7p3pkgERumMmvoGvDEGrP",
    "fetchedAt": "2026-01-07T13:44:48.674Z",
    "totalValueUSD": "5732.07",
    "totalDepositedUSD": "5732.07",
    "totalBorrowedUSD": "0.00",
    "totalRewardsUSD": "781.11",
    "protocols": [
      {
        "protocol": {
          "id": "orca",
          "name": "Orca",
          "url": "https://www.orca.so",
          "logo": "https://i.imgur.com/CdwWqKy.png",
          "category": "lp"
        },
        "totalValueUSD": "5389.51",
        "positions": [
          {
            "id": "orca-whirlpool-HjAfSzsb",
            "type": "liquidity",
            "name": "SOL/USDC LP",
            "valueUSD": 544.02,
            "tokens": [
              {
                "address": "So11111111111111111111111111111111111111112",
                "symbol": "SOL",
                "name": "Wrapped SOL",
                "decimals": 9,
                "amountRaw": "3804402285",
                "amountFormatted": 3.804402,
                "priceUSD": 138.1587,
                "valueUSD": 525.61
              },
              {
                "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "symbol": "USDC",
                "name": "USD Coin",
                "decimals": 6,
                "amountRaw": "0",
                "amountFormatted": 0,
                "priceUSD": 1.0002,
                "valueUSD": 0
              }
            ],
            "rewards": [
              {
                "address": "So11111111111111111111111111111111111111112",
                "symbol": "SOL",
                "name": "SOL Fees",
                "decimals": 9,
                "amountRaw": "49891954",
                "amountFormatted": 0.049892,
                "priceUSD": 138.1587,
                "valueUSD": 6.89
              },
              {
                "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "symbol": "USDC",
                "name": "USDC Fees",
                "decimals": 6,
                "amountRaw": "11513560",
                "amountFormatted": 11.51356,
                "priceUSD": 1.0002,
                "valueUSD": 11.52
              }
            ],
            "metadata": {
              "type": "liquidity",
              "poolAddress": "HJPjoWUrhoZzkNfRpHuieeFk9WcZWjwy6PBjZ81ngndJ",
              "poolName": "SOL/USDC",
              "poolType": "clmm",
              "tickLower": -14784,
              "tickUpper": -11456,
              "inRange": false
            }
          }
        ]
      },
      {
        "protocol": {
          "id": "jito",
          "name": "Jito",
          "url": "https://www.jito.network",
          "logo": "https://i.imgur.com/DlFDSQZ.png",
          "category": "liquid-staking"
        },
        "totalValueUSD": "64.86",
        "positions": [
          {
            "id": "jito-stake-jitosol-6Doy9NiF",
            "type": "stake",
            "name": "Jito Staked SOL",
            "valueUSD": 64.86,
            "tokens": [
              {
                "address": "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",
                "symbol": "JitoSOL",
                "name": "Jito Staked SOL",
                "decimals": 9,
                "amountRaw": "374736373",
                "amountFormatted": 0.374736,
                "priceUSD": 173.09,
                "valueUSD": 64.86
              }
            ],
            "metadata": {
              "type": "liquid-staking",
              "lstMint": "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",
              "lstSymbol": "JitoSOL",
              "exchangeRate": "1.254063",
              "apy": "0.0589"
            }
          }
        ]
      },
      {
        "protocol": {
          "id": "marinade",
          "name": "Marinade",
          "url": "https://marinade.finance",
          "logo": "https://i.imgur.com/dPtPylG.png",
          "category": "liquid-staking"
        },
        "totalValueUSD": "4.20",
        "positions": [
          {
            "id": "marinade-stake-msol-6Doy9NiF",
            "type": "stake",
            "name": "Marinade Staked SOL",
            "valueUSD": 4.2,
            "tokens": [
              {
                "address": "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So",
                "symbol": "mSOL",
                "name": "Marinade Staked SOL",
                "decimals": 9,
                "amountRaw": "22490760",
                "amountFormatted": 0.022491,
                "priceUSD": 186.57,
                "valueUSD": 4.2
              }
            ],
            "metadata": {
              "type": "liquid-staking",
              "lstMint": "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So",
              "lstSymbol": "mSOL",
              "exchangeRate": "1.350434",
              "apy": "0.0605"
            }
          }
        ]
      },
      {
        "protocol": {
          "id": "drift",
          "name": "Drift",
          "url": "https://app.drift.trade",
          "logo": "https://i.imgur.com/NGsiS9n.png",
          "category": "perps"
        },
        "totalValueUSD": "1250.50",
        "positions": [
          {
            "id": "drift-perp-0-subaccount-0",
            "type": "leverage",
            "name": "drift-sol-usd LONG",
            "valueUSD": 1250.50,
            "tokens": [],
            "metadata": {
              "type": "perp",
              "id": "drift-perp-0-subaccount-0",
              "marketId": "drift-sol-usd",
              "exchange": "drift",
              "side": "BUY",
              "entryPriceQuote": 180.5,
              "currentPriceQuote": 185.2,
              "currentLeverage": 5.2,
              "liquidationPriceQuote": 145.8,
              "amountUSD": 6500.0,
              "amountRaw": "35000000000",
              "unrealizedPnlUSD": 250.50,
              "unrealizedPnlPercent": 20.04,
              "realizedPnlUSD": 0,
              "realizedPnlPercent": 0,
              "feesOpeningUSD": 0,
              "feesClosingUSD": 0,
              "feesFundingUSD": 0,
              "tp": [],
              "sl": [],
              "lastUpdate": "2026-01-15T10:30:00.000Z",
              "address": "7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs",
              "chainId": "solana:solana",
              "collateralAsset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
            }
          }
        ]
      },
      {
        "protocol": {
          "id": "solana-native-staking",
          "name": "Solana Native Staking",
          "url": "https://solana.com/staking",
          "logo": "https://i.imgur.com/QV2QY1p.png",
          "category": "native-staking"
        },
        "totalValueUSD": "862658.11",
        "positions": [
          {
            "id": "solana-native-staking-2zkWd6QsjgGMqJ5qmRCt8hRmyiRCEDx3SYXaR288Maa9",
            "type": "stake",
            "name": "Staked SOL (active)",
            "valueUSD": 849949.53,
            "tokens": [
              {
                "address": "So11111111111111111111111111111111111111112",
                "symbol": "SOL",
                "name": "Solana",
                "decimals": 9,
                "amountRaw": "6688000000000",
                "amountFormatted": 6688,
                "priceUSD": 127.09,
                "valueUSD": 849949.53
              }
            ],
            "metadata": {
              "type": "native-staking",
              "stakeAccountAddress": "2zkWd6QsjgGMqJ5qmRCt8hRmyiRCEDx3SYXaR288Maa9",
              "validatorVoteAccount": "7MKUXUiiVeWFwLaNyw5exkujXnen5yB77hQa54KLD98h",
              "validatorCommission": 5,
              "activationState": "active",
              "activationEpoch": 882,
              "currentEpoch": 915,
              "apy": "5.58"
            }
          }
        ]
      }
    ]
  }
}
```

### Response Format (Ethereum)

```json theme={null}
{
  "data": {
    "wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
    "fetchedAt": "2026-01-28T10:30:00.000Z",
    "totalValueUSD": "125000.00",
    "totalDepositedUSD": "125000.00",
    "totalBorrowedUSD": "0.00",
    "totalRewardsUSD": "0.00",
    "protocols": [
      {
        "protocol": {
          "id": "lido-steth",
          "name": "Lido",
          "url": "https://lido.fi",
          "logo": "https://i.imgur.com/oQeRf5a.png",
          "category": "liquid-staking"
        },
        "totalValueUSD": "50000.00",
        "positions": [
          {
            "id": "lido-steth-stake-steth-0xd8dA6BF2",
            "type": "stake",
            "name": "Lido Staked ETH",
            "valueUSD": 50000.00,
            "tokens": [
              {
                "address": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
                "symbol": "stETH",
                "name": "Lido Staked ETH",
                "decimals": 18,
                "amountRaw": "15000000000000000000",
                "amountFormatted": 15.0,
                "priceUSD": 3333.33,
                "valueUSD": 50000.00
              }
            ],
            "metadata": {
              "type": "liquid-staking",
              "lstMint": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
              "lstSymbol": "stETH",
              "exchangeRate": "1.000000",
              "apy": "0.0350"
            }
          }
        ]
      },
      {
        "protocol": {
          "id": "etherfi",
          "name": "Ether.Fi",
          "url": "https://www.ether.fi",
          "logo": "https://i.imgur.com/hSxOVGx.png",
          "category": "liquid-staking"
        },
        "totalValueUSD": "25000.00",
        "positions": [
          {
            "id": "etherfi-stake-weeth-0xd8dA6BF2",
            "type": "stake",
            "name": "Wrapped eETH",
            "valueUSD": 25000.00,
            "tokens": [
              {
                "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee",
                "symbol": "weETH",
                "name": "Wrapped eETH",
                "decimals": 18,
                "amountRaw": "7000000000000000000",
                "amountFormatted": 7.0,
                "priceUSD": 3571.43,
                "valueUSD": 25000.00
              }
            ],
            "metadata": {
              "type": "liquid-staking",
              "lstMint": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee",
              "lstSymbol": "weETH",
              "exchangeRate": "1.071500",
              "apy": "0.0380"
            }
          }
        ]
      },
      {
        "protocol": {
          "id": "eigenlayer",
          "name": "EigenLayer",
          "url": "https://app.eigenlayer.xyz",
          "logo": "https://i.imgur.com/zOYFWGK.png",
          "category": "restaking"
        },
        "totalValueUSD": "50000.00",
        "positions": [
          {
            "id": "eigenlayer-stake-steth",
            "type": "stake",
            "name": "stETH Restaked",
            "valueUSD": 50000.00,
            "tokens": [
              {
                "address": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
                "symbol": "stETH",
                "name": "stETH",
                "decimals": 18,
                "amountRaw": "15000000000000000000",
                "amountFormatted": 15.0,
                "priceUSD": 3333.33,
                "valueUSD": 50000.00
              }
            ],
            "metadata": {
              "type": "restaking",
              "strategyAddress": "0x93c4b944D05dfe6df7645A86cd2206016c51564D",
              "strategyName": "stETH Strategy",
              "underlyingToken": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
              "underlyingSymbol": "stETH",
              "operatorAddress": "0x1234567890123456789012345678901234567890",
              "isDelegated": true,
              "sharesRaw": "15000000000000000000"
            }
          }
        ]
      }
    ]
  }
}
```

***

### Metadata by Category

#### Lending Metadata

| Field | Type | Description |
| - | - | - |
| `market` | string | Market name (e.g., "Main Market", "JLP Market"). |
| `healthFactor` | string | Account health factor. |
| `liquidationThreshold` | string | Liquidation threshold. |
| `ltv` | string | Loan-to-value ratio. |
| `supplyAPY` | string | Total supply APY (base + token yield). |
| `baseSupplyAPY` | string | Base lending APY from protocol. |
| `tokenAPY` | string | Native yield for LSTs/yield-bearing tokens. |
| `borrowAPY` | string | Borrow APY. |
| `utilizationRate` | string | Reserve utilization rate. |

#### Liquidity (DEX) Metadata

| Field | Type | Description |
| - | - | - |
| `poolAddress` | string | Pool contract address. |
| `poolName` | string | Pool name (e.g., "SOL/USDC"). |
| `poolType` | string | Pool type: `amm`, `clmm`, or `dlmm`. |
| `shareOfPool` | string | User's share of the pool. |
| `fee24h` | string | Fees earned in last 24 hours. |
| `apy` | string | Estimated APY. |
| `tickLower` | number | Lower tick bound (CLMM/DLMM only). |
| `tickUpper` | number | Upper tick bound (CLMM/DLMM only). |
| `inRange` | boolean | Whether position is currently in range. |

#### Liquid Staking Metadata

| Field | Type | Description |
| - | - | - |
| `lstMint` | string | LST token address (Solana mint or EVM contract). |
| `lstSymbol` | string | LST token symbol (e.g., "mSOL", "JitoSOL", "stETH", "wstETH", "eETH"). |
| `exchangeRate` | string | LST to native token exchange rate. |
| `apy` | string | Staking APY. |
| `unstakePending` | string | Amount pending unstake (Solana: SOL, EVM: varies by protocol). |

**Supported LST Protocols:**

* **Solana**: Jito (JitoSOL), Marinade (mSOL), BlazeStake (bSOL), Sanctum (various LSTs)
* **EVM**: Lido (stETH, wstETH), Ether.Fi (eETH, weETH)

#### Restaking Metadata

| Field | Type | Description |
| - | - | - |
| `strategyAddress` | string | EigenLayer strategy contract address. |
| `strategyName` | string | Strategy name (e.g., "stETH Strategy"). |
| `underlyingToken` | string | Underlying token address. |
| `underlyingSymbol` | string | Underlying token symbol (e.g., "stETH", "cbETH"). |
| `operatorAddress` | string | Delegated operator address (if delegated). |
| `isDelegated` | boolean | Whether shares are delegated to an operator. |
| `sharesRaw` | string | Raw shares amount (bigint as string). |

**Supported Restaking Protocols:**

* **EVM**: EigenLayer (Ethereum mainnet)

#### Native Staking Metadata

| Field | Type | Description |
| - | - | - |
| `stakeAccountAddress` | string | Solana stake account address. |
| `validatorVoteAccount` | string | Validator vote account address. |
| `validatorName` | string | Validator name (if available). |
| `validatorCommission` | number | Validator commission percentage (0-100). |
| `activationState` | string | Stake state: `activating`, `active`, `deactivating`, `inactive`. |
| `activationEpoch` | number | Epoch when stake was activated. |
| `deactivationEpoch` | number | Epoch when stake deactivation started (if applicable). |
| `currentEpoch` | number | Current Solana epoch. |
| `apy` | string | Estimated staking APY based on inflation and validator commission. |

#### Perps Metadata

| Field | Type | Description |
| - | - | - |
| `id` | string | Unique position identifier. |
| `marketId` | string | Market identifier (e.g., "drift-sol-usd"). |
| `exchange` | string | Exchange name: `drift`, `gains`, `hyperliquid`, `gte`, `lighter`. |
| `side` | string | Position side: `BUY` (Long) or `SELL` (Short). |
| `entryPriceQuote` | number | Entry price. |
| `currentPriceQuote` | number | Current mark/oracle price. |
| `currentLeverage` | number | Current effective leverage. |
| `liquidationPriceQuote` | number | Estimated liquidation price. |
| `amountUSD` | number | Position size in USD. |
| `amountRaw` | string | Raw position amount (bigint as string). |
| `unrealizedPnlUSD` | number | Unrealized profit/loss in USD. |
| `unrealizedPnlPercent` | number | Unrealized PnL as percentage. |
| `realizedPnlUSD` | number | Realized profit/loss in USD. |
| `realizedPnlPercent` | number | Realized PnL as percentage. |
| `feesOpeningUSD` | number | Opening fees in USD. |
| `feesClosingUSD` | number | Closing fees in USD. |
| `feesFundingUSD` | number | Cumulative funding fees in USD. |
| `tp` | array | Take profit orders: `[{size, price, id}]`. |
| `sl` | array | Stop loss orders: `[{size, price, id}]`. |
| `openDate` | string | Position open date (ISO 8601). |
| `lastUpdate` | string | Last update timestamp (ISO 8601). |
| `address` | string | Wallet address. |
| `chainId` | string | Chain identifier (e.g., "solana:solana"). |
| `collateralAsset` | string | Collateral token address. |


## OpenAPI

````yaml get /2/wallet/defi-positions
openapi: 3.0.0
info:
  version: 1.0.0
  title: Mobula API
  description: >-
    Documentation of the Mobula API


    **Demo API**: The default server (demo-api.mobula.io) is a demo API with
    rate limits.

    For production use, please use api.mobula.io with an API key from
    https://admin.mobula.io
servers:
  - url: https://demo-api.mobula.io/api/
    description: Demo API (rate limited, for testing only)
  - url: https://api.mobula.io/api/
    description: Production API (requires API key)
security: []
tags:
  - name: V2 - Token
    description: Token details, price, security, ATH, and holder data
  - name: V2 - Market Data
    description: Market details, OHLCV history, and lighthouse metrics
  - name: V2 - Trades
    description: Token trades, enriched trades, and trade filters
  - name: V2 - Wallet
    description: Wallet positions, activity, trades, analysis, and labels
  - name: V2 - Assets
    description: Cross-chain asset details and price history
  - name: V2 - Swap
    description: Swap quoting and execution
  - name: V2 - Perps
    description: Perpetual futures quoting, execution, and positions
  - name: V2 - Bridge
    description: Cross-chain bridge quoting and intent status (Alpha Preview)
  - name: V2 - DeFi
    description: Bonding pools and pulse data
  - name: V2 - Search
    description: Universal fast search
  - name: V2 - Usage
    description: Per-key API and WebSocket usage history
  - name: V2 - Blockchains
    description: System metadata and chain listings
  - name: V2 - Prediction Markets
    description: >-
      Polymarket markets/events, wallet positions, and the full execution stack
      (auth, order build/submit/cancel, approvals, pUSD wrap/unwrap, deploy,
      deposit/withdraw, redeem). Alpha — see /api/2/pm/*.
  - name: V1 - Market Data
    description: Market prices, history, sparklines, pairs, and multi-data
  - name: V1 - Wallet
    description: Wallet portfolio, transactions, history, and NFTs
  - name: V1 - Token
    description: First buyers
  - name: V1 - Trades
    description: Market trades by pair
  - name: V1 - Metadata
    description: Token metadata, categories, and news
  - name: V1 - Assets
    description: List all assets
  - name: V1 - Search
    description: Search for assets, tokens, and pairs
  - name: V1 - DeFi
    description: Bonding pool pulse data
  - name: V1 - Blockchains
    description: Blockchain listings, pairs, and stats
  - name: V1 - Webhooks
    description: Webhook management
  - name: V1 - Feed
    description: Custom feed creation
paths:
  /2/wallet/defi-positions:
    get:
      tags:
        - V2 - Wallet
      summary: Get Wallet Defi-Positions
      parameters:
        - schema:
            anyOf:
              - type: string
                minLength: 32
                maxLength: 44
              - type: string
                pattern: ^0x[a-fA-F0-9]{40}$
              - type: string
                pattern: ^G[A-Z2-7]{55}$
            description: Wallet address (EVM or Solana)
          required: true
          description: Wallet address (EVM or Solana)
          name: wallet
          in: query
        - schema:
            type: string
            description: Chain ID to fetch positions from (e.g., "solana:solana", "evm:1")
          required: false
          description: Chain ID to fetch positions from (e.g., "solana:solana", "evm:1")
          name: chainIds
          in: query
      responses:
        '200':
          description: Wallet Defi-Positions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        protocol:
                          type: object
                          properties:
                            name:
                              type: string
                            id:
                              type: string
                            logo:
                              type: string
                            url:
                              type: string
                          required:
                            - name
                            - id
                            - logo
                            - url
                        positions:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                              name:
                                type: string
                              chain_id:
                                type: string
                              contract:
                                type: string
                              created_at:
                                type: string
                                nullable: true
                              tokens:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                    symbol:
                                      type: string
                                    contract:
                                      type: string
                                    amount:
                                      type: string
                                    amountRaw:
                                      type: string
                                    decimals:
                                      type: string
                                    amount_usd:
                                      type: string
                                    logo:
                                      type: string
                                      nullable: true
                                    price_usd:
                                      type: string
                                      nullable: true
                                  required:
                                    - name
                                    - symbol
                                    - contract
                                    - amount
                                    - amountRaw
                                    - decimals
                                    - amount_usd
                                    - logo
                                    - price_usd
                              rewards:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                    symbol:
                                      type: string
                                    contract:
                                      type: string
                                    amount:
                                      type: string
                                    amountRaw:
                                      type: string
                                    decimals:
                                      type: string
                                    amount_usd:
                                      type: string
                                    price_usd:
                                      type: string
                                  required:
                                    - name
                                    - symbol
                                    - contract
                                    - amount
                                    - amountRaw
                                    - decimals
                                    - amount_usd
                                    - price_usd
                              extra:
                                type: object
                                properties:
                                  lp_token_amount:
                                    type: string
                                  position_staked_amount:
                                    type: string
                                  factory:
                                    type: string
                                  share_of_pool:
                                    type: string
                                  type:
                                    type: string
                                    enum:
                                      - supply
                                      - borrow
                                  health_factor:
                                    type: number
                                  reserve0:
                                    type: string
                                  reserve1:
                                    type: string
                                  reserve_usd:
                                    type: number
                            required:
                              - type
                              - name
                              - chain_id
                              - contract
                              - created_at
                              - tokens
                      required:
                        - protocol
                        - positions
                  wallets:
                    type: array
                    items:
                      type: string
                required:
                  - data
                  - wallets

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.