guides16 min read

How to Account for Ethereum Transactions, Event by Event

An event-driven guide to accounting for ETH receipts, purchases, sales, swaps, own-wallet transfers, custody, lending, native staking and the period end.

M

Maksym Buhai

Accounting Engineer

July 29, 2026 · 16 min read

Cover reading "Some ETH events have no transaction at all", beside three stacked rounded panels in which the top and bottom are solid charcoal and the middle one is empty, drawn in a dashed violet outline

Learning how to account for Ethereum transactions should not begin with journal entries. It should begin with the event. Starting there prevents two common errors: it stops a protocol record from being treated as the accounting conclusion, and it stops a transaction list from defining the population of economic events.

For every material ETH event, work through the same chain:

event -> economic substance -> evidence -> exact quantity -> accounting treatment

This is the practical hub of the Ethereum accounting series. It tells you how to account for Ethereum transactions when the event occurs. It deliberately does not re-teach the underlying mechanics. When gas, validator lifecycle, valuation, IFRS, US GAAP, or tax becomes the deciding issue, the relevant section links to the article that owns that analysis.

How to account for Ethereum transactions: classify the event first

Ask five questions:

  1. Did the entity receive or lose an ETH quantity?
  2. Did control of the principal asset change, or did it merely move between the entity's own locations?
  3. Did the event create, settle, or modify another asset or liability?
  4. What protocol and private evidence proves the event?
  5. What reporting framework and jurisdiction determine measurement and basis?

The same transaction hash can answer only part of those questions.

Event map

Acquisition and receipts

ActionAccounting treatment
Buy ETH for fiat into self-custodyAcquisition of ETH. Allocate directly attributable transaction costs under the applicable policy.
Buy a balance called ETH at an exchange or custodianAcquisition of ETH if beneficial ownership and control remain with the customer. Otherwise acquisition of a contractual claim.
Receive ETH for goods or servicesRevenue at the applicable amount, plus acquisition of ETH. Where the contract is denominated in ETH, the measurement date is a live policy question. See the financial-reporting analysis.
Receive ETH in settlement of a fiat-denominated receivableDerecognise the receivable, recognise ETH at fair value on receipt, and record the difference as a settlement gain or loss, not a foreign-exchange difference. The hook is IFRS 9.3.2.12: "On derecognition of a financial asset in its entirety, the difference between (a) the carrying amount … and (b) the consideration received (including any new asset obtained …) shall be recognised in profit or loss."
Receive or pay employee or contractor compensation in ETHRecipient records compensation income and ETH. Payer records payroll or service cost and a disposal of ETH.
Receive ETH as a gift or grantRecognise an asset when controlled. Determine the credit and basis from the donor relationship and conditions rather than assuming revenue.
Receive ETH as an owner contributionRecognise ETH and the corresponding equity contribution at the amount required by the applicable framework. It is not customer revenue.
Receive an unexplained incoming transfer at a fee-recipient addressInvestigate before classifying. For a staking entity, rule out its own execution-layer block reward arriving as a builder payment before treating it as a customer receipt.

Accrual and protocol-state changes

ETH held in an ordinary account has no passive accrual. Everything in this group arises from operating the entity's own validator under native staking. Whether consensus-layer rewards are income as they accrue or only when they reach an execution address is an accounting-policy choice the entity has to select and disclose; Ethereum Staking Rewards owns that decision.

ActionAccounting treatment
Consensus-layer rewards accrue in the validator balanceQuantity accrual. On a policy that recognises rewards as they accrue, recognise income and a new ETH lot under the entity's documented aggregation and measurement policy. No transaction exists and none will.
Execution-layer priority fees credited to the fee recipientRecognise income and a new ETH lot. This is a separate stream from consensus rewards, on a different ledger, at a different address.
Builder payment received under MEV-BoostSame income stream as priority fees, normally arriving as an ordinary transfer from a third party. Some builders instead name the entity's own fee-recipient address in the block, so the same income arrives with no transaction and no hash; which of the two routes predominates is not documented, and the reconciliation routine has to handle both. Classify by substance, not by the counterparty on the transfer.
Ordinary attestation penalties and the inactivity leakQuantity reduction with no transaction. Recognise as an expense or as a reduction of the related reward income under a documented policy, applied consistently.
SlashingQuantity reduction in stages: an immediate penalty, a correlation penalty about 18 days later, and the balance becoming withdrawable at about 36 days. The exit is forced immediately. Not an impairment of value: the asset itself is smaller.
Validator sits in the entry queue after a depositNo accounting event. The ETH is already the entity's and is already restricted.
Effective balance steps up or downNo accounting event. Effective balance is the rounded figure the protocol uses to compute rewards. It moves in whole-ETH steps, and deliberately lags the real balance so that small fluctuations do not move it. It is an input to a reward calculation, not a measure of the asset.

