A practical guide to turning a public Solana address into a Koinly-ready CSV — what the file contains, what it does not, and how to import it.
Why Solana tax exports are painful
Most crypto tax tools pull wallet history through their own connectors. On Solana that often means incomplete years, a hard row cap (commonly around 1,000 transactions), or long waits while they catch up with a busy wallet. If you only need clean Solana data for one year, a dedicated CSV is simpler: you paste an address, pay once, and import the file.
What SolLedger exports
For one wallet and one calendar year (UTC), SolLedger reads public mainnet history and writes a Koinly Universal CSV. That format is also accepted by CoinTracker, CoinLedger, Awaken and ordinary spreadsheets via custom/generic CSV import.
Columns (in order):
Column
Meaning
Date
UTC timestamp of the transaction (YYYY-MM-DD HH:MM:SS).
Sent Amount / Sent Currency
Tokens that left the wallet. Currency is a ticker when known (SOL, USDC, BONK…) or the mint address for long-tail SPL tokens.
Received Amount / Received Currency
Tokens that entered the wallet.
Fee Amount / Fee Currency
SOL network fee you paid as fee payer (shown on the first row of a multi-leg tx).
Net Worth Amount / Currency
Left blank. Your tax software prices each movement in your fiat.
Label
Optional hint such as reward or airdrop when the on-chain type is clear.
Description
On-chain type and source (e.g. SWAP via JUPITER, TRANSFER).
TxHash
Solana signature — opens on Solscan for verification.
How swaps and fees appear
Swaps are one row (or a small set of rows) with both Sent and Received filled — what you gave up and what you got.
Transfers in/out fill only Received or only Sent.
Wrapped SOL is merged into SOL so you do not get a separate WSOL currency for native wraps.
Failed transactions are skipped; only successful balance changes are exported.
Major tickers are named; unknown tokens keep their mint address so two different “PEPE” tokens cannot collide in your file.
Step-by-step
Open SolLedger and paste a Solana wallet address (base58, 32–44 characters).
Pick the tax year. Run Free preview first — you see sample rows and a net-flow summary before paying.
If the preview looks right, pay $3 USDC with Solana Pay (Phantom, Solflare, Backpack) or the exact USDC amount shown on Base.
Download the CSV. In Koinly: Add wallet / exchange → Custom CSV / Universal, upload the file, map columns if asked (they already match the Universal template).
In CoinTracker / CoinLedger / Awaken, use the generic or custom CSV importer and map Sent/Received/Fee/Date/TxHash the same way.
Limitations (read these before you rely on the file)
Not tax advice. SolLedger does not compute gains, cost basis, or filing positions. Your tax software prices the rows for your jurisdiction.
~4,000 transaction cap per export (most recent in the year). Very active bots may need a split by wallet or a second pass — the download headers say when the year was incomplete.
Public address only. No private keys, no wallet connect for the export itself. Payment is a separate USDC transfer verified on-chain.
Complex DeFi (concentrated liquidity, some stake account flows, closed-loop program internals) may appear as raw balance changes without a perfect human label. Always spot-check a few TxHash rows on Solscan.
Preview samples the newest pages of the year. A busy wallet’s free preview can look empty for a past year even when the paid full scan still finds rows further back.
Example wallet
Public example used on the homepage: 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY. Run a free preview on that address to see live rows before paying.
Ready to export a year?
Free preview, then $3 USDC for the full Koinly Universal CSV. No signup.