Skip to content
ISO Coins

Guide 9

Guide 9 - Tax records that survive an audit

What to save for every deposit, buy, sell, transfer, fee and staking reward, how to export exchange CSVs and explorer transaction ids, and a folder system by tax year, with a free CSV template.

12 min readLast updated: October 11, 2026

Goal

By the end of this guide you will have one folder per tax year, one spreadsheet that lists every action you ever took with your coins, and a habit that takes about two minutes per transaction. The result is a file that a , an Israeli bank or a tax assessor can follow from the first shekel you deposited to the last shekel you withdrew.

Why this matters in Israel specifically: the Israel Tax Authority's 2018 circular tells assessing officers that crypto trading can break the usual audit trail, and instructs them to demand documents proving that each transaction happened and how large it was, including bank statements for the purchase and the sale and screenshots showing the purchase, the sale and the holding period. [1] Form 909, the ITA's form for reporting virtual currency activity, asks for the names of the exchanges and service providers you used, the public of your wallets, evidence for each source of funds, and a working paper that traces the coins across the holding period. [2] Banks ask for much the same set when you bring the money home (guide 8).

Nothing here is tax advice. The tax rules themselves are on the tax page. This guide is only about building the evidence.

Time needed

  • First setup (folders, template, exporting your history so far): 1-3 hours, depending on how many exchanges and years you have to reconstruct.
  • Per transaction, once the habit exists: about 2 minutes.
  • Year-end routine (export, reconcile, hand to the CPA): 1-2 hours.
  • Waiting for exchange exports: Kraken, for example, says an export request "can take anywhere from a few minutes to up to a week to process" and that it does not send an email when the file is ready. [4] Plan for that.

Before you start

  • A list of every place your coins have been. Every exchange account, every (hardware and software), every address you have ever received coins at. Write it down before you start; the gaps you find later are the ones that cost the most time.
  • Access to each exchange account, including old ones. Kraken notes that account history shown on the website "is limited to only recent activity for security and performance reasons" and that the full history requires an export file, so you need a working login, not a memory. [5]
  • A cloud or local folder you back up. Records that live only on one laptop are one coffee spill away from being gone.
  • The template. Download it here; the columns are explained in Step 3.

Download the CSV template

  • One decision with your CPA: the cost basis method. The ITA's Implementation Instruction 06/2024 tells assessing officers to check "the method the taxpayer used in computing taxable income (FIFO/LIFO, weighted average, and others)", which means the method must be consistent and documented. [3] The template has a notes column for the lot you matched; the method itself is a one-line decision you make once. Background on and is on the tax page.

Steps

Step 1 - Build the folder tree

Create one top-level folder, then one folder per tax year (the Israeli tax year is the calendar year). Inside each year, keep four sub-folders:

crypto-records/
  2026/
    01-bank/          bank statements showing ILS or FX transfers to and from exchanges
    02-exchanges/     CSV exports, order confirmations, KYC letters, fee schedules
    03-chain/         explorer screenshots or PDFs for each on-chain transfer
    04-tax/           the yearly ledger CSV, CPA correspondence, filed forms
  2027/
    ...
  ledger-all-years.csv

Name files so they sort by date: 2026-01-16_buy_xrp_kraken_order-123.png. The document_file column in the template points at these names, so a reviewer can jump from a row to its proof.

Step 2 - Know what to save for each action

The table below is the heart of the guide. Each row type appears in the action column of the template.

ActionWhat to saveWhere it comes from
deposit (fiat)Bank statement line showing the transfer to the exchange; the exchange's deposit confirmationBank app PDF; exchange "funding" or "deposits" history
buyOrder confirmation: date and time, coin, quantity, price, fee, counter asset; the exchange's trade CSVExchange order page screenshot; trades export
sellSame as buy, plus the fiat balance after the saleExchange order page; trades export
transfer_outThe transaction id (TxID), the sending and receiving addresses, the amount, the network fee, a screenshot of the explorer page showing "validated" or "confirmed"Your wallet app; the coin's block explorer
transfer_inSame, from the receiving side; note which of your accounts it came fromWallet app; explorer
feeAny fee not already captured in a buy, sell or transfer row (withdrawal fees, account fees)Exchange fee history or statement
staking_rewardDate received, amount, the shekel value that day and the rate source, the platform or Wallet or exchange rewards history; explorer

