PnLSaver

Docs

Features

Everything the portfolio view puts on screen, and what each part is actually built from.

Holdings and valuation

Native coins and tokens are read across every configured chain, grouped per chain, and valued in one combined total with a per-source breakdown at the top.

  • Prices come from a stack of sources, so a token missing from one provider can still be valued by another.
  • Long-tail tokens must clear liquidity and trading checks on their exact contract before they can enter portfolio value.
  • Obsolete contracts and symbol copycats are shown as unpriced instead of quietly inflating the total.
  • Values can be displayed in USD, EUR, GBP, JPY, CHF, CAD, AUD, ETH, or BTC.

DeFi positions

A position engine runs every protocol reader that declares a chain, in parallel, and only after a cheap check decides the wallet could plausibly hold that position. Positions are read from current protocol state, not inferred from a token balance alone.

  • Each position carries supplied, borrowed, collateral, claimable, and reward legs, plus health factor and net value where the protocol defines them.
  • When a dedicated reader owns a receipt token, the generic reader's version of the same value is suppressed so one economic position is never counted twice.
  • Positions across your address and its single-owner DeFi Saver Safe or DSProxy accounts are merged into the same portfolio.
  • Supported lending positions load indexed position history on demand when you open their History tab, covering Aave V3 and V4, SparkLend, Radiant, legacy Seamless, Morpho Blue, Silo V3, and Euler V2.

Perps, options, and prediction markets

Address-keyed trading venues appear in the same portfolio as on-chain holdings instead of living in separate tabs.

  • Hyperliquid spot balances with entry cost, perp account value, and open positions.
  • Lighter spot rows, margin, open positions, and venue-reported PnL.
  • GMX V2 open positions on Arbitrum and Avalanche.
  • Polymarket positions including combination markets recovered from activity, plus on-chain cash balances.
  • Derive collateral, perps, and options; Extended perps when the deployment supplies a read-only API key.
  • On Solana, Jupiter perps and Drift subaccounts with equity, spot deposits and borrows, and open positions.

Venue numbers pass through

Venue balances and PnL are reported as the venue calculates them. The local cost-basis ledger does not recompute or reconcile against them, so a venue's own definition of entry price and unrealized PnL is what you see.

Activity and history

Raw transaction history is parsed into a categorized, filterable list: swaps, bridges, transfers, claims, and DeFi actions, grouped by chain and protocol.

  • Swaps are detected from transfer patterns rather than per-protocol log decoding, so unfamiliar routers still classify.
  • Router, aggregator, and intent-settlement venues are attributed by address, including solver-submitted trades.
  • Proxy calls are unwrapped to their real inner action, covering Safe transactions and batches, DSProxy execute, and EIP-7702 style batch calls.
  • Wrapper hops are unwrapped, and known noise is suppressed rather than padding the list.
  • Any filtered view can be exported to CSV.

PnL

Cost basis is reconstructed from the wallet's own trades, using average cost per token per chain, with a global ledger so bridges carry basis across chains instead of looking like sales. Each token shows a confidence badge and, where relevant, the reason it is not fully traced.

NFTs

  • Owner-indexed NFTs on Ethereum, Base, Arbitrum, and BNB Chain, with floor-price valuation on Ethereum only.
  • Solana standard, Core, and compressed NFTs through the optional Solana sidecar.
  • NFT value can be included in or excluded from the portfolio total, because a floor price is an estimate rather than a quote.

Yield and rewards

  • Position rows carry APY where a rate can be matched to that exact market or vault, composed from base, reward, and intrinsic components.
  • The portfolio shows a yield run rate derived from the positions whose rates are known.
  • Claimable and pending Merkl reward totals are surfaced alongside the portfolio.
  • Where a rate cannot be matched with confidence, it is left blank rather than approximated.

Token detail pages

Any priced spot holding on a supported chain opens a detail page built almost entirely from data the portfolio already has.

  • Price chart over 1D, 1W, 1M, 3M, 1Y, or the full range.
  • Your balance with unrealized PnL covering only the quantity whose cost is known.
  • Your trade history for that token, with position-management flows filtered out so a leverage recipe does not look like a spot trade.
  • Transfer provenance, including inbound transfers you never initiated, and a held-since date.

Protocol receipt tokens do not get a detail page — they belong to a position, not to spot inventory.

Portfolio tools

  • Multiple wallets in one portfolio, with per-wallet breakdowns and your own labels.
  • An address book so counterparties show names instead of hex.
  • Daily portfolio value snapshots and a portfolio history chart, where the deployment enables them.
  • Light and dark themes, and a display currency of your choice.
  • Link previews when you share a wallet URL.
  • An optional portfolio assistant that answers questions about the portfolio you have loaded, when the deployment configures it. It is off by default and can be enabled from Settings.

Known limits

  • Position activity history is available only for the supported lending protocols; other positions are current-state only.
  • NFT floor prices exist only on Ethereum; elsewhere ownership is shown without value.
  • Borrow-side APY is not enriched generically, so some debt legs show no rate.
  • Venue PnL is passed through rather than recomputed locally.
  • Uncurated tokens with no verifiable market stay unpriced by design.

Try it

Start with a public wallet address.

No connection, signature, approval, or transaction required.

Open PnLSaver