Unified API for full portfolio coverage

Unified API for full portfolio coverage

Unified API for full portfolio coverage

Access wallets, DeFi positions, and labeled transactions across chains and protocols with one lightweight endpoint.

Access wallets, DeFi positions, and labeled transactions across chains and protocols with one lightweight endpoint.

Access wallets, DeFi positions, and labeled transactions across chains and protocols with one lightweight endpoint.

Trusted by 200+
Leading Digital
Asset Managers
Trusted by 200+
Leading Digital
Asset Managers

Get portfolio and
transaction data in one call

Hedge Funds

Deliver an enhanced user experience with seamless wallet and transaction insights. Octav enables protocols to:

Monitor Portfolio Performance

Ensure Compliance & Reporting

Hedge Funds

Deliver an enhanced user experience with seamless wallet and transaction insights. Octav enables protocols to:

Monitor Portfolio Performance

Ensure Compliance & Reporting

Hedge Funds

Deliver an enhanced user experience with seamless wallet and transaction insights. Octav enables protocols to:

Monitor Portfolio Performance

Ensure Compliance & Reporting

Hedge Funds

Deliver an enhanced user experience with seamless wallet and transaction insights. Octav enables protocols to:

Monitor Portfolio Performance

Ensure Compliance & Reporting

Point-in-time NAV, done for you

Subscribe an address to get daily snapshots at 00:00 UTC for a year (1,200 credits/address). Perfect for fund statements and audits.

Exportable history for CFO/accounting workflows.

Point-in-time NAV, done for you

Subscribe an address to get daily snapshots at 00:00 UTC for a year (1,200 credits/address). Perfect for fund statements and audits.

Exportable history for CFO/accounting workflows.

Point-in-time NAV, done for you

Subscribe an address to get daily snapshots at 00:00 UTC for a year (1,200 credits/address). Perfect for fund statements and audits.

Exportable history for CFO/accounting workflows.

Point-in-time NAV, done for you

Subscribe an address to get daily snapshots at 00:00 UTC for a year (1,200 credits/address). Perfect for fund statements and audits.

Exportable history for CFO/accounting workflows.

Try it live

Call our API to receive current NAV in seconds.

Try it live

Call our API to receive current NAV in seconds.

Try it live

Call our API to receive current NAV in seconds.

Try it live

Call our API to receive current NAV in seconds.

Get started in 4 steps

Get Started in 4 steps

No SDKs to install. No complex setup. Just clean REST endpoints that work.

No SDKs to install. No complex setup. Just clean REST endpoints that work.

Step 1

Get your API Keys

Sign up and grab your key in 30 seconds. No credit card required.

Step 2

Make Your First Request

Follow our Quickstart Guide to make your first API call.

Step 3

Explore Endpoints

Browse the API Reference to see all available endpoints.

Step 4

Monitor Usage

Track your credit usage and manage your account at the Dev Portal.

Why Octav API?

Multi-Chain Support

Support for 50+ blockchain networks including Ethereum, Arbitrum, Base, Solana, and more.

Real-Time Data

Fresh data and on-demand sync capabilities.

DeFi Protocol Coverage

Track positions across thousands of DeFi protocols automatically.

Credit-Based Pricing

Pay only for what you use with our flexible credit system.

SOC 2 Compliant

Enterprise-grade security and compliance standards.

Production Ready

Rate limiting, error handling, 99.9% uptime and status monitoring built-in.

Portfolio tracking

Net worth, balances, protocol positions

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const url = `https://api.octav.fi/v1/portfolio?addresses=${address}`;
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const url = `https://api.octav.fi/v1/portfolio?addresses=${address}`;
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const url = `https://api.octav.fi/v1/portfolio?addresses=${address}`;
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const url = `https://api.octav.fi/v1/portfolio?addresses=${address}`;
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const limit = 10;
const offset = 0;
const url = `https://api.octav.fi/v1/transactions?&addresses=${address}&limit=${limit}&offset=${offset}`;
const options = { method: 'GET', headers: { Authorization: 'Bearer <token>' } };

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const limit = 10;
const offset = 0;
const url = `https://api.octav.fi/v1/transactions?&addresses=${address}&limit=${limit}&offset=${offset}`;
const options = { method: 'GET', headers: { Authorization: 'Bearer <token>' } };

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const limit = 10;
const offset = 0;
const url = `https://api.octav.fi/v1/transactions?&addresses=${address}&limit=${limit}&offset=${offset}`;
const options = { method: 'GET', headers: { Authorization: 'Bearer <token>' } };

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const limit = 10;
const offset = 0;
const url = `https://api.octav.fi/v1/transactions?&addresses=${address}&limit=${limit}&offset=${offset}`;
const options = { method: 'GET', headers: { Authorization: 'Bearer <token>' } };

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const url = `https://api.octav.fi/v1/token-overview?addresses=${address}`;
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const url = `https://api.octav.fi/v1/token-overview?addresses=${address}`;
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const url = `https://api.octav.fi/v1/token-overview?addresses=${address}`;
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const url = `https://api.octav.fi/v1/token-overview?addresses=${address}`;
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const date = '2024-11-01';
const url = `https://api.octav.fi/v1/portfolio?addresses=${address}&date=${date}`;
const options = { method: 'GET', headers: { Authorization: 'Bearer <token>' } };

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const date = '2024-11-01';
const url = `https://api.octav.fi/v1/portfolio?addresses=${address}&date=${date}`;
const options = { method: 'GET', headers: { Authorization: 'Bearer <token>' } };

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const date = '2024-11-01';
const url = `https://api.octav.fi/v1/portfolio?addresses=${address}&date=${date}`;
const options = { method: 'GET', headers: { Authorization: 'Bearer <token>' } };

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript

