# Nansen Address Historical Balances

> Nansen Address Historical Balances is a paid API for AI agents from api.nansen.ai, paid per call via MPP or x402, $0.01/call, status unknown (last checked 2026-09-15).

Retrieves historical token balance snapshots for a given blockchain wallet address over time

## Facts

- Endpoint: GET https://api.nansen.ai/api/v1/profiler/address/historical-balances
- Price: $0.01/call
- Payment: MPP, x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/api-nansen-ai-f7556998
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_xEe15jCyUc2byhwdVR3R7

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 api-nansen-ai-f7556998
```

Example prompt: Pull the historical token balances for wallet 0x3f5CE5FBFe3E9af3971dD833D26bA9b5C936f0bE from Nansen so I can see how its holdings changed over the past year.

## When to prefer this

Use this endpoint when you need time-series balance history for a specific wallet rather than just current holdings. Ideal for auditing portfolio changes, tracking smart money accumulation/distribution patterns, or building historical performance charts for a given address. Prefer this over current-balance endpoints when the temporal dimension matters.

## Known failure modes

- Invalid or malformed wallet address returns 400 error
- Address not indexed by Nansen returns empty result or 404
- Rate limiting or quota exceeded returns 429
- Unsupported chain address returns error
- No historical data available for very new or inactive addresses

## How this service works

Get Address Historical Balances Data

## Output

Returns time-series data of token balance snapshots for the specified wallet address, including per-token quantities and values at various historical timestamps, enabling portfolio trend analysis.

## Example request

```json
{
 "date": {
  "to": "2025-01-31",
  "from": "2025-01-01"
 },
 "chain": "ethereum",
 "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "title": "ProfilerAddressHistoricalBalancesRequest",
 "examples": [
  {
   "date": {
    "to": "2025-05-03T23:59:59Z",
    "from": "2025-05-01T00:00:00Z"
   },
   "chain": "ethereum",
   "address": "0x28c6c06298d514db089934071355e5743bf21d60",
   "pagination": {
    "page": 1,
    "per_page": 10
   }
  },
  {
   "date": {
    "to": "2025-05-03T23:59:59Z",
    "from": "2025-05-01T00:00:00Z"
   },
   "chain": "ethereum",
   "pagination": {
    "page": 1,
    "per_page": 10
   },
   "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",
    "avalanche",
    "base",
    "bitcoin",
    "bnb",
    "ethereum",
    "hyperevm",
    "injective",
    "iotaevm",
    "linea",
    "mantle",
    "mantra",
    "monad",
    "near",
    "optimism",
    "plasma",
    "polygon",
    "ronin",
    "scroll",
    "sei",
    "solana",
    "sonic",
    "starknet",
    "sui",
    "ton",
    "tron"
   ],
   "type": "string",
   "title": "ProfilerChain",
   "description": "Chains supported in profiler analysis."
  },
  "address": {
   "anyOf": [
    {
     "type": "string"
    }
   ],
   "title": "Address",
   "examples": [
    "0x28c6c06298d514db089934071355e5743bf21d60",
    "8zFZHuSRuDpuAR7J6FzwyF3vKNx4CVW3DFHJerQhc7Zd"
   ],
   "description": "Address to get historical balances for"
  },
  "filters": {
   "anyOf": [
    {
     "type": "object",
     "title": "ProfilerAddressHistoricalBalancesFilters",
     "properties": {
      "value_usd": {
       "anyOf": [
        {
         "type": "object",
         "title": "NumericRangeFilter",
         "properties": {
          "max": {
           "anyOf": [
            {
             "type": "number"
            }
           ],
           "title": "Max",
           "examples":
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "ProfilerAddressHistoricalBalancesResponse",
 "required": [
  "pagination",
  "data"
 ],
 "properties": {
  "data": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "ProfilerHistoricalBalance",
    "required": [
     "block_timestamp",
     "token_address",
     "chain",
     "token_symbol"
    ],
    "properties": {
     "chain": {
      "type": "string",
      "title": "Chain",
      "description": "Chain"
     },
     "value_usd": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Value Usd",
      "description": "Usd balance of the holdings"
     },
     "token_amount": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Token Amount",
      "description": "Token amount"
     },
     "token_symbol": {
      "type": "string",
      "title": "Token Symbol",
      "description": "Symbol of the token"
     },
     "token_address": {
      "type": "string",
      "title": "Token Address",
      "description": "Token Address"
     },
     "block_timestamp": {
      "type": "string",
      "title": "Block Timestamp",
      "description": "The block timestamp as date"
     }
    },
    "description": "Individual profiler historical balance record.\n\nRepresents a single historical token balance from the wallet profiler."
   },
   "title": "Data",
   "description": "List of historical balance records"
  },
  "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."
  }
 },
 "description": "Response model for profiler address historical-balances endpoint.\n\nContains the filtered historical balance data with metadata."
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/api-nansen-ai-f7556998/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)
