Skip to main content
A drop-in mapping from the Sim (Dune) API to Octav. Sim is token balances only today, so migrating is mostly additive:
  • Keep your token balances, gain DeFi. Sim’s DeFi Positions API was sunset (it returns HTTP 410), so a DeFi wallet reads as just its loose tokens. Octav returns the same wallet tokens and the decoded DeFi positions Sim can no longer provide (lending, LP, staking, perps) from a single GET /v1/portfolio.
  • Solana included. Sim’s balances are EVM-only. The same Octav endpoint accepts base58 Solana addresses, including Solana DeFi.
  • Human-readable balances. Sim returns a raw on-chain amount you divide by 10^decimals. Octav returns balance already scaled.
  • USD values precomputed. Octav returns value on every asset, plus networth for the whole portfolio, so you never sum value_usd yourself.
Get your API key at data.octav.fi. Base URL: https://api.octav.fi/v1.

Endpoint mapping

Everything except history comes from a single GET /v1/portfolio call. Tokens, DeFi, and net worth arrive together — there is no second request to merge, and no DeFi endpoint to miss.

Authentication

Sim uses an X-Sim-Api-Key header. Octav uses a standard Authorization: Bearer token.

Wallet token balances

Sim’s evm/balances returns a flat balances[] array. In Octav, wallet tokens live under the wallet protocol, grouped by chain:
Field mapping

Net worth and per-chain breakdown

Sim has no net-worth endpoint — you would sum value_usd across the balances[] array yourself. Octav returns networth and a per-chain breakdown directly on the same portfolio call.
JavaScript

DeFi positions

Sim’s DeFi Positions API was sunset and now returns HTTP 410, so there is nothing to map here — a DeFi wallet on Sim shows up as only its loose tokens. This is net-new capability from Octav: the same portfolio call decodes positions under assetByProtocols, keyed by protocol, then chain, then position type (LENDING, LIQUIDITYPOOL, STAKED, FARMING, …).
Because Octav decodes DeFi in the same call, migrating off Sim closes the gap its sunset left: lending, LP, staking, and perps positions (on EVM and Solana) come back priced, with no extra endpoint.

Transaction history

Swap Sim’s evm/transactions and evm/activity for GET /v1/transactions.
Octav categorizes each transaction (swap, deposit, stake, bridge, …) and prices transfers in USD. See the transaction types reference.

Key differences

  • Scope. Sim is token balances only; its DeFi Positions API is sunset (HTTP 410). Octav returns wallet tokens and decoded DeFi positions from one GET /v1/portfolio.
  • Chains. Sim’s balances are EVM-only. Octav covers EVM and Solana from the same endpoint and shape, including Solana DeFi.
  • Balances. Sim returns a raw amount you divide by 10^decimals. Octav returns balance already human-readable.
  • Values. Sim returns value_usd per token but no portfolio total. Octav also returns networth and a per-chain breakdown, so you never sum values yourself.
  • Grouping. Sim returns a flat balances[] array. Octav groups assetByProtocolschainsprotocolPositionsassets[], with a dedicated wallet bucket for loose tokens.
  • Billing. Sim’s free tier is winding down. Octav charges 1 credit per call (see pricing).
  • P&L. Octav adds openPnl, closedPnl, and totalCostBasis at no extra call.

Need help migrating?

Join our Discord

Share your Sim response shape and we’ll map it.

Portfolio endpoint

Full reference for the endpoint you’ll be calling.