Movement, custody and transformation

ActionAccounting treatment
Transfer between the entity's own addressesNo acquisition or disposal of the transferred quantity. Preserve lots and record the gas separately.
Deposit 32 ETH to the deposit contract under native staking, keeping the withdrawal credentialsNot a disposal. Reclassify from unstaked to staked at carrying amount and disclose the restriction.
Receive an automatic sweep or a requested partial withdrawalOn a policy that recognises rewards as they accrue, not income. Transfer carrying amount from the validator balance to the account, taking lots under the documented policy.
Exit the entity's own validator and receive the full balanceNot a disposal. Movement of the entity's own ETH between ledgers. Under the same accrual policy, the accrued rewards inside the balance were income when they accrued.
Submit an EIP-7002 withdrawal or exit request for the entity's own validatorGas plus a dynamically-priced protocol fee, both disposals of ETH. The request itself moves no ETH. Link the request to the later credit in the records.
Upgrade withdrawal credentials, or change the fee recipientNo economic event. A significant control event that belongs in the evidence file.
Deposit ETH with, or withdraw from, an exchange or custodianNothing if the entity retains the same asset and control. Otherwise derecognise ETH and recognise or settle a claim.
Delegate an account under EIP-7702, or revoke the delegationNo transfer. A control change that may alter who can move the ETH. Reassess and document.
Wrap ETH into WETH, bridge ETH to a layer-2, or stake through a pool or liquid-staking protocolOutside this article, which covers native ETH only. Each replaces native ETH with a different instrument and requires its own derecognition analysis.

Disposals and settlement

ActionAccounting treatment
Sell ETH for fiatDerecognise ETH, recognise cash or a receivable, and record the difference from carrying amount as gain or loss.
Exchange ETH for another cryptoassetDisposal of ETH and acquisition of the other asset, measured under the relevant exchange rules.
Spend ETH on goods, services or a fixed assetAcquire or expense what was received, derecognise ETH, and recognise gain or loss on the ETH.
Pay gas on any transactionDisposal of the fee ETH. Split the amount into the burned base fee and the priority fee. Allocating either component to expense or to the transaction it enabled is a framework judgement, and for the burned portion, which reaches no counterparty at all, it is a named guidance gap. See Ethereum Gas Fee Accounting.
Pay gas on a transaction that failsDisposal of the fee ETH with nothing received. The ETH is gone all the same, and whether that is an expense, a loss, or nothing is a named guidance gap.
Pay the blob fee on a blob-carrying transactionA second, separate disposal of ETH. It is entirely burned and is not included in gasUsed × effectiveGasPrice, so a ledger that computes the fee from that formula alone understates what left.
Pay an exchange trading or withdrawal feeReduce proceeds, add to acquisition cost or expense under the applicable rule. ETH used to pay it is also disposed of.
Gift ETHDerecognise ETH without consideration. Record any distribution or gift expense and the applicable gain, loss or equity effect.
Donate ETH to a charityDerecognise ETH and record donation expense plus any required gain or loss. Tax relief and appraisal requirements are jurisdiction-specific.

Financing, loss and reporting-only events