Why every transfer between your own wallets gets a row even though it is not a sale: the ITA's circular says audits follow documents that show the flow of cash and the holding of the asset. [1] A gap between "coins left Kraken" and "coins arrived at the hardware wallet" is exactly the kind of gap a reviewer will ask about, and Form 909 explicitly asks for a trace of the coins across the holding period. [2]

Why rewards get their own row: there is no official ITA guidance on rewards at the time of writing, so the safest record is the fullest one: date, amount, shekel value that day, source. Your CPA then decides the treatment with complete data. [1] See the staking section of the tax page.

Step 3 - Fill the template

The CSV has one row per action and 15 columns. Dates are in UTC so that rows from different exchanges line up; convert to Israel time only when you compute a tax year boundary.

ColumnMeaning
date_utcDate and time in ISO format, e.g. 2026-01-16T10:05:00Z
actionOne of: deposit, buy, sell, transfer_out, transfer_in, fee, staking_reward
exchange_or_walletWhere the action happened (exchange name or wallet label)
coinTicker: XRP, XLM, HBAR, ILS, USD...
amount_coinQuantity of the coin moved or traded
price_per_coin_ilsPrice per unit in shekels at that moment (buys, sells, rewards)
total_ilsTotal shekel value of the row
fee_coinFee amount in the coin it was charged in
fee_ilsFee converted to shekels
counter_assetWhat was on the other side: ILS, USD, USDC, or another coin in a swap
tx_id_or_order_idThe on-chain TxID or the exchange order id
from_addressSending address (transfers)
to_addressReceiving address (transfers)
notesLot matched, exchange rate source, anything a reviewer should know
document_fileFile name of the proof in your folder tree

The template ships with three example rows that are obviously fake (addresses like rExampleColdWalletAddress...). Delete them once you have real rows.

A rule for the shekel columns: use one rate source consistently and write it in notes the first time (for example "Bank of Israel USD representative rate" when the exchange priced in dollars). The ITA's circular requires barter transactions, including coin-to-coin swaps, to be valued at the shekel fair value at the time of the transaction, so every row needs a shekel figure even when no shekels moved. [1]

Step 4 - Export from each exchange

Exports are the fastest way to fill the past. Two examples, verified at the time of writing:

  • Kraken. Profile icon, then Documents, then Create Export. Choose Ledgers or Trades, set a start and end date, pick CSV and click Generate; the file appears in the Exports list when ready. Kraken states that "Trades and Ledgers require a start and end date" and that order history itself cannot be exported directly, so use Trades. [4] For very active accounts Kraken suggests splitting requests into yearly or quarterly chunks. [5]
  • Coinbase. The Statements page under Settings lets you download monthly statements or generate a custom one by asset, transaction type and date range, in CSV or PDF. [6]

Export both the trades file and the ledger or funding file where the exchange separates them: trades show buys and sells, the ledger shows deposits, withdrawals and fees. Save the raw files unchanged in 02-exchanges/ and build your ledger rows from them; never edit the originals.

Do this at least once a year even if you did nothing, so that an exchange closing, delisting a coin, or shortening its history window does not take your evidence with it.

Step 5 - Capture the chain side

For each transfer_out and transfer_in, open the TxID on the coin's explorer, confirm the status, and save the page as PDF or screenshot into 03-chain/. The explorer is the neutral witness: on the XRP Ledger, for example, a transaction's result is final once it is included in a validated ledger, so the explorer page is the authoritative record of what happened. [8]

