# Decoding Derive Options in a Crypto Portfolio

> On-chain options are barely covered by portfolio APIs. Only one of nine providers benchmarked decodes the Derive options book; the rest see collateral.

- **URL:** https://octav.fi/blog/derive-options-portfolio-tracking
- **Published:** 2026-04-08
- **Author:** Octav Team — Portfolio Intelligence for Digital Assets
- **Topic:** DeFi Tracking
- **Tags:** options, derivatives, portfolio-tracking
- **Source:** Octav, Practical guides on crypto NAV reporting, multi-chain portfolio management and digital asset APIs, from the team behind Octav.

---
<LogoRow items="derive,ethereum" caption="Protocols covered" />

Of the nine providers in
[our portfolio API benchmark](/crypto-portfolio-api-benchmark), exactly one
decodes an on-chain options book. The other eight see the collateral backing
the position and stop there.

On the Derive wallet tested: **$1.33M** decoded, against roughly **$401.6k**
reported elsewhere. An options book undercounted by more than 3× is not a
portfolio number with a margin of error. It is a different portfolio.

## Why options are harder than lending or LP

A lending position has one dimension: how much is supplied, plus interest. An
options position has several, and its value is not derivable from the
collateral at all.

| Attribute | Why a balance query cannot see it |
| --- | --- |
| Strike price | Contract state, not a token property |
| Expiry | Determines time value; not in the wallet |
| Side (long/short) | A short option is a liability, not an asset |
| Underlying | The exposure is to the underlying, not the collateral |
| Mark price | Requires an options pricing source, not a spot feed |

The short-position case is the one that causes real damage. A sold option is a
*negative* line in the portfolio. An API that reports the collateral as a
positive balance and misses the liability does not just undercount — it gets
the sign of the exposure wrong.

## What "collateral only" looks like in practice

A trader posts USDC as collateral and sells a covered call. A token-only API
sees the USDC and reports it. The API is not lying; it is reporting what is in
the wallet. But the portfolio's actual state — an obligation with a strike, an
expiry and a mark — is invisible.

Multiply that across a book of positions and the reported number drifts further
from reality the more actively the account is traded. That is exactly the
inverse of what you want: the most active accounts get the least accurate data.

## What full decoding returns

For each open position: instrument, strike, expiry, side, size, mark value, and
the resulting contribution to portfolio value — positive for longs, negative
for shorts.

That comes back through the same endpoint as everything else:

```bash
curl -s https://api.octav.fi/v1/portfolio \
  -H "Authorization: Bearer $OCTAV_API_KEY" \
  -G --data-urlencode "addresses=0xYourAddress"
```

No separate derivatives endpoint, no second provider to reconcile against.
Options sit alongside spot, lending, LP, staking and
[perps](/hyperliquid-perps-portfolio-tracking) in one response.

## Why this matters for reporting

If you are producing NAV for a fund that writes options, collateral-only data
is not usable. The liability side of the book has to be in the number, and it
has to be marked. See
[What Is NAV Reporting for Crypto Funds?](/what-is-crypto-nav-reporting).

For auditors, the requirement is stronger still: the position has to be
reproducible at a past date, not just correct today. That is what
[daily snapshots](/daily-crypto-portfolio-snapshots) are for.

## Testing a provider on options

Query an address with a known open options position and compare against the
protocol UI. Check three things specifically:

- Does the response contain instruments with strike and expiry, or only a
  collateral balance?
- Are short positions represented as negative value?
- Does total portfolio value change when the options book moves, or only when
  the collateral does?

If the answer to the last one is "only when the collateral moves", the options
are not being tracked at all.