ActionAccounting treatment
Lend ETH and later receive equivalent ETHIf control passes, replace ETH with a receivable. Split repayment between principal and return, and do not record principal as income.
Borrow ETH, then repay principal or a returnRecognise ETH and a gross ETH-denominated liability. A return paid is a separate finance cost and a separate ETH disposal.
Have pledged ETH liquidatedDerecognise the transferred ETH, reduce the secured liability, and recognise any gain, loss, penalty or residual claim separately.
Lose the only usable private keyAssess control, recovery prospects and derecognition. No public-chain event occurs.
Send ETH to a wrong or unrecoverable address, including a mistyped fee recipientDerecognise. The outcome is visible on-chain and there is no counterparty and no remedy.
Suffer theftDerecognise or impair when control is lost. Recognise a recovery asset only when its criteria are met.
Custodian freezes withdrawals or failsDetermine whether the entity still owns identifiable ETH or holds an impaired claim. The chain balance cannot decide this.
A block is not finalized at the reporting dateEvidence question, not an election. Prove period-end balances at a finalized block and document the block number.
Remeasure, impair, reverse or revalue ETH at period endReporting entry only: no transaction and no new lot. ETH is not a foreign currency, so this is never an exchange difference.
Reconcile account balances, validator balances and private ledgers to lotsControl activity only. Book only the economic event that an investigated difference reveals.
Generate an address, sign without broadcasting, approve a contract, or simply hold ETHNo economic event. An unsent signature changes nothing. An approval that is broadcast still costs gas.

Buying ETH

A straightforward purchase has at least three records:

  • the purchase or trade confirmation;
  • the cash settlement or payable; and
  • the on-chain or custodial receipt.

If the entity buys native ETH into self-custody, recognise the ETH under the applicable framework and attach the directly attributable transaction costs required by that framework. If the "ETH" remains at an intermediary, first establish whether the entity still owns native ETH or instead has a contractual claim. That asset-identification problem belongs in What Do You Actually Own When You Hold ETH?.

Do not use the later wallet-arrival timestamp as the purchase date automatically. A centralized trade can execute before an on-chain withdrawal. The economic acquisition and the subsequent custody transfer can be different events.

Receiving ETH for goods or services

Receiving ETH is two accounting questions joined together:

  1. what revenue, receivable settlement, compensation, contribution, or other credit arose; and
  2. what ETH asset was acquired and at what measurement point.

If a customer invoice is denominated in fiat and later settled in ETH, the receivable already exists. On settlement, derecognise the receivable, recognise the ETH received, and recognise the settlement difference under the applicable framework. Native ETH is not a foreign currency merely because it is used to settle an invoice.

If the contract itself is denominated in ETH, measurement becomes more sensitive. Under IFRS, the measurement date for noncash consideration can require analysis of IFRS 15 and related unresolved implementation questions. Under US GAAP, ASC 606 has its own noncash-consideration rules. Use Ethereum Valuation for Accounting for the price policy, and Ethereum Accounting Under US GAAP for the recognition model.

Gifts and contributions

A transfer with no conventional sale price still needs an economic-substance analysis. "Gift" and "contribution" are not blockchain event types. They are descriptions of why ETH moved.

For an entity receiving ETH without providing goods or services in return, first identify the legal and accounting relationship. A shareholder contribution, a donation to a not-for-profit entity, a promotional distribution, and a personal gift are not interchangeable simply because each can arrive as an incoming transfer with no ETH sent back. The applicable framework determines the credit side of the entry. The chain can establish the quantity and transfer evidence, but it cannot establish donative intent, shareholder capacity or the absence of another obligation.

For an entity giving ETH away, the ETH outflow must be distinguished from the expense, distribution, contribution or other economic event that caused it. Derecognition and any gain or loss follow the applicable reporting framework. Tax consequences are jurisdiction-specific and can differ sharply from book accounting, particularly for charitable gifts and transfers between related parties.

The operational rule is to retain the off-chain evidence that explains why the transfer occurred. Without it, the same on-chain movement could be misclassified as a customer payment, an intercompany transfer or an unexplained wallet outflow.

Failed transactions are accounting events even when the intended event never happened

An included Ethereum transaction can fail after execution begins. In that case, the state changes made by the failed execution are reverted, but the sender still consumes ETH for gas and the sender's transaction nonce advances.

That means the intended economic transaction and the actual accounting population can diverge. A failed attempt to deposit collateral, swap ETH or interact with a contract may create no acquisition, no sale and no contract state change, while still creating a real ETH quantity outflow for gas.

Do not book the intended transaction merely because the wallet interface labels the attempt by what the user was trying to do. Read the receipt status. If status = 0, identify the gas actually consumed and account for that fee under the relevant context and framework. See Ethereum Gas Fee Accounting for the fee analysis.

