Skip to main content
The official Octav CLI lets you interact with the Octav API directly from your terminal. Built in Rust for speed, it outputs structured JSON — making it ideal for shell scripts, CI pipelines, and AI agent tool-use.
Quick Install — One command to get started:

Why Use the CLI?

AI Agent Tool-Use

Structured JSON output that AI agents can parse and act on — no SDK or HTTP client needed

Terminal Workflows

Pipe portfolio data into jq, scripts, cron jobs, or monitoring systems

Fast & Lightweight

Written in Rust — single binary, no runtime dependencies, instant startup

Interactive Dashboard

Explore holdings, protocols, chains, and transactions in a terminal UI with octav dashboard

Installation

Updating

octav update replaces the binary installed by the shell script. If you installed with Cargo, run cargo install octav instead; for source builds, git pull and rebuild. octav update tells you which applies. Versions before 0.3.0 don’t have octav update, so reinstall them with the shell script or Cargo. Before installing, octav update checks the download against the SHA-256 checksum published with the release, and stops without changing anything if it doesn’t match.
In an interactive terminal, the CLI checks for a new release at most once a day and prints a notice to stderr if one is available. The check never runs in scripts, CI, or other non-interactive use, and never changes command output. Set OCTAV_NO_UPDATE_CHECK=1 to turn it off.

Authentication

Store your API key once and it’s used automatically for all commands.
The API key is resolved in priority order:
  1. --api-key flag (highest precedence)
  2. OCTAV_API_KEY environment variable
  3. ~/.octav/config.json config file
For AI agent workflows, set the OCTAV_API_KEY environment variable so the agent doesn’t need to manage config files.

Dashboard

An interactive terminal UI for exploring a portfolio: holdings with token icons, protocol breakdown, chain distribution, and transactions.
Token images are cached locally in ~/.octav/cache/images/.

Commands

Portfolio

Full portfolio including DeFi positions across all chains.
Cost: 1 credit per address
Wallet token balances only (excludes DeFi protocol positions).
Cost: 1 credit per address
Net asset value in a specified currency.
Supported fiat currencies: USD (default), EUR, CAD, AED, CHF, SGD. Crypto: ETH, SOL, cbBTC, EURC, BNB.Cost: 1 credit per address
Aggregated token distribution across all chains for a specific date.
Cost: 1 credit per address
A single EVM address’s portfolio valued at a specific block on ethereum, linea, or monad.
Cost: 1 credit, plus the Portfolio at Block add-on. See Portfolio at Block.

Transactions

Query transaction history with filtering and pagination.
Cost: 1 credit per address
Trigger manual transaction synchronization.
Cost: 1 credit per address

Historical

Portfolio snapshot for a specific date.
Cost: 1 credit per address
Subscribe to automatic daily portfolio snapshots.
Cost: 1,200 credits per address per year. See Subscribe Snapshot.

Metadata & Specialized

Check sync status for addresses.
Cost: Free
Check API credit balance.
Cost: Free
List supported chains, with the keys that --chain flags take.
Cost: Free
List the protocols on a chain, with the keys that --protocol takes. Paginated.
Cost: Free
Find which DeFi protocol a contract address belongs to. Omit --chain to search all chains.
Cost: 5 credits, refunded if no protocol is found
Check Solana airdrop eligibility.
Cost: 1 credit
Get Polymarket prediction market positions.
Cost: 1 credit
ERC-20 token approvals an EVM wallet has granted on one chain. Paginated with --limit (1–100, default 25) and --cursor.
Supported chains: arbitrum, avalanche, base, binance, ethereum, fantom, gnosis, linea, optimism, polygon.Cost: 1 credit

Address Book & Bundles

Address book and bundle commands are the only ones that change data on your Octav account. Every other command is read-only. Each call costs 1 credit. Commands that delete or overwrite data refuse to run without --yes. They exit with an error of type confirmation_required without sending any request:
AI agents should treat confirmation_required as a stop: check with the user before re-running with --yes.
Manage the addresses saved to your account, the same list you see in Octav Pro. Addresses already in the book keep their existing label when added again. See Address Book.
Named groups of address book entries. Addresses must already be in the address book. By default an account can have 5 bundles of up to 10 addresses each. See Bundles.

Virtual Users

Virtual users are balance-tracking or CEX-linked accounts managed in Octav Pro, addressed as virtual:<id>. They require Pro. See Virtual Users.
List the virtual users on your account.
Cost: 1 credit
Portfolios for virtual users, using virtual:<id> addresses from virtual-users list. Add --aggregated for one combined portfolio. Accepts the same --explorer-urls and --no-wait-for-sync flags as portfolio get.
Cost: 1 credit per address

Using with AI Agents

The CLI outputs structured JSON, making it a natural fit for AI agent tool-use. Agents can invoke octav commands via shell execution and parse the JSON response directly.

Example: Claude Code / Cursor Agent

The agent runs:
And receives structured JSON it can reason over.

Example: Autonomous Monitoring Script

Output Format

All commands return JSON. Pretty-printed by default, compact with --raw:
octav credits prints a bare number (e.g. 4872), so use it directly rather than with jq '.credits'. The --raw flag also disables field stripping, returning the full API response.

Multiple Addresses

Most commands accept multiple addresses as a comma-separated list:
Maximum 10 addresses per request.

Error Handling

Errors are returned as JSON on stdout with a non-zero exit code:

Resources

GitHub

Source code and issues

API Docs

Full REST API reference

Pricing

Credit packages and costs