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.
Protocols covered
Derive
Ethereum
Of the nine providers in our 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:
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 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?.
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 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.
Keep reading
DeFi TrackingTracking Solana DeFi Positions in a Portfolio
Solana DeFi is the least-covered sector in portfolio APIs. How Kamino, Jupiter, Jito and LST positions break token-only portfolio tracking.
2 min read
DeFi TrackingTracking Hyperliquid Perps in Your Portfolio
Perp positions are protocol state, not tokens, so most trackers miss them. What Hyperliquid and Lighter positions look like when decoded properly.
2 min read
DeFi TrackingTracking DeFi Positions Across Multiple Chains
Why DeFi positions are hard to enumerate across chains, how lending, LP and staking positions differ, and what a complete tracking setup has to cover.
1 min read