A transaction rejected before block inclusion is different. It does not become an on-chain transaction and does not consume Ethereum gas. That distinction is why a complete transaction-control population starts from included transactions involving the entity's sending addresses, including failures, rather than from a list filtered to successful business events.

Compensation paid or received in ETH

For the recipient, ETH compensation is not simply "free crypto". It is compensation plus acquisition of an asset.

For the payer, two things happen:

  • compensation or contractor cost is recognised; and
  • ETH leaves the entity, creating a derecognition or disposal measurement question.

The quantity used for payroll must include only the compensation amount. Gas is a separate ETH outflow. Payroll withholding, employment taxes, and reporting are jurisdiction-specific.

Transfers between the entity's own addresses

An own-address transfer is the best test of whether the subledger distinguishes movement from disposal, and it is where how to account for Ethereum transactions parts company with a literal reading of the chain.

If the entity controls both addresses before and after:

  • preserve the principal ETH's book identity;
  • move its location record;
  • do not create a new acquisition lot merely because the receiving address sees an incoming transfer;
  • do not create disposal income merely because the sending address sees an outgoing transfer; and
  • record the gas separately.

Under US federal tax rules the same two-part structure is explicit, and both halves must stay together. The transfer between the taxpayer's own wallets or accounts is generally non-taxable, except for the digital assets used or withheld to pay transaction services. The newer IRS digital-asset transaction-cost rules also state that amounts paid merely to move digital assets between the taxpayer's own wallets or accounts are not treated as digital-asset transaction costs that add to basis or reduce amount realized. See Ethereum Tax in the United States for the jurisdictional detail.

Maintain an own-address registry with effective dates. Since EIP-7702, also retain reporting-date evidence about whether an address has delegated code. The chain proves a transfer between addresses. It does not prove both addresses belong to the same entity.

Deposits to and withdrawals from custodians

Do not assume that every exchange deposit is an own-wallet transfer.

The decisive facts are contractual and legal:

  • does the customer retain beneficial ownership?
  • are assets segregated?
  • can the custodian use, lend, pledge, or rehypothecate them?
  • what does the customer recover on insolvency?
  • can the customer demand specific assets or merely an equivalent value?

If the same asset remains recognised, a deposit or withdrawal can be a location change. If rights change, derecognition of native ETH and recognition of a claim may be required. The transaction record alone cannot decide it.

Selling ETH

For a sale, retain separately:

  • quantity sold;
  • gross proceeds;
  • exchange or broker fee;
  • network gas;
  • timestamp and venue;
  • book lot relieved;
  • tax lot relieved; and
  • cash or receivable received.

Do not net everything into one "sale amount" before the accounting logic is applied. The financial-reporting carrying amount and jurisdictional tax basis may use different lot systems and produce different gains.

Spending ETH

Paying 2 ETH for equipment is both:

  • acquisition of equipment; and
  • disposal of 2 ETH.

The equipment's measurement and the ETH disposal must each be supported. Gas is a third quantity outflow. A bookkeeping system that records only "Dr equipment / Cr ETH" can miss the disposal gain or loss and the fee.

Crypto-to-crypto exchanges

A swap of native ETH for another cryptoasset is not a transfer between own wallets simply because no fiat currency appears.

The entity derecognises ETH and recognises another asset. The other instrument may have a completely different accounting classification, particularly if it is a stablecoin, wrapped token, receipt token, liquid staking token, or token carrying contractual rights.

The gas is separate. Under US federal tax rules, current digital-asset transaction-cost rules can allocate exchange costs differently from a cash purchase or cash sale, which is why tax treatment must not be inferred from the book entry.

Lending ETH

The central question is whether the entity retains the ETH asset or transfers control and receives a receivable or other contractual right.

If a borrower can sell, pledge, or otherwise use the ETH and owes only equivalent ETH back later, the economic position can be very different from custody. Principal returned later should not be booked as fresh income. The return, fee, or yield is a separate component.

There is no universal journal entry for "lend ETH". Read the agreement.

Borrowing ETH

Borrowed ETH creates a gross asset and a liability if the entity controls the received ETH while owing equivalent ETH back.

Do not net the liability against the asset merely because both are denominated in ETH. Subsequent changes in the ETH price can affect the measurement of the asset and liability differently depending on the framework.

Repayment of principal reduces the liability. Any borrowing return is separate. ETH used to pay the return is itself a quantity outflow.

