# Nansen PnL Summary

> Nansen PnL Summary is a paid API for AI agents from Nansen at api.nansen.ai, paid per call via MPP or x402, $0.01/call, status unknown (last checked 2026-10-10).

Returns aggregate profit/loss statistics and top 5 profitable tokens for a wallet address or named entity over a specified date range and chain.

## Facts

- Endpoint: POST https://api.nansen.ai/api/v1/profiler/address/pnl-summary?utm_source=zero.xyz
- Price: $0.01/call
- Payment: MPP, x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Provider: Nansen
- Docs: https://docs.nansen.ai
- Website: https://nansen.ai
- Tags: blockchain, smart-money, wallet, tokens, defi, analytics, profiler, dex, pnl, onchain, prediction-market, data
- Canonical page: https://www.zero.xyz/c/nansen-pnl-summary-9a7d77c8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_6YEjjYgSuQYw8n8zktu0H

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability nansen-pnl-summary-9a7d77c8 -d '<json body>'
```

Example prompt: Can you pull the Nansen PnL summary for wallet 0x39d52da6beec991f075eebe577474fd105c5caec on Ethereum from May 1 to May 3, 2025 — I want to see their realized profit, win rate, and top tokens?

## When to prefer this

Use this endpoint when you need a rolled-up performance summary for a specific wallet — realized profits, win rate, trade count, and best-performing tokens — over a custom date range on a specific chain. Prefer this over individual trade lookups when the goal is a high-level performance snapshot rather than raw transaction detail. Ideal for smart money tracking, whale wallet analysis, or comparing trader performance across time periods.

## Known failure modes

- Invalid or unrecognized wallet address returns error
- Unsupported chain value returns validation error
- Missing required fields (chain or date) returns 400 bad request
- Date range with no trading activity returns zero values
- Entity name not found in Nansen database returns error
- Date range too broad may result in slow or truncated response
- Payment not completed returns 402 payment required

## How this service works

Get aggregate PnL statistics and top profitable tokens for a specific wallet address.
This endpoint provides comprehensive profit and loss analysis including realized PnL, win rate, and top performing tokens.

## Output

Returns total realized PnL in USD, realized PnL percentage, win rate (fraction of profitable sales), total traded token count, total number of trades, and an array of the top 5 tokens by realized profit including each token's symbol, contract address, chain, realized PnL in USD, and realized ROI percentage. Also includes pagination metadata.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "title": "ProfilerAddressPnlSummaryRequest",
 "examples": [
  {
   "date": {
    "to": "2025-05-03T23:59:59Z",
    "from": "2025-05-01T00:00:00Z"
   },
   "chain": "ethereum",
   "wallet_address": "0x39d52da6beec991f075eebe577474fd105c5caec"
  },
  {
   "date": {
    "to": "2025-05-03T23:59:59Z",
    "from": "2025-05-01T00:00:00Z"
   },
   "chain": "ethereum",
   "entity_name": "Vitalik Buterin"
  }
 ],
 "required": [
  "chain",
  "date"
 ],
 "properties": {
  "date": {
   "type": "object",
   "title": "DateRange",
   "properties": {
    "to": {
     "anyOf": [
      {
       "type": "string"
      }
     ],
     "title": "To",
     "examples": [
      "2025-01-31T23:59:59Z"
     ],
     "description": "End date in ISO 8601 format (e.g., 2025-01-31T23:59:59Z or 2025-01-31)"
    },
    "from": {
     "anyOf": [
      {
       "type": "string"
      }
     ],
     "title": "From",
     "examples": [
      "2025-01-01T00:00:00Z"
     ],
     "description": "Start date in ISO 8601 format (e.g., 2025-01-01T00:00:00Z or 2025-01-01)"
    }
   },
   "description": "Date range model matching the API schema."
  },
  "chain": {
   "enum": [
    "all",
    "arbitrum",
    "arc",
    "avalanche",
    "base",
    "bnb",
    "ethereum",
    "linea",
    "mantle",
    "monad",
    "optimism",
    "plasma",
    "polygon",
    "robinhood",
    "sei",
    "solana",
    "sonic",
    "sui"
   ],
   "type": "string",
   "title": "ProfilerPnLChain",
   "description": "Chains supported in profiler PnL analysis."
  },
  "address": {
   "anyOf": [
    {
     "type": "string"
    }
   ],
   "title": "Address",
   "deprecated": true,
   "description": "Deprecated: Use 'wallet_address' instead. Alias of `wallet_address`. If you send both fields, they must contain the same address."
  },
  "entity_name": {
   "anyOf": [
    {
     "type": "string"
    }
   ],
   "title": "Entity Name",
   "examples": [
    "Vitalik Buterin",
    "Binance"
   ],
   "description": "Entity name to get PnL summary for"
  },
  "wallet_address": {
   "anyOf": [
    {
     "type": "string"
    }
   ],
   "title": "Wallet Address",
   "examples": [
    "0x39d52da6beec991f075eebe577474fd105c5caec",
    "8zFZHuSRuDpuAR7J6FzwyF3vKNx4CVW3DFHJerQhc7Zd"
   ],
   "description": "Wallet address to get PnL summary for"
  }
 },
 "description": "",
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "ProfilerAddressPnlSummaryResponse",
 "required": [
  "pagination",
  "top5_tokens",
  "traded_token_count",
  "traded_times",
  "realized_pnl_usd",
  "realized_pnl_percent",
  "win_rate"
 ],
 "properties": {
  "win_rate": {
   "type": "number",
   "title": "Win Rate",
   "description": "Number of sales where price of the token was higher than cost basis"
  },
  "pagination": {
   "type": "object",
   "title": "PaginationInfo",
   "properties": {
    "page": {
     "type": "integer",
     "title": "Page",
     "default": 1,
     "minimum": 1,
     "description": "Current page number"
    },
    "per_page": {
     "type": "integer",
     "title": "Per Page",
     "default": 10,
     "maximum": 1000,
     "minimum": 1,
     "description": "Number of records per page"
    },
    "is_last_page": {
     "type": "boolean",
     "title": "Is Last Page",
     "default": true,
     "description": "Whether this is the last page"
    }
   },
   "description": "Pagination information for API responses."
  },
  "top5_tokens": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "ProfilerTopToken",
    "required": [
     "realized_pnl",
     "realized_roi",
     "token_address",
     "token_symbol",
     "chain"
    ],
    "properties": {
     "chain": {
      "type": "string",
      "title": "Chain",
      "description": "Blockchain chain"
     },
     "realized_pnl": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Realized Pnl",
      "description": "Realized profit and loss in USD"
     },
     "realized_roi": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Realized Roi",
      "description": "Realized return on investment as percentage"
     },
     "token_symbol": {
      "type": "string",
      "title": "Token Symbol",
      "description": "Token symbol"
     },
     "token_address": {
      "type": "string",
      "title": "Token Address",
      "description": "Token contract address"
     }
    },
    "description": "Individual top token record for PnL summary.\n\nRepresents a top profitable token from the wallet's trading history."
   },
   "title": "Top5 Tokens",
   "description": "Top 5 tokens by realized profit"
  },
  "traded_times": {
   "type": "integer",
   "title": "Traded Times",
   "description": "Total number of sales (outflow or dex sell)"
  },
  "realized_pnl_usd": {
   "type": "number",
   "title": "Realized Pnl Usd",
   "
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/nansen-pnl-summary-9a7d77c8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.nansen.ai](https://www.zero.xyz/host/api.nansen.ai/llms.txt)
