Token
Bought
Sold
Remaining
U. PnL
R. PnL
JUP
JUPJupiter
$12.5K
$8.2K
$4.2K
$1.8K+43.8%
$2.3K+28.4%
BONK
BONKBonk
$3.4K
$5.7K
$0.00
$0.00+0.0%
$2.3K+65.8%
WIF
WIFdogwifhat
$8.9K
$4.2K
$6.9K
$-1203.40-17.5%
$1.5K+35.9%
PYTH
PYTHPyth Network
$5.7K
$2.3K
$3.9K
$890.20+22.7%
$680.35+29.1%
ORCA
ORCAOrca
$2.9K
$1.5K
$1.9K
$450.40+23.8%
$320.15+22.1%
RAY
RAYRaydium
$7.3K
$3.1K
$5.2K
$1.0K+19.3%
$890.25+28.5%
MNGO
MNGOMango
$1.9K
$2.5K
$0.00
$0.00+0.0%
$560.20+29.6%
RENDER
RENDERRender
$4.6K
$1.2K
$4.1K
$790.40+19.2%
$450.30+36.6%
DRIFT
DRIFTDrift
$3.2K
$890.40
$2.8K
$460.20+16.5%
$280.15+31.5%
SAMO
SAMOSamoyedcoin
$980.25
$1.3K
$0.00
$0.00+0.0%
$360.55+36.8%
POPCAT
POPCATPopcat
$6.8K
$2.9K
$5.1K
$1.2K+24.0%
$780.30+27.0%
MEW
MEWcat in a dogs world
$2.3K
$3.5K
$890.25
$-120.40-13.5%
$1.1K+32.1%

Finally, Solana PnL
that's actually correct.

Most tools ignore fees, miss transfers, and misreport your gains. We built something that's accurate, intuitive, and transparent.

0M+
Transactions Indexed
0K+
Wallets Analyzed
0+
Protocols Supported

The Problem

Every other tool gets it wrong.

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.

Hidden Fees

Transaction fees, priority fees, and protocol fees add up fast. Most tools completely ignore them, making your PnL look better than it actually is.

Ignored Transfers

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

Deterministic. Transaction-level. Correct.

We parse every transaction, follow every token through every transfer, and compute PnL from first principles. No guessing. No shortcuts.

Full Transaction History

We index every transaction from genesis, building a complete picture of token movements across your entire history.

Transfer-Aware Cost Basis

Tokens maintain their original cost basis through transfers. Move between your own wallets without breaking your tax records.

Real-Time Processing

New transactions are indexed within seconds. Your PnL updates as you trade, with the same accuracy as historical data.

Deterministic Results

Same inputs, same outputs. Every calculation is reproducible and auditable. No black boxes.

portfolio_response.json
{
  "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

Built for real needs.

Taxes

  • Accurate realized PnL by FIFO, LIFO, or specific ID
  • Transfer-aware cost basis tracking
  • Export-ready reports for accountants
  • Support for airdrops, staking, and LP positions

Portfolio Performance

  • True win/loss tracking per position
  • Clear unrealized vs realized separation
  • Time-based performance analysis
  • Historical snapshots at any date

Curiosity & Insight

  • "Did I actually make money on this?"
  • Long-term vs short-term behavior analysis
  • Historical accuracy you can trust
  • Complete transaction audit trail

API First

Built for developers.

The API isn't an afterthought — it's the product. Clean endpoints, deterministic results, built for scale.

RESTful endpoints with consistent response formats
Deterministic results — same query, same answer
Rate limits built for production workloads
Comprehensive documentation with examples

Used by tax platforms, trading dashboards, and analytics tools.

Request
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
}

Join the Waitlist

Get early access and updates on new features.