Collateral and liquidation

Posting ETH as collateral can be either:

  • a retained asset subject to restriction; or
  • a transfer that changes control or rights.

That distinction must be established from the protocol and contract.

A liquidation is not just "price went down". The entity may lose a specific ETH quantity, reduce a debt, incur a penalty, retain or lose a residual claim, and pay gas. Book each economic component separately.

Native staking deposits and withdrawals

A 32 ETH deposit to the Ethereum deposit contract is not automatically a disposal. When the entity runs its own validator and retains the relevant withdrawal control, the master analysis treats the event as the same ETH moving into a restricted consensus-layer position.

The later execution-layer withdrawal is likewise not automatically new income. Consensus rewards should not be recognised again when previously recognised ETH moves back to an execution address.

Reward timing and aggregation belong in Ethereum Staking Rewards.

Lost keys, theft, and misdirected transfers

These events demonstrate why "nothing happened on-chain" does not mean "nothing happened economically".

Lost keys

The balance can remain visible forever while the entity loses practical access. Assess whether control has been lost, whether recovery is reasonably possible, and what the applicable framework requires. Do not create a fake disposal transaction to make the ledger tie.

Theft

The chain may show a perfectly valid signed transfer from the address. That does not mean it was authorized by the entity. Investigate control loss, recovery rights, insurance, and legal claims separately.

Misdirected transaction

A valid transfer to the wrong address can be economically final even though no counterparty contract exists. The protocol record is clear. Recovery may be impossible. Derecognition and any loss presentation then follow the framework, not the fact that the chain calls the transaction "successful".

Hard forks and protocol upgrades

A protocol upgrade is not automatically an accounting event. Ask whether the entity received a new asset, lost an asset, or merely continued to hold the same ETH under changed network rules.

The US IRS, for example, has issued nonprecedential Chief Counsel Advice on a fact pattern matching a proof-of-work to proof-of-stake protocol change and concluded there was no realization event merely from the upgrade where the holder received no new asset. That is a US tax point, not a global accounting rule.

Protocol upgrades also change controls. Pectra changed withdrawal, validator, and account-delegation mechanics. Fusaka followed it with data-availability changes and a protocol-enforced cap on the gas any single transaction may use. Glamsterdam is upcoming as of 31 August 2026. A static procedure written against old Ethereum mechanics can therefore become wrong without any change in accounting standards.

Period end

Period-end entries should be built only after the quantity reconciliation is complete. At the close, how to account for Ethereum transactions is a reconciliation question before it is a measurement one.

The close sequence is:

  1. reconcile every execution-layer address in wei;
  2. reconcile validator balances in gwei;
  3. investigate missing internal transfers, failed transactions, withdrawals, rewards, and penalties;
  4. reconcile the total quantity to the book-lot ledger;
  5. apply the documented valuation policy;
  6. apply IFRS, US GAAP, or the relevant framework;
  7. separately reconcile tax basis under the jurisdiction's rules.

The detailed close procedure is in Ethereum Accounting Records, Controls, and Reconciliation.

How to account for an Ethereum event

Start from substance, not from the label in a wallet application.

  1. EventWhat occurred?
  2. Economic substanceWhat changed economically?
  3. EvidenceWhat proves it?
  4. ETH quantityWhat entered or left?
  5. Accounting entryFramework-specific result.
The same workflow applies to purchases, sales, custody, lending, collateral, staking, failures and losses.

How Tokenbooks helps with classifying Ethereum events

The event map above is the shape Tokenbooks works in. Every transaction is assigned an explicit operation type from an enumerated taxonomy: buy, sell, swap, expense, income, move, stake, unstake, protocol deposit and withdraw, liquidity in and out, vault, lend, borrow, repay, liquidation and intercompany. DeFi positions have dedicated handlers rather than a generic guess, including Aave v2 and v3, Uniswap v2 and v3 liquidity positions, Curve pools and gauges, Beefy vaults and Reserve staking on Ethereum.

Where this article says the answer is a policy rather than a fact, the policy is an explicit per-portfolio toggle: gas treatment, whether a protocol deposit reads as a taxable exchange or as a non-taxable reservation, and whether a stablecoin is the base currency or a separate asset. A per-portfolio rules engine then re-maps postings, matching on 17 fields with 11 operators and setting the counterparty, the ledger account or a responsibility-center split, so a recurring pattern is classified once rather than event by event.

