Crypto transaction reconciliation for finance teams
Reconcile every on-chain movement to your internal ledger.
Crypto accounting reconciliation for finance teams, controllers, and funds holding digital assets on balance sheet. We match wallet and exchange activity to your books, classify each transaction correctly, apply cost basis consistently, and hand back a ledger with the evidence attached. This is the work that has to be finished before an audit can begin.
Why the Chain and the Ledger Disagree
Nobody makes a mistake to cause this. The two records are built to describe different things, so they drift apart from the first month of activity.
The chain records movements
A blockchain records transfers of value between addresses. It does not know which addresses you own, whether a transfer was a sale or a move to cold storage, or that four token transfers in one block were a single trade. It has no concept of a period, a counterparty name, or an invoice.
The ledger records events
Your accounting system records economic events with a date, a value, and a classification. It expects one entry per event. Reconciliation is the translation layer between the two, and without it the balances in your books are assertions rather than supported figures.
Where Breaks Actually Come From
Six causes account for most of the differences we find. The first two account for most of the value.
Wallets and chains nobody listed
Activity spread across several chains and dozens of addresses, some created for a single deployment and never recorded. A ledger cannot reconcile to a wallet set that finance does not know exists.
Internal transfers read as disposals
Movements between your own wallets and exchange accounts look exactly like sales on-chain. Treated as disposals, they invent gains and losses and reset cost basis on assets you never sold.
Exchange sub-accounts and off-chain movement
Trades, transfers between sub-accounts, funding and fee entries never touch a chain. They exist only in exchange exports, in different formats, with different timestamps and rounding.
Gas, fees, and dust
Network fees are deducted outside the amount your ledger records, failed transactions still cost gas, and token dust accumulates. Small individually, material over a year, and a permanent source of small unexplained differences.
One event, several legs
Bridges, swaps, and router contracts emit multiple transfers for a single economic event. Recorded leg by leg, one trade becomes several phantom transactions with fabricated gains attached.
Rewards, airdrops, and derivative tokens
Staking rewards, airdrops, wrapped tokens, liquidity position tokens, and NFTs arrive without an invoice or a counterparty. Each needs a recognition point, a value, and a treatment applied consistently.
Classification Is Where the Money Is Won or Lost
The most expensive error in crypto bookkeeping is a misclassified internal transfer. Moving assets from an exchange to your own cold wallet is not a disposal. On-chain it looks exactly like one. Treated as a sale, it books a gain or loss that never occurred and resets the cost basis of the asset on the receiving side. Repeat that across a year of treasury management and the reported position is wrong in both directions, usually by more than any other single issue in the file.
Everything therefore starts with proving which addresses and accounts are yours. Once the account map is confirmed, most classification follows from it. What remains is the genuine judgement: when a staking reward is recognised and at what value, whether gas on a purchase is capitalised or expensed, how a wrapped token relates to the asset it represents, and whether depositing into a liquidity pool is a disposal under the treatment you have adopted.
Cost basis sits on top of this. Whether you apply FIFO, weighted average, or specific identification depends on your reporting framework and your jurisdiction, and it is a decision to take with your auditor and tax adviser rather than one to inherit from a software default. The rule that does not change is consistency. One method, applied across every wallet and account, changed only for a documented reason. An inconsistent method is harder to defend than an unfavourable one.
How the Engagement Works
The account map first, the data second, the judgement calls documented as they are made rather than reconstructed at year end.
Establish the complete account map
We build the definitive list of wallets, chains, exchange accounts, sub-accounts, and custodians, and confirm which addresses are genuinely yours. Everything downstream depends on this list being complete.
Pull and normalise the data
On-chain history for every address, exchange and custodian exports, and your ledger extract are pulled into one normalised dataset with consistent timestamps, decimals, and asset identifiers.
Classify and reassemble events
Each movement is classified: internal transfer, purchase, disposal, fee, reward, or receipt. Multi-leg bridges and swaps are reassembled into the single economic event they represent.
Match, value, and investigate breaks
On-chain events are matched to ledger entries, valued on an agreed source and convention, and cost basis is applied. Anything that does not match is traced rather than plugged.
Deliver the reconciled ledger
You receive the reconciled ledger, a break report with everything still open, and a written record of every treatment decision taken, in the form an auditor will ask for.
Unexplained Flows Get Investigated, Not Plugged
Every crypto reconciliation of any size produces movements nobody can immediately explain. The tempting fix is a balancing entry. It is also the fix that turns a solvable problem into a permanent one, because a plug conceals a missing wallet, an unrecorded trade, a duplicated export, and a genuine misappropriation with exactly the same neatness.
We trace unexplained flows on-chain instead. Where the counterparty is an exchange, a bridge, or a known service, that usually identifies the missing record. Where it is not, the trace itself becomes evidence. Most of what we find is administrative: a wallet outside the finance team's list, a bridge leg recorded twice, a fee structure nobody passed on. Occasionally it is not, and the point of investigating is that you find out which. Anything still open at the end goes into the break report with its value and what we established, so your auditor sees a disclosed item rather than a mystery.
What You Receive
Working papers your finance team can use at the next close and your auditor can pick up without a translation call.
Reconciled ledger
A period-by-period ledger where each balance and movement is tied to an on-chain transaction hash or an exchange record, with the supporting reference retained.
Break report
Every difference we could not resolve, with its value, the accounts involved, what we established, and what we would need from you to close it. Nothing absorbed into a plug entry.
Cost basis schedule
Holdings by asset and lot under the method you have adopted, applied consistently across every wallet and account, with realised and unrealised positions separated.
Treatment memorandum
The accounting position taken on gas, rewards, airdrops, wrapped tokens, bridges, and DeFi positions, with the reasoning. This is the document that answers most auditor questions before they are asked.
Wallet and account register
The confirmed inventory of addresses, exchange accounts, and custodians in scope, which becomes the control document your finance team maintains from then on.
Close checklist and handover
A documented month-end procedure your team can run in-house, so the next close is a repeatable process rather than another reconstruction project.
Monthly Close Versus Year-End Preparation
These are the same discipline at different costs. A monthly close reconciles a few weeks of activity while the person who authorised each transaction still remembers it. Breaks are small, context is available, and treatment decisions are made once and reused. Year after year, this is the cheaper way to run a crypto balance sheet.
Year-end preparation is the same work compressed, usually across twelve months of history, often with staff turnover in between. It is entirely doable, and it is what most first engagements look like. It simply costs more and produces more items that can only be estimated rather than proven. If you are heading into a financial statement audit or a proof of reserves attestation, reconciliation is the precondition for both. An auditor cannot obtain evidence for balances that were never tied to the chain.
What Reconciliation Does and Doesn't Cover
This is preparation work with a defined boundary. We set the boundary out at the start rather than at the point somebody relies on the wrong thing.
It does cover
- Matching on-chain and exchange activity to your ledger, entry by entry
- Correct classification of internal transfers, disposals, fees, rewards, and receipts
- Multi-leg swaps, bridges, and DeFi activity reassembled into single economic events
- Cost basis applied consistently under the method you have adopted
- Unexplained flows traced on-chain and reported rather than absorbed
- Treatment decisions documented in the form an auditor will ask for
It does not cover
- An audit opinion — reconciliation confers no assurance of any kind
- Wallets or accounts outside the list you give us, which we cannot know exist
- Proof of positions where the underlying records are missing, only best estimates
- A ruling on your tax position, which is for your tax adviser to determine
- Verification that counterparties are who your records say they are
- Fixing the underlying process, unless you engage us for the handover as well
The completeness limit is the one that matters most. A reconciliation is only as complete as the wallet and account list behind it, so we spend real effort testing that list rather than accepting it. Where historical records are genuinely gone, we label the position as estimated and say what it rests on. We do not present an estimate as a proven figure.
Transaction Reconciliation FAQ
What is crypto transaction reconciliation?
It is the accounting work of matching every on-chain movement to an entry in your internal ledger, and every ledger entry back to something that happened on a chain or in an exchange account. The output is a ledger where each balance is supported by evidence, and a break report listing what could not be matched. It is bookkeeping, not assurance. It is also the work that has to be finished before an audit can start.
Why does on-chain data not reconcile to our ledger already?
Because the chain records movements, not economic events, and your ledger records economic events, not movements. One trade through a bridge and a swap can produce four or five on-chain legs. A transfer between two wallets you own looks identical to a sale. Gas is deducted in a way most accounting systems never see. Add several chains, exchange sub-accounts, staking rewards, airdrops, wrapped tokens, and liquidity positions, and the two records diverge quietly from the first month.
What is the single most common reconciliation error you find?
Misclassified internal transfers. Moving assets between your own wallets, or from an exchange to cold storage, is not a disposal. When a tool or a bookkeeper treats it as one, the ledger records a sale that never happened, books a gain or loss against it, and resets the cost basis on the receiving side. In a year of activity this compounds into a reported position that is wrong in both directions. Every reconciliation we run starts by proving which addresses and accounts are yours, because that one question decides most of the classification.
How do you handle gas fees, staking rewards, and airdrops?
Consistently, and documented. Gas is a real cost that has to be recognised somewhere. Depending on the transaction it may be capitalised into the cost of an acquired asset, expensed, or treated as part of a disposal cost. Staking rewards and airdrops are receipts of new assets and need a recognition point and a value at that point, which then becomes their cost basis. There is genuine judgement in each of these. What matters is that the treatment is chosen deliberately, applied to every similar transaction, and written down so your auditor can follow it.
What about swaps, bridges, and DeFi positions?
These are where most reconciliations break down. A bridge produces a burn or lock on one chain and a mint or release on another, with no on-chain link between them. A swap through a router can emit several token transfers for one trade. Depositing into a liquidity pool exchanges your assets for a position token, which may or may not be a disposal depending on the arrangement and the treatment adopted. We reassemble the legs into the single economic event they represent, then record that event once rather than recording each leg as its own transaction.
Which cost-basis method should we use?
That depends on your reporting framework, your jurisdiction, and what your auditor and tax adviser will accept. FIFO is the most commonly applied and the easiest to defend. Weighted average is used where it is permitted and where volume makes lot tracking impractical. Specific identification is possible where records genuinely support it. We are not going to tell you which one to adopt on a web page, because the answer is entity-specific. The rule that never changes is consistency: pick a method, apply it across every wallet and account, and change it only with a documented reason.
What happens when you find flows nobody can explain?
We investigate them rather than plug them. An unexplained flow is either a missing record, a misclassification, an omitted wallet, an activity nobody told finance about, or something worse. Each of those has a different fix, and a plug entry hides all of them equally well. We trace the counterparty on-chain, look for the matching internal record, and come back to you with what the chain shows. Anything still unresolved goes into the break report with its value and what we know about it, so it is visible rather than absorbed.
Is reconciliation the same as an audit?
No. Reconciliation produces a supported ledger. An audit produces an independent opinion on financial statements. Reconciliation is preparation work and carries no assurance. Most crypto businesses that fail an audit fail because the underlying records were never reconciled, so the auditor could not obtain evidence for the balances. Getting this done first shortens the audit, reduces the questions, and removes the most expensive category of surprise.
How long does it take, and can you do it monthly?
A first engagement covering a year or more of history across several chains typically takes a few weeks, most of it spent establishing the complete wallet and account list and resolving historical breaks. Once the treatment decisions are documented and the data pipeline is in place, a monthly close runs in a fraction of that. Firms that reconcile monthly find fewer and cheaper problems than firms that leave it to year end, because the person who can explain a transaction is still there and still remembers it.
More questions answered on our general FAQ.
Related Reading
Get the books tied to the chain
Tell us how many chains, wallets, and exchange accounts you run and how far back the history goes. We will scope the reconciliation and tell you what it will take to close.