Skip to main content
Get the Net Asset Value of an address across multiple chains.
Interactive Playground: Test this endpoint in the API Playground. Get your API key at data.octav.fi
Cost: 1 credit per call

Endpoint

GET https://api.octav.fi/v1/nav

Parameters

addresses
string
required
EVM or SOL wallet address to retrieve net asset value data for
addresses=0x6426af179aabebe47666f345d69fd9079673f6cd
waitForSync
boolean
default:"false"
Wait for fresh data if cache is stale
  • false: Return cached data immediately (recommended)
  • true: Wait for sync if data is older than 1 minute
currency
string
default:"USD"
Currency in which to return the Net Asset ValueFiat currencies: USD, EUR, CAD, AED, CHF, SGDCrypto currencies: ETH, SOL, cbBTC, EURC, BNBWhen a crypto currency is specified, the NAV is converted using on-chain conversion rates from each portfolio’s holdings, with a weighted average price across wallets.
currency=EUR

Response

nav
number
The Net Asset Value in the requested currency
currency
string
The currency code of the returned value (e.g., USD, EUR, ETH)
conversionPrice
number
The conversion price used to calculate the NAV. For fiat currencies, this is the exchange rate from USD. For crypto currencies, this is the weighted average price in USD across all queried wallets.

Example Request

curl -X GET "https://api.octav.fi/v1/nav?addresses=0x6426af179aabebe47666f345d69fd9079673f6cd" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

USD (default)
{
  "nav": 1235564.43434,
  "currency": "USD",
  "conversionPrice": 1
}
ETH
{
  "nav": 617.78,
  "currency": "ETH",
  "conversionPrice": 2000.12
}

Data Freshness

The Nav endpoint uses intelligent caching to balance data freshness with performance:
Cache Duration: 1 minuteWhen data is less than 1 minute old:
  • Cached data returned immediately
  • Response time: under 100ms
When data is more than 1 minute old:
  • Cached data returned immediately
  • Background sync initiated for next request
  • Next request gets fresh data
With waitForSync=true:
  • Waits for sync if data is stale
  • Returns data less than 1 minute old
  • Response time: Variable (1-10 seconds)
For most use cases:
  • Use default waitForSync=false
  • Data fresher than 1 minute is sufficient
  • Fast response times
For real-time tracking:
  • Set waitForSync=true when you need the absolute latest data
  • Accept longer response times
  • Consider rate limits
For background updates:
  • Call endpoint periodically to keep cache warm
  • Background sync ensures next request is fresh

Error Responses

Invalid parameters provided.
{
  "error": "Bad Request",
  "message": "addresses parameter is required"
}
Common causes:
  • Missing addresses parameter
  • Invalid address format
  • Too many addresses in single request
Authentication failed.
{
  "error": "Unauthorized",
  "message": "Invalid API key"
}
Solution: Check your API key in the Authorization header
Rate limit exceeded.
{
  "error": "Rate limit exceeded",
  "message": "You have exceeded your rate limit",
  "retry_after": 60
}
Solution: Wait for the specified time or implement retry logic
Insufficient credits.
{
  "error": "Insufficient credits",
  "message": "Please purchase more credits to continue"
}
Solution: Purchase more credits at data.octav.fi

Transactions

View transaction history for these addresses

Token Overview

Get detailed token breakdown by protocol

Historical Portfolio

View portfolio value at specific dates

Status

Check when portfolio was last synced