CoinExplorer used in this guide
XRPXRPL Explorer (livenet.xrpl.org) [9]
XLMStellarExpert [10]
HBARHashScan [11]
ALGOAllo [12]
ADACexplorer [13]
XDCXDCScan [14]
IOTAIOTA Explorer [15]
QNTEtherscan (QNT is an ERC-20 on Ethereum) [16]

Keep the TxID even when everything went right. If something later goes wrong with an exchange deposit, Kraken's deposit-recovery article asks you to give support exactly these items: TxID, asset and amount, deposit address, date and time. [7] The same four items are what a bank reviewer or a CPA needs to follow a coin from one account to the next.

Step 6 - The year-end routine

  1. Export the full year from every exchange (Step 4) and reconcile against your ledger rows. Differences are usually missing fee rows or a forgotten small transfer.
  2. Sum the year's total_ils per action type. Your CPA will compute gains using the method you agreed; the spreadsheet is the input, not the tax return.
  3. Save the bank statements for the year into 01-bank/, including any letter the bank sent about crypto-related transfers.
  4. Freeze the year: copy the folder to a second location and do not edit it afterwards. Corrections go into the next year's folder with a note.

Keep the frozen years for as long as you still hold any coin bought in them, plus the years in which a sale can still be assessed; the exact retention period depends on your situation and is a question for your CPA.

Common mistakes

  • Recording only sells. The cost side (buys, fees, transfers) is what proves the gain was not the whole sale price. The circular's audit guidance lists documents for the purchase as well as the sale. [1]
  • Skipping self-transfers. They look like nothing, but they are the links in the chain Form 909 asks you to trace. [2]
  • Trusting the exchange to keep history forever. Kraken limits what the website shows and requires exports for the rest. [5] Other platforms change policies, delist coins or close.
  • No shekel value on coin-to-coin swaps. A swap is a disposal valued in shekels at the time of the transaction. [1]
  • Switching cost basis methods between years. The ITA checks which method you used; a change without a reason is a red flag. [3]
  • Screenshots without context. A picture of a number is not evidence. Capture the page with date, account name or address, amount and status visible.
  • Editing the raw exports. Keep the original file; do your cleaning in your own ledger.

If something goes wrong

An exchange you used has closed or you lost access. Collect what you still have: bank statements showing deposits to and withdrawals from it, e-mails with order confirmations, and the on-chain side. Explorers show the withdrawal from the exchange's address to yours, which proves the coins existed and when you received them. Write an explanatory letter for the gap; the circular itself lists "an explanatory letter from the seller describing how the coins were bought and sold" among the documents assessing officers may ask for. [1]

You cannot find a shekel price for an old date. Use the exchange's own export (it usually records the fill price), convert with a published official rate, and write the source in notes. Consistency matters more than the particular source.

Your rows do not match the exchange export. Start with fees and rounding; most differences are a withdrawal fee that was never written down. If a whole trade is missing, check whether it happened on a different sub-account or product on the same exchange.

The bank asks for documents before crediting a withdrawal. This is the scenario the whole folder is for. The Bank of Israel's October 2026 amendment to Directive 411, in force from 1 May 2027, requires banks to examine crypto-related transfers individually rather than refuse across the board, which in practice means they will ask for the file. [17] Bank Hapoalim's published policy, for example, asks for the origin of coins and the path of the funds. [18] Hand over the year folder: bank statements, exchange exports, explorer pages and the ledger. Guide 8 covers the withdrawal itself.

You are being audited and have gaps. Do not invent rows. Mark gaps, reconstruct what the chain can prove, and let your CPA handle the conversation. The ITA's instruction tells officers to check the taxpayer's method and documents; an honest, consistent file with a few documented gaps is a different conversation from a tidy file that does not match the chain. [3]

