Crypto Bank Reconciliation: Subledger to General Ledger (2026)

Accounting·

Crypto Bank Reconciliation: Subledger to General Ledger (2026)

On-chain wallets are not a general ledger. A crypto subledger captures every transaction with cost basis, then posts summarised journal entries to the GL with a full audit trail. Why the GL alone fails for crypto, what breaks reconciliation across chains, and the subledger-to-GL control.
Author avatar Wag3s TeamEditorial team specializing in Web3 finance, crypto tax, and DAO operations. Based in Zurich, Switzerland.

Reviewed by Wag3s Editorial Team — verified against the crypto subledger-to-general-ledger reconciliation model and multi-chain reconciliation constraints · Last reviewed May 2026

Crypto Bank Reconciliation: Subledger to General Ledger

This is the pillar of crypto reconciliation: the subledger-to-general-ledger model that every other reconciliation question (cross-chain transfers, multisig treasuries, gas, staking) sits on top of. A blockchain is not a bank statement and a wallet is not a general ledger, yet most finance teams treat them that way and then fight the close every month. The pages below cover why the GL alone fails for crypto, the two-sided control that fixes it, and the breaks that recur at volume.

The short version

  • A general ledger is not built for crypto. It holds a balance, not per-transaction cost basis, multi-chain movement, or gas.
  • The fix is a subledger between chain and GL: full detail beneath, summarised journal entries posted up.
  • Reconciliation is two-sided: subledger to chain (completeness and accuracy) and subledger to GL (posted equals classified).
  • Recurring break causes: per-chain structure, fees and timing; misaligned timestamps; smart-contract activity masking events; internal transfers mistaken for disposals.
  • Continuous reconciliation beats a month-end scramble, keeping breaks cheap to fix and the close fast.
  • This is the operational core behind multi-chain reconciliation and the crypto FEC.

Why the GL alone fails

A general ledger is designed for fiat accounts that arrive as periodic statements. Crypto does not. The GL can store "we hold X of token Y at value Z", but it cannot natively:

  • track per-transaction cost basis and the gain or loss on each disposal;
  • follow cross-chain movement of the same economic asset;
  • account for gas and network fees as cost or expense per policy;
  • apply the valuation logic (principal market, timestamp) crypto needs.

Push raw on-chain transactions directly into the GL and you either flood it with transaction-level noise or lose the detail an auditor and the audit trail require. Neither is acceptable.

The subledger model

The solution is the one accounting has always used for high-volume sub-domains such as receivables and fixed assets: a subledger.

LayerHolds
Chain / exchangeRaw transactions (the source)
SubledgerEvery transaction classified, cost basis, gain/loss, valuation, audit trail
General ledgerSummarised journal entries only

The subledger keeps the evidence; the GL stays clean. This is the crypto analogue of a subsidiary ledger, and it is the precondition for both a defensible audit and a compliant FEC.

What breaks reconciliation

The recurring break causes:

  • Per-chain heterogeneity: different transaction structures, fee models, finality timing.
  • Timestamp misalignment: block time versus settlement versus your close calendar.
  • Smart-contract masking: one contract call can be several economic events (swap, fee, reward).
  • Internal transfers: wallet-to-wallet movements booked as disposals if not classified (see internal transfer vs disposal).
  • Incomplete wallet coverage, the single most damaging: activity in unmapped wallets never reaches the books.

Each is a reconciliation finding, and each compounds with volume.

The two-sided control

Crypto reconciliation is two reconciliations, not one:

  1. Subledger to chain: every wallet, every transaction, complete and accurate against on-chain reality.
  2. Subledger to GL: the posted journal entries equal the classified subledger activity for the period.

A break on side 1 is a completeness or accuracy problem (a missing wallet, a mispriced entry); a break on side 2 is a posting problem (an aggregation or mapping error). Both are investigated before close.

Practical guidance

  1. Insert a subledger between chains or exchanges and the GL; do not post raw transactions to the GL.
  2. Maintain a complete wallet inventory. Completeness comes first, since an unmapped wallet defeats everything.
  3. Reconcile subledger to chain continuously, not at month-end.
  4. Reconcile subledger to GL each period, so posted entries equal classified activity.
  5. Classify internal transfers explicitly so they are not booked as disposals.
  6. Keep the transaction-level detail and audit trail beneath the summarised GL entries.

Choosing a subledger tool

