Blockledger / Wallet reconciliation
Guide
Crypto wallet reconciliation, explained
Wallet reconciliation answers one question for every period: do the opening balance and the movements add up to the closing balance? If they do not, value moved that you cannot explain.
The roll-forward
The core of a crypto reconciliation is a roll-forward, done per wallet and per asset:
A difference of zero means the wallet is reconciled. Anything else is value that appeared or disappeared without a transaction you have accounted for.
Why differences happen
- Missing history. A data source that stops or skips part of a wallet's transactions, for example token transfers or internal contract calls.
- Spam and dust. Unsolicited tokens that inflate balances and transfer lists.
- Wrong period boundaries. Opening and closing balances taken at inconsistent times or time zones.
- Price movement. In reporting currency, a balance changes value without any transaction. This is revaluation, and it should be shown separately from real movements.
- Internal transfers counted twice. Money moved between your own wallets appears as an outflow in one and an inflow in the other, so it should be classified as internal, not as income or expense.
Getting reliable opening and closing balances
A reconciliation is only as good as its balances. For past dates, a balance can be read from an archive node at the last block before the date, or calculated back from the current balance by reversing the later transactions. Because the two methods can disagree, each balance should carry a status that says how far it can be trusted:
| Status | Meaning |
|---|---|
| Verified | Confirmed by an independent source, such as an archive node. |
| Calculated | Rolled back from transactions, with nothing contradicting it. |
| Sources disagree | Independent sources give different answers. Review it. |
| Incomplete | History is known to be partial. |
| Not available | The network has no history source for that date. |
Reconciliation in Blockledger
Blockledger runs the roll-forward for every wallet and asset and splits flows into external and own-wallet transfers. Revaluation is shown separately when you report in EUR or USD. A tolerance you set, for example one euro, decides which small differences count as reconciled, and everything else is flagged for review. The same figures are available as a roll-forward sheet in the Excel export.
Because each wallet also has a bank-style monthly statement with a running balance, you can trace any flagged difference to the transactions behind it.
Frequently asked questions
What is wallet reconciliation?
Wallet reconciliation compares a wallet's opening balance plus its recorded movements with its actual closing balance, to confirm that every change in value is explained by a transaction.
How often should crypto wallets be reconciled?
At least at every month-end, because that is when accounts are closed. Wallets with high volume benefit from reviewing differences more often.
What counts as an acceptable difference?
That is your policy. Many teams accept a small tolerance, such as one euro, to absorb rounding, and investigate everything above it.
Can I reconcile wallets at a past date?
Yes, if the network has a history source. Blockledger reads past balances from archive nodes where available, or calculates them from transactions, and labels each balance with how it was derived.
Why does my balance in EUR change without any transaction?
Because prices move. The change is revaluation and should be reported separately from movements, which is how Blockledger shows it.
Related: Crypto accounting for finance teams · Blockledger platform overview