HHQ FS
32 chains · 25 exchanges · liveSign inStart free
← Back to blog
Bookkeeping7 min readSEO 71

Reconciling Exchange Statements Against On-Chain Balances: The Discrepancy Queue

An exchange statement is the canonical record of what a CEX holds for you; the chain is canonical for self-custody. Reconciling the books to both independently is what makes the numbers audit-defendable.

Reconciliation means proving that the balance your books compute for an account equals the balance the canonical source reports for that account at a point in time. For crypto, there are two canonical sources — the exchange statement for what a CEX custodies on your behalf, and the chain itself for what a self-custody wallet holds — and the books must agree with both, independently.

Two canonical sources, two reconciliations

When funds sit on a centralised exchange, the exchange is the custodian. Its API balance or CSV export is the canonical record of what it holds for you. The chain cannot tell you this — the assets are pooled in the exchange's own wallets, indistinguishable from every other customer's. So the canonical source for a Coinbase or Kraken account is the exchange statement, full stop.

When funds sit in a wallet you control, the position reverses. The chain is canonical — the on-chain balance at a block is the ground truth, and no third-party indexer or dashboard overrides it.

Reconciling to each source independently is the point. If the books agree with the exchange and separately agree with the chain, the numbers are not merely internally consistent — they are confirmed against the two parties who actually hold the assets. That is what makes a set of crypto books audit-defendable rather than merely plausible.

What a discrepancy actually is

A reconciliation fails when the book balance for an account does not equal the canonical balance at the chosen point in time. The difference is never random; it has a finite list of causes, and naming the cause is most of the fix:

  • A missing trade or transfer — a movement happened on the exchange or chain that the import never saw.
  • An unbooked fee — a trade fee or withdrawal fee that reduced the real balance but was not posted.
  • A one-sided internal transfer — a withdrawal recorded on the sending account but never matched to the receiving wallet, or the reverse.
  • A misclassified transaction — the movement was imported but posted with the wrong type, so it hit the wrong account or the wrong basis effect.
  • A dust or scam token — the exchange or chain credited a token the user never acquired, inflating a balance with something that is not a real holding.
  • Rounding — sub-unit differences that accumulate across many trades.

Each of these is a specific, resolvable condition, not a vague "the numbers are off."

The double-entry treatment that keeps the books balanced

The reason discrepancies stay small and findable is that every movement is posted as a balanced pair. A spot trade is two asset legs and, where applicable, a fee leg:

Debit Bought Asset (asset) $2,400 Debit Trading Fees (expense) $6 Credit Sold Asset (asset) $2,406

The single most common reconciliation error is treating an exchange withdrawal to a self-custody wallet as a disposal. It is not a disposal — nothing was sold. It is one internal-transfer posting that moves the asset from the exchange account to the wallet account:

Debit Cold Wallet (asset) $2,400 Credit Exchange Account (asset) $2,400

Booked this way, the withdrawal nets to zero across the two accounts. Booked as a disposal, it invents a phantom gain and leaves both the exchange account and the wallet out of balance against their canonical sources — two discrepancies from a single mistake. HQ Wealth pairs the two sides of every internal transfer automatically, so a wallet-to-wallet or exchange-to-wallet movement is never counted twice and never surfaces as a false disposal.

Clearing the queue

Reconciliation in HQ Wealth is not a pass/fail banner — it is a worklist. Every imported movement is checked against its canonical source: the chain, the exchange API, a CEX CSV statement, or a bank feed. Anything that does not match is routed into a reconciliation queue the user works through and signs off, item by item.

A practical pass looks like this:

  1. Run the reconciliation for the period close date so the book balance and the canonical balance are compared at the same instant.
  2. Open the queue. Each entry names the account, the size of the gap, and the most likely cause.
  3. Resolve each one — add the missing trade, book the unbooked fee, pair the orphaned transfer side, reclassify the mistyped transaction, or flag the credit as scam.
  4. Scam and airdrop tokens are checked against a system-wide blocklist before they ever reach a balance, so most never enter the queue in the first place.
  5. Sign off. CEX journal entries carry counterparty tracking, so a cleared item records who the movement was with, not just that it balanced.

When the queue is empty, the books equal the exchange statement and equal the chain, each verified on its own terms.

Takeaway: Reconciling to the exchange and to the chain independently is what proves the numbers — internal consistency is not enough. A reconciliation queue that names each discrepancy by cause, pairs internal transfers automatically, and books a withdrawal as a transfer rather than a disposal is what turns a plausible balance into an audit-defendable one.

Was this helpful?

Be the first to mark this helpful

Is this article accurate?

Help establish this article's reliability — readers with relevant expertise especially.

71B

Content & SEO score

How this article rates against our editorial and search checklist.

  • Title length within 40–68 characters
  • Meta description within 110–170 characters
  • In-depth — 600+ words
  • Structured with 3+ section headings
  • Primary keyword present in title
  • Closes with a key takeaway
  • Tagged for discovery
Keep reading
DeFi

EVM Chain Accounting for DeFi Traders: Imports, Lots, and Reconciliation

8 min read
Bookkeeping

Accountant-Ready Crypto Books: What That Actually Means, and Why Double-Entry Is the Precondition

7 min read
Bookkeeping

Double-Entry Bookkeeping vs Crypto Tax Software: Why the Difference Matters

6 min read
Bookkeeping

How to Choose a Crypto Accounting Tool: Nine Criteria That Separate a Ledger From a Calculator

8 min read
Bookkeeping

Double-Entry Bookkeeping for DeFi: A Chart of Accounts That Actually Works

7 min read
Onboarding

EVM Chain Portfolio Tracker: 32 Chains, Real Reconciliation, and No Tracking

6 min read