


Most tools ignore fees, miss transfers, and misreport your gains. We built something that's accurate, intuitive, and transparent.
The Problem
Most portfolio trackers treat Solana like a simple ledger. They don't understand token transfers, program interactions, or the complexity of DeFi. The result? Numbers that look right but are financially wrong.
Transaction fees, priority fees, and protocol fees add up fast. Most tools completely ignore them, making your PnL look better than it actually is.
Move tokens to a new wallet? Most tools treat this as a new position at current price, destroying your historical cost basis entirely.
The consequence: Broken tax reports, false confidence in trading performance, and decisions made on bad data. If you've ever wondered why your portfolio tracker shows different numbers than your actual wallet — this is why.
The Solution
We parse every transaction, follow every token through every transfer, and compute PnL from first principles. No guessing. No shortcuts.
We index every transaction from genesis, building a complete picture of token movements across your entire history.
Tokens maintain their original cost basis through transfers. Move between your own wallets without breaking your tax records.
New transactions are indexed within seconds. Your PnL updates as you trade, with the same accuracy as historical data.
Same inputs, same outputs. Every calculation is reproducible and auditable. No black boxes.
{
"address": "8xH2vL...",
"swap": {
"numBuy": 47,
"numSell": 23,
"buy": { "sol": 125.4, "usd": 18234.50 },
"sell": { "sol": 89.2, "usd": 14521.30 }
},
"pnl": {
"realizedPnl": { "sol": 28.4, "usd": 4127.80 },
"unrealizedPnl": { "sol": 12.1, "usd": 1758.20 },
"pnl": { "sol": 40.5, "usd": 5886.00 },
"winRate": 0.72
},
"fees": {
"totalFees": { "sol": 0.42, "usd": 61.05 }
}
}Use Cases
API First
The API isn't an afterthought — it's the product. Clean endpoints, deterministic results, built for scale.
Used by tax platforms, trading dashboards, and analytics tools.
curl -X GET \
'https://api.solpnl.io/v1/portfolio/{address}' \
-H 'Authorization: Bearer sk_live_...'
# Response
{
"address": "8xH2...",
"tokens": [...],
"total_realized_pnl": 12847.32,
"total_unrealized_pnl": 5203.18,
"last_updated": "2025-01-21T14:32:00Z",
"transaction_count": 1247
}Get early access and updates on new features.