---
title: "Get Portfolio DeFi Holdings Data"
method: POST
path: "/api/v1/portfolio/defi-holdings"
tags: ["Portfolio"]
---

# Get Portfolio DeFi Holdings Data

`POST /api/v1/portfolio/defi-holdings`

Get simplified DeFi holdings for a wallet address with aggregated tokens
        and protocol summaries in a user-friendly format.

## Request body

- PortfolioDefiHoldingsRequest — Request model for portfolio DeFi holdings endpoint.
  - `wallet_address` string, required — Wallet address to get DeFi holdings for

## Response `200`

Portfolio DeFi holdings data

- PortfolioDefiHoldingsResponse — Response model for portfolio DeFi holdings endpoint.
  - `summary` HoldingsSummary, required — Summary statistics for DeFi holdings.
    - `total_value_usd` number, required — Total USD value of all holdings
    - `total_assets_usd` number, required — Total USD value of all assets
    - `total_debts_usd` number, required — Total USD value of all debts
    - `total_rewards_usd` number, required — Total USD value of all rewards
    - `token_count` integer, required — Total number of unique tokens
    - `protocol_count` integer, required — Total number of protocols
  - `protocols` ProtocolHolding[], required — Protocol-specific holdings with token breakdown
    - `protocol_name` string, required — User-friendly protocol name
    - `chain` string, required — Blockchain network
    - `total_value_usd` number, required — Total USD value in this protocol
    - `total_assets_usd` number, required — Total USD value of assets in this protocol
    - `total_debts_usd` number, required — Total USD value of debts in this protocol
    - `total_rewards_usd` number, required — Total USD value of rewards in this protocol
    - `tokens` ProtocolToken[], required — Token holdings in this protocol
      - `address` string — Token contract address (null for native tokens)
      - `symbol` string, required — Token symbol
      - `amount` number, required — Token amount
      - `value_usd` number, required — USD value
      - `position_type` string, required — Position type: deposit, stake, borrow, or mixed

## Other responses

- `400` — Bad Request - Invalid request parameters or malformed request
- `401` — Authentication error - No API key found in request
- `403` — Forbidden - User does not have required subscription tier or has exceeded credit limit
- `404` — Not Found - The requested resource was not found
- `422` — Validation error - Invalid request parameters
- `429` — Too Many Requests - Rate limit exceeded
- `500` — Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.net/nansen/apis/nansen-api.md) · [All operations](https://skmtc.net/nansen/apis/nansen-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nansen/nansen-api/revisions/02a4d2e7d827/schema)