Python

cURL

const address = '0x2efc4931f2e64b38d6ae3d714466840fbc951f56';
const date = '2024-11-01';
const url = `https://api.octav.fi/v1/portfolio?addresses=${address}&date=${date}`;
const options = { method: 'GET', headers: { Authorization: 'Bearer <token>' } };

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Credit-packs explainer

Simple credit-based pricing: 1 credit per API call, 1 credit per 250 transactions indexed.

/status

and

/credits

are always free.

Lite

STARTER

$100

/ $0.025 per credit

4,000 credits

Perfect for small projects & testing

Lite

STARTER

$100

/ $0.025 per credit

4,000 credits

Perfect for small projects & testing

Lite

STARTER

$100

/ $0.025 per credit

4,000 credits

Perfect for small projects & testing

Lite

STARTER

$100

/ $0.025 per credit

4,000 credits

Perfect for small projects & testing

Pro

GROWTH

/ $0.025 per credit

$2,500

100,000 credits

Ideal for growing applications

Pro

GROWTH

/ $0.025 per credit

$2,500

100,000 credits

Ideal for growing applications

Pro

GROWTH

/ $0.025 per credit

$2,500

100,000 credits

Ideal for growing applications

Pro

GROWTH

/ $0.025 per credit

$2,500

100,000 credits

Ideal for growing applications

Institutional

ENTERPRISE

$20,000

/ $0.020 per credit

1,000,000 credits

Best value for high-volume usage

Institutional

ENTERPRISE

$20,000

/ $0.020 per credit

1,000,000 credits

Best value for high-volume usage

Institutional

ENTERPRISE

$20,000

/ $0.020 per credit

1,000,000 credits

Best value for high-volume usage

Institutional

ENTERPRISE

$20,000

/ $0.020 per credit

1,000,000 credits

Best value for high-volume usage

Frequently Asked Questions

Frequently Asked
Questions

Do you only support EVM chains?

No, we support EVM but also Solana, Starknet and custom implementations like Hyperliquid and Lighther.

Can I have custom integration?

Yes, we do custom integration for multiple existing clients. Contract our sales to discuss your integration.

Can I have my historical portfolio from last year?

Yes, but you have to have to take the snapshot package as soon as possible.

Do you only support EVM chains?

No, we support EVM but also Solana, Starknet and custom implementations like Hyperliquid and Lighther.

Can I have custom integration?

Yes, we do custom integration for multiple existing clients. Contract our sales to discuss your integration.

Can I have my historical portfolio from last year?

Yes, but you have to have to take the snapshot package as soon as possible.

Do you only support EVM chains?

No, we support EVM but also Solana, Starknet and custom implementations like Hyperliquid and Lighther.

Can I have custom integration?

Yes, we do custom integration for multiple existing clients. Contract our sales to discuss your integration.

Can I have my historical portfolio from last year?

Yes, but you have to have to take the snapshot package as soon as possible.

Do you only support EVM chains?

No, we support EVM but also Solana, Starknet and custom implementations like Hyperliquid and Lighther.

Can I have custom integration?

Yes, we do custom integration for multiple existing clients. Contract our sales to discuss your integration.

Can I have my historical portfolio from last year?

Yes, but you have to have to take the snapshot package as soon as possible.

Ready to start monitoring?

Ready to start monitoring?

Get started for free and start monitoring your portfolio now.

SOC 2 Type 1

Design Compliance

Security controls properly designed

SOC 2 Type 2

Operational Compliance

Security controls operating effectively over time

© 2025 Octav. All rights reserved.

© 2025 Octav. All rights reserved.