CoinLedger guide · 5 minute read
Import a year of Solana wallet history into CoinLedger with a CSV.
For wallets and platforms CoinLedger can’t pull automatically, its help centre points you to the Universal Manual Import template: one CSV with fixed headers, UTC dates and a Type on every deposit and withdrawal. This guide shows those rules and how SolLedger fills the template from a public Solana address.
What CoinLedger’s template requires
| Rule | How the SolLedger file meets it |
|---|---|
| Keep the column headers exactly as in the template, and don’t delete the optional columns | All 11 headers, in order, including the “(Optional)” text: Date (UTC), Platform (Optional), Asset Sent, Amount Sent, Asset Received, Amount Received, Fee Currency (Optional), Fee Amount (Optional), Type, Description (Optional), TxHash (Optional) |
| Date as mm/dd/yyyy hh:mm:ss, in UTC | Every row, for example 07/16/2025 21:51:05 |
| No currency symbols, no + or − signs | Plain amounts such as 3220.37 |
| Leave unused fields blank; no 0, N/A or --- | A withdrawal leaves both Received columns empty; no fee means empty fee columns |
| Type is mandatory for deposits and withdrawals, optional for trades | Trade for swaps, Staking, Airdrop, Deposit or Withdrawal for everything else |
| Platform, Description and TxHash are optional | Platform is Solana, Description is the on-chain type and program, TxHash is the Solana signature |
Source: CoinLedger Help Center, Universal Manual Import Template Guide, read 15 October 2026.
What the file looks like
These are the first lines of the CoinLedger file for calendar year 2025 of a public Squads multisig used by the Jupiter DAO’s Core Working Group (GfrTZsuPApN2oX4nxeDuEWpFT2UMTFmigmHgKv9XernG). It is an arbitrary public example, not a customer, and we have no connection to it. Its year is mostly USDC payments out, so every row is a send.
Date (UTC),Platform (Optional),Asset Sent,Amount Sent,Asset Received,Amount Received,Fee Currency (Optional),Fee Amount (Optional),Type,Description (Optional),TxHash (Optional) 07/16/2025 21:51:05,Solana,USDC,3220.37,,,,,Withdrawal,TRANSFER via SQUADS_V4,63dzVJ3BcpLcEJHFDMysY31urZzc4tRmgih2k5hfeyFPPQhMLkhHAQW8bZPF9ftE7wFsipwHfHLxt56msaup2E74 07/16/2025 21:50:16,Solana,USDC,8000,,,,,Withdrawal,TRANSFER via SQUADS_V4,44aPJhDQSmd9n8mmb2iiNfjT1UhspM7pfEVUgejzCvY2bgQ2jYpcTfZGYka4vw3VDUbkTb5gG6jBamYeUs2v7Dx7 06/25/2025 20:15:16,Solana,USDC,28250,,,,,Withdrawal,TRANSFER via SQUADS_V4,5J6Tteu8zWpX154ZXHwnuvX21dxrymunWPcYQiNbadKx9uwgLdBkmJVZyMVnkG2GaqNEBidgqPW3STaCjEAQCxAt
How the Type column is chosen
| On-chain movement | Type in the file | What CoinLedger’s guide says |
|---|---|---|
| Swap: tokens out and tokens in on one row | Trade | Buys, sells and crypto-to-crypto trades |
| Staking reward in | Staking | One of the incoming deposit types |
| Airdrop in | Airdrop | One of the incoming deposit types |
| Any other transfer in | Deposit | “Treated as a non-taxable self-transfer” |
| Any other transfer out | Withdrawal | “Treated as a non-taxable self-transfer” |
We can see that tokens moved, but not why. A transfer in from a client or an employer is Income; a payment for something you bought is Merchant Payment; a present is Gift Received or Gift Sent. Change those rows in Google Sheets before you upload, so CoinLedger doesn’t treat them as moves between your own wallets.
Two rows that need a second look
- Fee-only transactions. When only the network fee left your wallet, the row is written as a small SOL
Withdrawalwith the description starting “Network fee only”, because the template has no fee-only row. Recategorise it in CoinLedger if you track fees separately. - Swaps with more than two tokens. The first pair is one
Traderow. Any extra token on the same transaction gets its own row, a description starting “Extra leg of a multi-token swap” and the same TxHash, so you can find and check it.
Step by step
- Open SolLedger with CoinLedger format selected, paste the wallet’s public address and pick the year. You never connect the wallet.
- Run the free preview. It shows sample rows and the first lines of the CoinLedger file exactly as it downloads.
- Pay 3 USDC and download the CSV. Koinly and CoinTracker versions are included too.
- Open it in Google Sheets if you need to change any Types. CoinLedger recommends Google Sheets because Excel and Numbers can change the formatting and make the import fail.
- In CoinLedger, upload the CSV under the Other Account tab, then rename the import (for example “Solana main wallet”) so it’s easy to find.
Questions
Should I keep a synced Solana wallet for the same address?
Not for the same period. Importing the CSV alongside an automatic import of the same transactions would count them twice, so use one or the other for that wallet.
Do the rows need to be in date order?
No. CoinLedger’s guide says it orders transactions by timestamp on import. Our file lists the newest first.
Does SolLedger work out my gains?
No. It produces transaction rows. CoinLedger prices them and calculates gains for your jurisdiction.
Can I pick the UK tax year?
Yes. The year picker offers calendar years and UK tax years (6 April to 5 April) in every format. Dates in the file stay in UTC, as CoinLedger asks.
What if the preview looks empty?
The preview reads the newest transactions first, so a busy wallet can show nothing for a past year even though the paid export goes further back. Email chris@gptshopltd.com with the address before you pay and I’ll check it.
See your CoinLedger rows first.
The free preview shows real rows from your wallet and the first lines of the CoinLedger file before you pay anything. The full year is 3 USDC.
Preview in CoinLedger formatWho you deal with
Chris Elder, founder
SolLedger is a small, independent tool from a UK company. If an import fails, email me the error and the order reference and I’ll fix the file.
- Ex-Amazon. Built and led 3P Grocery operations globally.
- Former British Army officer, Royal Logistic Corps.
- GPT Shop Ltd, a UK limited company, no. 15766335. You email me directly at chris@gptshopltd.com.