Crypto journal entries: how on-chain and exchange activity becomes GL postings
Crypto journal entries explained for finance and accounting teams. How acquisitions, disposals, fees, transfers and revaluations become double-entry GL postings, automated by a sub-ledger. This guide covers the mechanics and how CryptaCount's crypto sub-ledger automates it.
General information on accounting treatment, not accounting or tax advice. Verify against the applicable standards (IFRS / US GAAP) and your auditor.

From blockchain event to journal entry
Every figure in a set of crypto financial statements ultimately rests on a journal entry: a balanced, double-entry record that debits one account and credits another. The difficulty with crypto is not the bookkeeping mechanics — those are the same debits and credits accountants have always used — but the translation step. A blockchain emits a transaction hash, token amounts and addresses; an exchange emits a trade fill. None of that is a journal entry until something interprets it. A crypto sub-ledger like CryptaCount performs that interpretation: it ingests on-chain and exchange activity, works out what each event means in accounting terms, and produces the postings.
This guide walks through the main event types — acquisitions, disposals with gain or loss, fees, transfers, and revaluation or impairment — and how each maps to a debit and a credit against a chart of accounts. The figures are illustrative and the treatment is described generally; the precise accounts and policy should follow the entity's framework and chart of accounts.
Mapping crypto to a chart of accounts
Before any posting makes sense, the digital assets need a home in the chart of accounts. At a minimum that means one or more asset accounts for the crypto holdings themselves — often split by asset, by wallet, or by purpose — plus accounts for realised gains and losses, unrealised value changes, transaction and network fees, and any income the activity generates. A clear mapping is what lets the same event type post consistently every time. CryptaCount holds this mapping centrally so that, for example, a disposal always routes proceeds, basis relief and gain to the same accounts.
Acquisitions
When the entity acquires a digital asset — buying it on an exchange, or receiving it on-chain — the asset account is debited for the cost of the holding and the funding source is credited. If the purchase is settled in fiat, cash is credited; if it is a crypto-for-crypto swap, the asset given up is disposed of and the asset received is recognised. Acquisition cost generally includes the fees paid to acquire, which raises the recorded cost basis. A simple fiat purchase looks like a debit to the crypto asset and a credit to cash for the total spent, with the fee folded into the asset's cost rather than expensed separately, depending on policy.
Disposals with gain or loss
Disposals are where the cost-basis engine earns its keep. When the entity sells, swaps or spends crypto, two things happen at once: the asset leaves the books at its cost basis, and a realised gain or loss is recognised for the difference between what was received and that basis. The posting debits the proceeds received (cash, or the new asset in a swap), credits the disposed asset for its carrying amount, and books the balancing difference to a realised gain or realised loss account.
The size of that gain depends entirely on which lots are consumed, which is governed by the cost basis method — FIFO, LIFO, HIFO, weighted average and others. The sub-ledger keeps a per-lot ledger, applies the chosen method deterministically across every disposal, and produces the gain or loss figure that the journal entry posts. Doing this by hand across hundreds of disposals and multiple wallets is where manual processes break.
A worked disposal
Suppose the entity holds a unit of a token recorded at a cost basis of 100 and disposes of it for 400. The entry debits cash 400, credits the crypto asset 100 to remove it at its carrying amount, and credits a realised gain of 300 to balance. Had the proceeds been 60 instead, the same structure would produce a realised loss of 40 as a debit. These numbers are illustrative only.
Fees
Fees are not a rounding detail; handled wrongly they distort both the balance sheet and the income statement. A fee paid to acquire an asset generally increases its cost basis, so it rides into the asset account rather than being expensed. A fee paid to dispose of an asset generally reduces the net proceeds, shrinking the realised gain. Network (gas) fees on transfers and other on-chain actions may be expensed or capitalised depending on what they relate to and the entity's policy. Because fees are often paid in the native token, settling a fee can itself be a small disposal of that token — a subtlety a sub-ledger handles automatically but a spreadsheet routinely misses.
Transfers between own wallets
One of the most common and most damaging errors in crypto bookkeeping is treating a transfer between the entity's own wallets as a sale. Economically nothing has been disposed of — the entity still holds the asset, it has simply moved. The correct treatment is to keep the cost basis intact and carry it with the asset to its new location, recognising no gain or loss. If a network fee is paid to make the transfer, that fee is accounted for separately. A sub-ledger that recognises matching outflows and inflows between known wallets as a single internal transfer prevents the phantom gains and losses that plague naive imports.
Income events
Some activity brings new value in rather than moving existing holdings around. Staking rewards, certain airdrops, interest-like returns and tokens received as payment for goods or services can give rise to income. The pattern is usually a debit to the crypto asset at the fair value on receipt and a credit to an income account, with that same receipt value becoming the asset's cost basis for any later disposal — so the entity is not double-counting when it eventually sells. The exact treatment depends on the nature of the receipt and the framework, but the posting structure is consistent.
Revaluation and impairment
Between acquisition and disposal, the value of a holding moves, and at period end the carrying amount may need adjusting. How that adjustment is posted depends on the measurement basis. Under a fair value model, the asset is remeasured to its period-end value and the change is recognised — a debit to the asset and a credit to a gain account when value rises, the reverse when it falls. Under a cost less impairment model, the asset is written down when its value falls below carrying amount, with an impairment loss recognised, and the rules on whether and how it can be written back up differ by framework. These revaluation and impairment entries are exactly the kind of period-end posting an entity wants computed consistently rather than estimated, and the right basis follows from how the asset is classified under IFRS or US GAAP.
Posting period summaries to the general ledger
An active entity can generate thousands of on-chain and exchange events in a period. Posting every one individually to the general ledger would overwhelm it and obscure rather than illuminate. The standard pattern is for the sub-ledger to hold the transaction-level detail and post summarised journal entries to the GL for the period — net additions, net disposals, total realised gains and losses, fees, income and revaluation movements — each backed by the underlying detail. That is precisely how a crypto sub-ledger is meant to sit in front of the GL.
CryptaCount produces these period summaries automatically. It classifies the raw activity, calculates cost basis and gains, and posts the period journal entries to the general ledger, while retaining every individual transaction beneath each summary line. The GL stays clean and the audit trail stays complete — a reviewer can take any summarised posting and drill straight down to the transactions and on-chain references that compose it.
Reconciling the sub-ledger to the general ledger
Posting summaries is only half the discipline; the other half is proving they tie out. Reconciliation between the sub-ledger and the general ledger confirms that the summarised entries in the GL add up to the transaction-level detail beneath them, and that the asset balances on the books equal the actual holdings on-chain and on exchange at the cut-off. Because each summarised posting decomposes into individual transactions with on-chain references, a reconciling difference points straight at its cause — a late-syncing wallet, an unclassified transaction, or a fee booked to the wrong account. Performing this reconciliation every period is what keeps the GL trustworthy as volume grows, and it is far easier when the sub-ledger and the postings share one consistent set of records.
Multi-wallet, multi-exchange complexity
Few entities hold everything in one place. A treasury might run several self-custodied wallets across different chains, a fund might trade on multiple exchanges, and an accounting firm might keep books for many clients at once. Each additional venue multiplies the events to interpret and the transfers to net out, and it is precisely where manual journal entries collapse: a transfer from an exchange to a self-custodied wallet, settled with a network fee paid in a third token, is trivial to misread. CryptaCount ingests activity from on-chain wallets and exchange accounts together, recognises movements between an entity's own venues as internal transfers, and keeps one coherent set of postings regardless of how many places the assets live. That single consolidated view is what makes the journal entries — and therefore the statements — complete rather than a partial picture stitched from disconnected exports.
Why automated journal entries matter
The case for automation is not convenience; it is correctness and defensibility. Manual crypto journal entries fail predictably: transfers booked as sales, fees dropped or misposted, the wrong lots consumed on disposal, inconsistent pricing on revaluation, and entries that cannot be reproduced when questioned. An automated sub-ledger applies one consistent policy across every event, re-runs deterministically when data is corrected or extended, and keeps each posting tied to its source. For accounting firms, auditors, funds and treasuries, that is the difference between journal entries they can defend and entries they merely hope are right.
Keeping a complete audit trail
A journal entry is only as defensible as the evidence behind it. The strength of a crypto sub-ledger is that every posting retains its lineage: the summarised GL entry points to the individual transactions, and each transaction points to a wallet, an exchange fill or an on-chain transaction hash that anyone can independently verify. That lineage is what lets a reviewer answer the only question that ultimately matters — where did this number come from — without a manual hunt through exports and spreadsheets. It also means corrections behave predictably: when a wallet is added late or a misclassification is fixed, the engine re-runs and the affected entries update deterministically, so the books converge on one correct answer rather than accumulating manual patches that drift apart over time.
How journal entries tie the whole picture together
Journal entries are the connective tissue of crypto accounting. The same postings that build the financial statements also feed the disclosures and the DAC8, CARF and MiCA reporting the entity owes, because all of it is drawn from one set of events the sub-ledger holds once. Get the entries right — acquisitions, disposals, fees, transfers and revaluations posted consistently from a deterministic engine — and the statements, the notes and the compliance reports all reconcile instead of disagreeing at every close.
How CryptaCount automates this
CryptaCount is the crypto sub-ledger that sits in front of your general ledger. It ingests on-chain and exchange activity, calculates cost basis and gains under your measurement policy, and posts clean period journal entries to your GL — mapped to your chart of accounts — so your books stay the system of record and the transaction-level detail stays in the sub-ledger. Explore the sub-ledger → · Compliance reporting →
FAQ
It is a balanced, double-entry accounting record that captures a crypto event — an acquisition, disposal, fee, transfer, income receipt or revaluation — as a debit to one account and a credit to another, ready to post to the general ledger.
Debit the proceeds received, credit the disposed asset at its cost basis, and book the difference to a realised gain or loss account. The gain depends on which lots are consumed, which is set by the cost basis method applied across all disposals.
As internal transfers, not sales. The asset keeps its cost basis and carries it to the new wallet, with no gain or loss recognised. Any network fee paid to move it is accounted for separately. Treating an own-wallet transfer as a disposal invents phantom gains and losses.
No. The sub-ledger holds transaction-level detail and posts summarised period journal entries to the general ledger — net additions, disposals, gains and losses, fees and revaluations — each backed by the underlying detail so the GL stays clean and auditable.
It ingests on-chain and exchange activity, classifies each event, calculates cost basis and gains, applies a consistent measurement basis, and posts the period journal entries to the general ledger while retaining every source transaction beneath each summarised line.