Official help articles

  • Israel Tax Authority - Income Tax Circular 05/2018 (audit guidance section) [1]
  • Israel Tax Authority - Form 909, reporting virtual currency activity [2]
  • Israel Tax Authority - Implementation Instruction 06/2024 [3]
  • Kraken - How to export your account history [4]
  • Kraken - How to view your older account history [5]
  • Coinbase - Accessing my account documents [6]
  • Kraken - Crypto assets deposit recovery (what a recovery form asks for) [7]
  • Our tax page for the rules the records serve

Sources

  1. חוזר מס הכנסה מספר 05/2018 - מיסוי פעילות באמצעי תשלום מבוזר (המכונים: 'מטבעות וירטואלים'), 17 January 2018 - Israel Tax Authority (copy hosted by Alexander Shapira & Co.) - http://www.capitax.co.il/Attachments/5-2018-22022018.pdf
  2. טופס 909 - דיווח על פעילות במטבעות וירטואלים לשנת המס - Israel Tax Authority (gov.il) - https://www.gov.il/BlobFolder/reports/pa030424-2/he/Service_Pages_Income_tax_itc-909.pdf
  3. הוראת ביצוע מס הכנסה מספר 06/2024 - נוהל לקבלת כספי מסים בשל רווח ממימוש אמצעי תשלום מבוזר, 3 April 2024 - Israel Tax Authority (gov.il) - https://www.gov.il/BlobFolder/reports/pa030424-2/he/IncomeTax_inst-06-2024.pdf
  4. How to export your account history on Kraken - Kraken Support - https://support.kraken.com/articles/208267878-how-to-export-your-account-history
  5. How to view your older account history - Kraken Support - https://support.kraken.com/articles/360001185486-how-to-view-your-older-account-history
  6. Accessing my account documents (statements and transaction history) - Coinbase Help - https://help.coinbase.com/en/coinbase/taxes/tools/statements (page blocks automated access; open in a browser)
  7. Crypto assets deposit recovery - Kraken Support - https://support.kraken.com/articles/crypto-assets-deposit-recovery
  8. Finality of Results - XRP Ledger documentation - https://xrpl.org/docs/concepts/transactions/finality-of-results
  9. XRPL Explorer (livenet) - XRP Ledger Foundation - https://livenet.xrpl.org/
  10. StellarExpert - Stellar network explorer - https://stellar.expert/explorer/public
  11. HashScan - Hedera network explorer - https://hashscan.io/
  12. Allo - Algorand explorer - https://allo.info/
  13. Cexplorer - Cardano explorer - https://cexplorer.io/
  14. XDCScan - XDC Network explorer - https://xdcscan.io/
  15. IOTA Explorer - IOTA Foundation - https://explorer.iota.org/
  16. Quant (QNT) ERC-20 token page - Etherscan - https://etherscan.io/token/0x4a220e6096b25eadb88358cb44068a3248254675
  17. Regulatory determination report: Proper Conduct of Banking Business Directive 411, AML/CFT risk management (amendment on payment services connected to virtual currencies), published 2026-10-07, effective 2027-05-01 - Bank of Israel, Banking Supervision Department (PDF, Hebrew) - https://www.boi.org.il/media/mndpivu5/202627.pdf
  18. מתן שירותי תשלום אגב פעילות במטבע וירטואלי של לקוחות - עיקרי מדיניות הבנק - Bank Hapoalim (PDF, Hebrew) - https://www.bankhapoalim.co.il/sites/default/files/media/PDFS/%D7%A2%D7%99%D7%A7%D7%A8%D7%99%20%D7%9E%D7%93%D7%99%D7%A0%D7%99%D7%95%D7%AA%20%D7%94%D7%91%D7%A0%D7%A7%20-%20%D7%90%D7%92%D7%91%20%D7%A4%D7%A2%D7%99%D7%9C%D7%95%D7%AA%20%D7%91%D7%9E%D7%98%D7%91%D7%A2%D7%95%D7%AA%20%D7%95%D7%99%D7%A8%D7%98%D7%95%D7%90%D7%9C%D7%99%D7%99%D7%9D.pdf