NakedPnL vs CoinTracker — Verified Performance vs Tax & Portfolio Tracker
CoinTracker is a portfolio and tax tracking tool for crypto. NakedPnL is a public registry of verified time-weighted returns. Where each fits, with the categories drawn precisely.
- CoinTracker is a private portfolio tracker and crypto tax-reporting tool. Its outputs (portfolio dashboards, capital-gains reports) are produced for the user who owns the account.
- NakedPnL is a public registry of verified track records, computed from daily NAV snapshots, chained with SHA-256, and anchored to Bitcoin via OpenTimestamps.
- They solve different problems. CoinTracker helps an individual file taxes and see a personal portfolio. NakedPnL produces a third-party-verifiable performance record an outsider can re-check.
Verdict in one paragraph
CoinTracker and NakedPnL share a starting point — they both pull data via read-only API keys from crypto venues — and then diverge completely. CoinTracker is a private utility: its job is to keep a single user's books in order, classify transactions for tax purposes, and surface portfolio-level views to the account owner. NakedPnL is a publishing infrastructure: its job is to compute a time-weighted return (TWR) from daily NAV, write that figure into an append-only hash chain, and expose the chain for any third party to re-derive without trusting NakedPnL. CoinTracker's customer is the trader. NakedPnL's customer is the outside viewer who needs to verify what the trader claims.
What they do differently
CoinTracker connects to dozens of crypto exchanges and wallets, normalises the transaction history, classifies each event for tax purposes (income, capital gain, lost cost basis, etc.), and produces filings such as the IRS Form 8949 in the United States or HMRC-style capital gains schedules in the United Kingdom. The product surface is a private dashboard. The data lives behind the user's login.
NakedPnL ignores transaction-level tax classification entirely. It records account-level NAV at a fixed daily cadence (23:55 UTC), feeds the NAV series into a TWR engine that uses Decimal.js precision and GIPS-style geometric chain-linking, and writes a SHA-256 content hash plus a chained header hash for every snapshot row. The Merkle root of all chain heads is anchored to Bitcoin via OpenTimestamps so anyone can later prove what the registry knew on what date. There is no tax form, no transaction ledger, no jurisdictional cost-basis adjustments. The single output is a verifiable performance number.
Feature comparison
| Criterion | NakedPnL | CoinTracker |
|---|---|---|
| Category | Public registry of verified performance | Private portfolio and tax tracker |
| Primary output | Time-weighted return + chained NAV history | Tax forms + portfolio dashboards |
| Custody model | None — read-only API keys | None — read-only API keys and wallet addresses |
| Trade execution | No execution | No execution |
| Performance metric used | Time-weighted return computed from daily NAV (Decimal.js precision) | Total return / unrealised P&L on the dashboard; tax-realised gains in reports |
| Verification model | SHA-256 content hash, append-only chain, Bitcoin-anchored Merkle root via OpenTimestamps | Internal database; user trusts CoinTracker to display correct figures |
| Independent re-verification | Yes — browser-side SHA-256 from raw exchange responses | Not designed for third-party re-derivation |
| Public profile of the account | Yes — opt-in, GDPR-consent gated | No — the dashboard is private to the account owner |
| Tax form generation | Out of scope | Yes — IRS Form 8949, Schedule D, country-specific equivalents |
| Cost basis tracking | Not tracked at the lot level | FIFO, LIFO, HIFO and other methods |
| Wallet support | Exchange-account-centric (Binance, Bybit, OKX, IBKR, Kalshi, Polymarket) | 300+ exchanges plus on-chain wallet addresses |
| Snapshot cadence | Daily NAV (23:55 UTC), retained forever | Continuous transaction sync |
| Cost | Free public registry; trader-side paid tiers for analytics depth and verification depth | Tiered annual subscription based on transaction volume |
| Regulatory category | Publisher of verified data (not a broker, adviser, or asset manager) | Tax software; not a regulated financial firm |
| Privacy default | Profiles are private until the trader gives explicit GDPR consent | All data is private to the account owner by default |
Where each one is the right tool
- Filing crypto taxes for the year — CoinTracker. NakedPnL has no tax product.
- Showing an outside allocator a verified track record — NakedPnL. CoinTracker has no public profile.
- Tracking unrealised P&L across 25 wallets and a dozen exchanges — CoinTracker. NakedPnL records venue-account NAV, not wallet-level positions.
- Letting a fund-of-funds analyst re-compute your TWR from raw exchange responses — NakedPnL. CoinTracker is not designed for third-party re-derivation.
- Producing a single, comparable, time-weighted return across multiple exchange accounts — NakedPnL.
- Reconciling a year's worth of DeFi swaps for capital-gains accounting — CoinTracker.
Why the comparison is awkward at the surface but clean underneath
On the surface they look adjacent — both connect to crypto exchanges via API keys and produce numbers a user looks at. Underneath, the products are designed for opposite audiences. CoinTracker assumes the viewer of the data is the same person whose accounts are connected, and is optimised around private transaction-level accuracy. NakedPnL assumes the viewer of the data is a stranger who would not otherwise trust the trader, and is optimised around producing a single number an independent party can re-derive from primary venue records.
A trader can use both. CoinTracker for tax, NakedPnL for proof. The two systems do not collide because they consume the same underlying data for completely separate downstream purposes.
How verification differs in practice
If a trader publishes a CoinTracker screenshot on Twitter, a viewer has no way to re-derive that figure. The screenshot could have been edited; the underlying CoinTracker account could have been backfilled with cherry-picked transactions; the cost-basis assumption could have been adjusted to flatter the result. None of these are accusations against CoinTracker — they are just structural limits of any private-dashboard product when its outputs are circulated as public proof.
A NakedPnL profile carries different guarantees. Every NavSnapshot row is hashed; every header hash chains to the previous day; the daily Merkle root is committed to Bitcoin via OpenTimestamps. A viewer who cares to check can pull the chain bundle, recompute the SHA-256 of every row, verify the chain head against the Bitcoin attestation, and re-run the TWR engine on the verified NAV series. The /verify/chain/[handle] page does this in the browser using the Web Crypto API. The verification methodology is documented at /docs/verification with reference Python and JavaScript snippets. See also the guide on how to verify a track record yourself for a step-by-step walk-through.
Pricing and access
CoinTracker prices on a tiered annual subscription that scales with transaction count, with discounted student and high-volume plans available. NakedPnL is free to view as a public registry; trader-side paid tiers exist for deeper analytics and higher verification depth (Bronze / Silver / Gold). The founding seat program is hard-capped at 100 lifetime seats and is enforced by a unique constraint at the database level.