The Ethereum integration page lists what the sync recognises.

More in this series

Accounting Token Anatomy: Native ETH. This article stands alone, but the series builds in order.

Previous (01.2.4): Ethereum Gas Fee Accounting

Next (01.2.6): Ethereum Valuation for Accounting

All fourteen articles

Sources and authority map

  • EIP-4895, "Beacon chain push withdrawals as operations". eips.ethereum.org
  • EIP-7002, "Execution layer triggerable withdrawals". eips.ethereum.org
  • EIP-7702, "Set Code for EOAs". eips.ethereum.org
  • Ethereum execution API specification. receipt schema
  • IFRS Interpretations Committee, "Holdings of Cryptocurrencies", June 2019. ifrs.org
  • IAS 38, IAS 36, IAS 2, IFRS 13, IFRS 15, IAS 8, IAS 21, IAS 7, IAS 12, IAS 1, IAS 10, IFRIC 23. IAS 38
  • FASB ASU 2023-08 (ASC 350-60 and ASC 230-10-45-27A). storage.fasb.org
  • AICPA, "Accounting for and auditing of digital assets" practice aid. aicpa-cima.com
  • KPMG, "Crypto assets" handbook, April 2026, and "Accounting for staking activities", April 2026. handbook
  • CRA, "Reporting income from crypto-asset transactions". canada.ca
  • IRS Notice 2014-21, as modified by Notice 2023-34. irs.gov
  • IRS frequently asked questions on digital-asset transactions (questions 47 to 111, added 15 December 2025), and the pre-2025 set. 2025 onward
  • IRS Chief Counsel Advice 202316008. irs.gov
  • Law Commission of England and Wales, "Digital assets: final report" (Law Com No 412). lawcom.gov.uk
  • In re Celsius Network LLC, memorandum opinion on ownership of Earn account assets, United States Bankruptcy Court, Southern District of New York, January 2023.

Research status. Protocol mechanics and published guidance were refreshed through 31 August 2026. Where a source is interpretive rather than authoritative, the text says so. This article is educational research, not accounting, tax, legal, valuation, or investment advice.

Frequently Asked Questions

Is a transfer between the entity's own Ethereum addresses a disposal?
No acquisition or disposal of the transferred quantity arises where the entity controls both addresses before and after. Preserve the principal ETH's book identity, move its location record, do not create a new acquisition lot or disposal income merely because an address sees a transfer, and record the gas separately. Under US federal tax rules the transfer is generally non-taxable, except for the digital assets used or withheld to pay transaction services.
Does a failed Ethereum transaction still create an accounting event?
Yes. The state changes made by the failed execution are reverted, but the sender still consumes ETH for gas and the nonce advances, so there can be no acquisition, no sale and no contract state change while a real ETH outflow occurred. Read the receipt status rather than the label the wallet applied to the attempt. Whether that fee is an expense, a loss, or nothing is a named guidance gap. A transaction rejected before block inclusion is different: it never becomes an on-chain transaction and consumes no gas.
Can an accounting event happen with no Ethereum transaction at all?
Yes, and several do. Consensus-layer rewards accrue in the validator balance with no transaction, and none will ever exist. Ordinary attestation penalties and the inactivity leak reduce the quantity with no transaction. Losing the only usable private key produces no public-chain event, and a period-end remeasurement is a reporting entry with no transaction and no new lot. Whether consensus-layer rewards are income as they accrue or only when they reach an execution address is an accounting-policy choice the entity has to select and disclose.
Is a 32 ETH deposit to the deposit contract a disposal?
Not automatically. Where the entity runs its own validator and retains the relevant withdrawal control, the event is the same ETH moving into a restricted consensus-layer position, so reclassify from unstaked to staked at carrying amount and disclose the restriction. The later execution-layer withdrawal is likewise not automatically new income, because consensus rewards should not be recognised again when previously recognised ETH moves back to an execution address.

Related articles

This is not tax, legal, or accounting advice.
Tokenbooks builds accounting software; we are not a CPA firm and not a tax adviser. Treatment varies by jurisdiction, by entity, and over time, and the rules described here can change after publication. Confirm any position with your own accountant or tax adviser before you rely on it.