A crypto subledger such as Cryptio or Bitwave ingests multi-chain and exchange activity, classifies it and computes cost basis, then posts summarised entries to a GL such as NetSuite, Xero, or QuickBooks. The label "GL integration" is the easy part to advertise and the hard part to get right, so before you route a year of activity through one, confirm it:

  • runs a wallet-complete subledger-to-chain reconciliation, not a sample, so the completeness layer is real;
  • runs a subledger-to-GL posting reconciliation each period, so the entries it posted equal the activity it classified;
  • keeps the transaction-level detail beneath the summarised entries, so an auditor can drill from a GL line back to the chain.

A clean GL balance means nothing if the subledger beneath it missed a wallet, so completeness is the property to test first.

Worked example: month-end subledger-to-GL reconciliation

The following illustrates the two-sided control for a treasury holding ETH and USDC across two wallets and one exchange account.

Step 1 — Subledger-to-chain reconciliation (completeness and accuracy)

The subledger queries every mapped address via the chain's node API and the exchange's reporting API. For the ETH wallet, it compares its own transaction count and ending balance to the on-chain record. A discrepancy — say, the subledger shows 12.4 ETH but the chain shows 12.6 ETH — surfaces a missing transaction (a gas refund credited directly to the wallet and not yet ingested). The break is investigated and the missed inflow is classified and costed before proceeding.

Step 2 — Cost basis and classification

Once completeness is confirmed, the subledger confirms the cost basis for all open lots per the entity's chosen method (here, FIFO on a per-wallet basis consistent with IRS Rev. Proc. 2024-28 for a US entity). Each purchase, disposal, and fee is costed; realized gains and losses are computed for every disposal event in the period; unrealized fair value is marked at the period-end principal-market price.

Step 3 — Journal entry construction

The subledger aggregates the period's classified activity into a set of summarised journal entries:

EntryDebitCredit
Purchase of ETH (cost basis)Crypto asset – ETHCash / USDC
Disposal of ETH (proceeds)Cash / USDCCrypto asset – ETH + Realized gain (or loss contra)
Network gas feesFee expenseCrypto asset – ETH (cost add) or cash
Unrealized fair-value movement (ASU 2023-08 scope)Crypto asset – fair value adjustmentUnrealized gain/loss (income)
Staking income receivedCrypto asset – ETHStaking income

Raw transaction lines are never posted to the GL. The entries above are periodic summaries; the subledger holds the line-by-line evidence.

Step 4 — Subledger-to-GL reconciliation

The finance team reconciles the summarised entries posted in the GL to the subledger's period totals. The GL balance for "Crypto asset – ETH" must equal the subledger's ending ETH carrying value; the GL "Realized gain" must equal the subledger's computed realized PnL for the period. Any mismatch (a journal was partially posted, a period filter excluded a transaction) is investigated and corrected before the close is signed off.

Step 5 — Break resolution and sign-off

Every break from Step 1 or Step 4 is documented with its cause, resolution, and the name of the person who cleared it. The signed reconciliation — subledger-to-chain and subledger-to-GL — becomes part of the close package and the audit file. Breaks not resolved before sign-off carry forward as open items, which is the fastest way to make the following close harder.

This five-step process is repeatable every period and forms the audit trail that transforms raw blockchain activity into defensible financial statements.

Where Wag3s fits

Wag3s Ledger is the subledger between your wallets and your GL. It ingests every chain and exchange, classifies activity and computes cost basis, reconciles continuously to on-chain reality, and posts summarised, audit-trailed journal entries to the general ledger. It produces the reconciliation and the supporting detail; the close is still signed off by the entity's accounting team, and Ledger is built to support that team and its auditor rather than stand in for them. See the Ledger product page and the Wag3s for accountants page.


Further reading

Notes on sources

Subledger-to-GL reconciliation is an operational accounting practice rather than a rule set by an external standard, so it has few citable authorities. The model here follows the long-established subsidiary-ledger pattern (the way receivables or fixed assets feed the general ledger) applied to on-chain and exchange activity: transaction-level detail and cost basis held in the subledger, summarised journal entries posted to the GL, and a full audit trail retained beneath. The accounting effect of the entries it produces, and whether the reconciliation is sufficient for audit, are judgements for the entity's accountant and auditor.

Editorial disclaimer
This article is informational and does not constitute accounting advice. Reconciliation controls and GL integration are entity-specific. Confirm your close process with your accounting team or auditor.