We use cookies

We use essential cookies to run the site, and optional cookies for analytics and support. We never sell your data. Cookie Policy · Privacy Policy

Crypto journal entry generator: the balanced posting behind four common events

Pick an event type, enter the amounts, and see the balanced double entry it produces. The account names are generic on purpose so you can map them to your own chart of accounts. It generates a posting structure, not a set of books.

Run the calculator

General information on accounting treatment, not accounting or tax advice. Figures are illustrative. Verify against the applicable standards (IFRS / US GAAP) and your auditor.

A balanced posting from the amounts you enter, using generic account names to map onto your own chart of accounts. It applies no cost-basis method and makes no measurement choice between historical cost and fair value, both of which depend on your reporting framework and accounting policy. Not accounting or tax advice.

What the generator does

A blockchain emits a hash, token amounts and addresses. An exchange emits a fill. Neither is a journal entry until somebody decides what the event means in accounting terms. This tool covers the last step of that translation for four event types: a purchase, a disposal, an income receipt and a transfer between the entity's own wallets. You enter the event type and an amount, plus a cost basis on a disposal and a fee on a purchase or disposal, and it returns the debits and credits that balance.

The account names are deliberately generic: digital assets, cash or stablecoin, realised gain, realised loss, digital asset income. Your chart of accounts will name them differently and may split them by asset, wallet or purpose. The structure is what transfers, not the labels.

Purchase

Debit digital assets for the cost plus the acquisition fee, credit cash or stablecoin for the total paid. Note where the fee lands. It capitalises into the asset rather than being expensed, because a fee paid to acquire generally forms part of the asset's cost basis and will reduce the gain when the asset is eventually disposed of. Expensing it instead understates basis and overstates the later gain.

Disposal

Debit cash at net proceeds, meaning gross proceeds less the disposal fee. Credit digital assets at the cost basis consumed. The difference goes to realised gain as a credit or realised loss as a debit. The disposal fee reduces net proceeds; it does not become its own expense line. Working example: an asset carried at a cost basis of 100 disposed of for 400 debits cash 400, credits the crypto asset 100 and credits a realised gain of 300. Had the proceeds been 60, the same structure produces a realised loss of 40 as a debit. Figures illustrative.

Income

Debit digital assets at the value on receipt, credit digital asset income. The value you recognise as income becomes the asset's basis going forward, and that is the point of the entry rather than a detail of it: it is what stops the same value being taxed a second time when the asset is later sold. Recognise 100 of staking reward as income, carry the asset at 100, sell at 130, and the gain is 30, not 130.

Transfer between own wallets

Debit the receiving wallet, credit the sending wallet, both at the carrying amount, and recognise no gain or loss. Nothing has been disposed of. The entity still holds the asset; it has simply moved. Treating an internal transfer as a disposal invents a realised gain that never happened, and it is one of the most common ways crypto books go wrong. A naive import that sees an outflow from one address and an inflow to another, and does not know both belong to the same entity, will book a sale and a purchase and manufacture a gain out of a self-transfer.

What this generator cannot do

Two limits matter more than the rest, and neither is a bug.

  • It applies no cost basis method. On a disposal the basis consumed is something you type in, not something it calculates. Which lots a disposal relieves is set by FIFO, LIFO, HIFO, weighted average or a jurisdiction rule, and that requires a full lot history. Work the basis out with the cost basis calculator or, properly, in a sub-ledger.
  • It makes no measurement choice between historical cost and fair value. That choice follows the reporting framework and the entity's accounting policy, so the generator posts what you tell it and takes no view on whether a period-end remeasurement is required.
  • It covers four event types only. Swaps, staking of principal, wrapping, bridging, lending, liquidity positions, airdrops and forks are not modelled.
  • It does not read your wallets, exchanges or general ledger, and posts nothing anywhere.
  • It does not net a period into summarised entries, handle multi-currency translation, or account for a network fee paid in a third token.
  • The output is an illustration. It is not evidence, and it is not a workpaper.

From a posting structure to a set of books

Knowing the four structures is genuinely useful for reviewing what a system produced or explaining a treatment to a client. It is not how an entity actually keeps books. An active treasury or fund generates thousands of events in a period, and posting each one individually to the general ledger obscures more than it reveals. The working pattern is that a sub-ledger holds the transaction-level detail and posts summarised period entries to the GL, each summary backed by the detail beneath it.

That is what CryptaCount does. It classifies raw on-chain and exchange activity across 90+ blockchain networks and 100+ connectors, calculates cost basis under your method, recognises movements between your own venues as internal transfers rather than sales, and posts clean period entries mapped to your chart of accounts, with IFRS and US GAAP ledgers and export to QuickBooks, Xero, NetSuite, Sage and Zoho. The journal entries guide walks the full set of event types.

The sibling tools cover the adjacent questions. The fair market value calculator shows how much a valuation moves with the price source you choose, and the profit calculator and Ethereum gas fee calculator handle the simpler arithmetic. All five are on the free tools hub.

The hard part of a crypto journal entry is never the debits and credits. It is knowing what the event was and what basis it relieved.
See how CryptaCount posts to your GL

FAQ

Why does the acquisition fee go into the asset rather than an expense account?

Because a fee paid to acquire generally forms part of the asset's cost basis. Capitalising it means the fee reduces the gain on eventual disposal instead of hitting the income statement twice, once as an expense and again through an overstated gain.

Why does a disposal fee reduce proceeds instead of getting its own line?

A fee paid to dispose generally reduces the net amount realised, so the entry debits cash at gross proceeds less the fee and the realised gain shrinks accordingly. Booking it as a separate expense would overstate both the gain and operating costs.

Does the generator work out the cost basis on a disposal?

No. The basis consumed is an input you supply. Determining it requires a per-lot history and a chosen method, which is what a sub-ledger maintains. The cost basis calculator demonstrates the mechanics on a handful of lots.

Why is there no gain on a wallet-to-wallet transfer?

Because nothing was disposed of. The asset moves between locations the same entity controls and carries its cost basis with it, so both sides post at the carrying amount and no gain or loss arises. Booking it as a sale creates a phantom gain.

Related