
Israeli Crypto Tax Reporter
- 61 installs
- 29 repo stars
- Updated August 3, 2026
- skills-il/tax-and-finance
Prepare Israeli income-tax-aligned crypto capital-gains figures and cited regulatory claims before filing or handing numbers to an accountant.
About
Israeli Crypto Tax Reporter is an agent skill for solo builders and indie operators who hold or trade virtual currency under Israeli rules. It packages sourced tax claims—rates, ordinance sections, and corporate treatment—into a structured schema so your agent can reason about filing posture instead of hallucinating percentages. Use it when you export exchange CSVs, reconcile wallets, or need defensible numbers before annual reporting or accountant handoff. The skill ties narrative guidance to references and a gains calculator script, emphasizing traceability from each asserted rule to an official or professional summary URL. It does not replace licensed tax advice; it accelerates preparation, documentation, and consistency for Israel-specific crypto capital gains workflows. Complexity is intermediate because you must classify activity, handle edge cases, and validate inputs against real transaction history.
- Maps individual crypto gains to 25% CGT and 30% for significant (10%+) shareholders, with corporate 23% references
- Grounds outputs in verifiable claims with gov.il and PWC source URLs and raw Hebrew/English snippets
- Schema-driven claim IDs (e.g. cgt-individual-25, corporate-23) reused across SKILL.md, references, and calculator script
- Supports business vs capital-gains framing when activity may be classified as a trade
- Bilingual documentation path (SKILL_HE.md) for Israeli operators
Israeli Crypto Tax Reporter by the numbers
- 61 all-time installs (skills.sh)
- Ranked #569 of 1,106 Finance & Trading skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/skills-il/tax-and-finance --skill israeli-crypto-tax-reporterAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 61 |
|---|---|
| repo stars | ★ 29 |
| Security audit | 2 / 3 scanners passed |
| Last updated | August 3, 2026 |
| Repository | skills-il/tax-and-finance ↗ |
What it does
Prepare Israeli income-tax-aligned crypto capital-gains figures and cited regulatory claims before filing or handing numbers to an accountant.
Files
Israeli Crypto Tax Reporter
Instructions
Step 1: Understand the Israeli Crypto Tax Framework
Before performing any calculations, ensure you understand the key regulatory principles:
Core legal basis:
- Cryptocurrency is classified as an asset (neches) under Section 88 of the Income Tax Ordinance (Pekudat Mas Hachnasa), not as currency.
- Gains from selling crypto are taxed as capital gains (revach hon) under Chapter E of the Ordinance.
- The Israeli Tax Authority published Circular 2018/05 (chozar 05/2018) which provides the primary guidance on crypto taxation.
- The circular was reinforced by subsequent guidance and court rulings establishing that crypto is a taxable asset.
Tax rates:
- Individuals: 25% capital gains tax on profits. If the seller is a "significant shareholder" (baal meniayot mahuti) of a crypto project, the rate is 30%.
- Business/traders: If crypto activity constitutes a business (esek), gains are taxed as ordinary income at marginal rates (up to 47%, plus the surtax) instead of the 25% capital rate. This is the single highest-stakes determination in crypto tax. Circular 05/2018 sets out the "badge of trade" factors the assessing officer weighs - walk the user through them rather than guessing: (1) frequency and volume of trades, (2) holding period (short flips lean business), (3) time and attention devoted to trading, (4) use of leverage or sophisticated strategies, (5) the taxpayer's professional knowledge of the market, (6) financing method, and (7) whether crypto is held as inventory vs. long-term investment. No single factor decides it; the overall pattern does. When the answer is genuinely borderline, recommend a pre-ruling (hachlatat misui) or CPA review. Business classification also pulls in National Insurance + health tax (see references) and, for miners and dealers, VAT at 18% plus osek registration - which is outside this skill's scope and needs separate professional consultation.
- Companies: Standard corporate tax rate (23%, since 2018) applies to capital gains.
- Surtax (mas yesafim): the 2025 budget reform restructured the surtax from a flat 3% on labor income into a two-component charge that explicitly reaches passive and capital income, including crypto capital gains. For 2026 the structure is 3% base on all taxable income above NIS 721,560 PLUS an additional 2% on capital-source income (capital gains, dividends, interest, rentals) above the same threshold - effective 5% on crypto gains in the band above the threshold. The threshold (NIS 721,560 / monthly NIS 60,130) is frozen through tax year 2027 by the December 2024 indexation-pause amendment, so do not apply CPI uplifts. The pre-2025 framing of "3% surtax on labor income only" is obsolete; crypto capital gains are now within the surtax base, materially raising the effective rate on large realizations.
Cost basis method:
- Israel mandates FIFO (First In, First Out) for calculating cost basis unless the taxpayer can demonstrate a different method was consistently applied.
Currency conversion:
- All transactions must be converted to New Israeli Shekel (NIS) at the exchange rate on the transaction date.
- For crypto-to-crypto trades, the NIS value of both sides must be determined at the time of trade.
Step 2: Collect Transaction Data
Gather the user's complete transaction history. The following data points are needed for each transaction:
1. Date and time of the transaction 2. Transaction type: buy, sell, trade (crypto-to-crypto), receive (airdrop, staking reward, mining), send, gift 3. Asset: Which cryptocurrency (BTC, ETH, etc.) 4. Amount: Quantity of the asset 5. Price in NIS (or USD/other fiat for conversion): The value at the time of transaction 6. Exchange/platform: Where the transaction occurred (Bits of Gold, Binance, Coinbase, etc.) 7. Fees: Transaction fees, gas fees, exchange fees (deductible from gains) 8. Wallet addresses (optional, for verification)
Common data sources:
- Israeli exchanges: Bits of Gold (bits.co.il), Bit2C (bit2c.co.il) provide transaction history exports
- International exchanges: Binance, Coinbase, Kraken, KuCoin provide CSV exports
- DeFi protocols: On-chain transaction history from Etherscan, BscScan, etc.
- Hardware wallets: Ledger Live, Trezor Suite export functions
Step 3: Calculate Capital Gains Using FIFO
Use the crypto gains calculator script to process transactions:
python scripts/crypto-gains-calculator.py --input transactions.csv --year 2024 --currency ILSThe calculator applies FIFO methodology:
1. Queue all purchases by date (oldest first) 2. For each sale, match against the oldest available purchase lots 3. Calculate gain/loss for each matched lot: (sale price - purchase price - fees) per unit 4. Sum all gains and losses for the tax year 5. Convert to NIS using Bank of Israel exchange rates for the transaction dates
Key FIFO rules for Israel:
- When selling a portion of holdings, the cost basis comes from the earliest (oldest) acquisition
- If a lot is partially consumed, the remainder stays in the queue
- Crypto-to-crypto trades are treated as a disposal (sale) of one asset and acquisition (purchase) of the other
- The NIS value at the time of the trade determines both the sale price and new acquisition cost
Step 4: Classify DeFi and Special Income
Different crypto activities have different tax treatments in Israel:
| Activity | Classification | Tax Rate | Reporting |
|---|---|---|---|
| Buy and hold, then sell | Capital gain | 25% | Form 1325 |
| Crypto-to-crypto swap | Capital gain (disposal + acquisition) | 25% | Form 1325 |
| Staking rewards | Ordinary income or capital gain (debated) | 25-50% | Form 1301 or 1325 |
| Liquidity mining/yield farming | Ordinary income | Marginal rates | Form 1301 |
| Airdrops (free tokens) | Income at receipt, capital gain on sale | Marginal + 25% | Form 1301 + 1325 |
| Mining | Business income or capital gain | Depends on scale | Form 1301 or 1325 |
| NFT sales (creator) | Business income | Marginal rates | Form 1301 |
| NFT sales (collector) | Capital gain | 25% | Form 1325 |
| Hard fork tokens | Zero cost basis, capital gain on sale | 25% | Form 1325 |
| Lending interest (CeFi/DeFi) | Interest income | 25% (passive) | Form 1301 |
Important classification notes:
- Staking: The Tax Authority has not issued definitive guidance on staking. Conservative approach treats rewards as income at receipt (valued at market price), then capital gain/loss on subsequent sale. Some tax advisors argue it is similar to dividends (25% rate).
- Airdrops: Received tokens are considered income at the market value on the date of receipt. Cost basis for future sale is that market value.
- Hard forks: New tokens from hard forks (e.g., BCH from BTC) have a zero cost basis. The entire sale proceeds are treated as capital gain.
- DeFi yields: Liquidity provision rewards, farming rewards, and similar DeFi income are generally classified as ordinary income, taxed at marginal rates.
Consult references/crypto-tax-regulations.md for detailed regulatory analysis. Consult references/crypto-tax-scenarios.md for worked examples of each scenario.
Step 5: Generate Form 1322 / 1325 Data
Crypto capital gains for individuals are reported on Appendix ג to the annual tax return. Two related forms are involved:
- Form 1322 (Nispach Gimel) - the primary capital gains schedule attached to the annual return; this is where totals land.
- Form 1325 (Nispach Gimel(1)) - an auxiliary detail form for negotiable-securities sales where tax was not withheld at source. It feeds line totals into Form 1322. Most crypto sales (no Israeli source-withholding) belong here.
Generate the required data:
python scripts/crypto-gains-calculator.py --input transactions.csv --year 2025 --form-1325The form requires for each disposal: 1. Asset description: "Bitcoin (BTC)" or similar 2. Date of acquisition: Purchase date (FIFO-determined) 3. Date of disposal: Sale date 4. Acquisition cost (in NIS): Original purchase price + fees 5. Disposal proceeds (in NIS): Sale price - fees 6. Capital gain or loss (in NIS): Proceeds minus cost 7. Holding period: Records whether the lot was held under or over 12 months. For crypto, individuals pay 25% in both cases - there is no US-style long-term-rate preference. The duration matters mainly for the inflation-component (sechum hatzmada) calculation under Section 91(b)(3), which the calculator does NOT yet apply (see Gotchas).
Loss offsetting rules:
- Capital losses from crypto can offset capital gains from crypto in the same tax year
- Capital losses from crypto can offset capital gains from other assets (stocks, real estate) in the same year
- Capital losses can be carried forward to offset capital gains in future years under Section 92 of the Income Tax Ordinance (but cannot offset ordinary income)
- Losses from one spouse can offset gains of the other spouse if filing jointly
Step 6: Calculate Advance Tax Payments (Mikdamot)
If the user has crypto gains during the year, they generally need to file and pay advance tax (mikdama) ahead of the annual return:
- Form: Form 1399י (1399-yod) for individuals - the dedicated capital gains advance-payment form. Virtual-currency disposals are filed with transaction codes 77 (sale) and 71 (virtual currency). Form 1399ח is the equivalent for companies.
- Reporting deadline: within 30 days of the capital gain event for one-off disposals; the form is filed to the assessing officer (pakid shuma).
- Payment: 25% of the gain for individuals (or 30% for significant-shareholder cases).
- Annual reconciliation: advance payments are credited against the final annual tax liability when filing the annual return.
- Penalties for non-payment: interest (ribit) and linkage differences (hafreshei hatzmada) accrue from the 30-day deadline.
The legacy "Form 7002" reference in older guides is outdated for crypto reporting - use Form 1399י.
python scripts/crypto-gains-calculator.py --input transactions.csv --year 2025 --advance-paymentsStep 7: Provide Filing Guidance
Guide the user through the tax filing process:
1. Compile capital gains schedule: list all disposals on Form 1325 (auxiliary), with totals carried into Form 1322 (Appendix ג of the annual return). 2. File annual tax return: submit Form 1301 (the individual annual return, doch shnati) with Forms 1322 and 1325 attached as appendices. A crypto disposal generally creates a filing obligation, but check the TY2025 exemption first: a draft amendment to the exemption-from-filing regulations (טיוטת תקנות מס הכנסה (פטור מהגשת דין וחשבון), published for comment Jan 2025) exempts a salaried taxpayer from the annual return on crypto gains when the crypto was traded through a supervised Israeli platform that withheld the tax at source AND total income stays under the Section 131 ceilings (roughly NIS 723,000 gross from work/business, or NIS 721,560 total taxable income from all sources). Exceeding either ceiling, incomplete withholding, or trading through an unsupervised/foreign venue restores the full Section 131 filing duty. Paying an advance (mikdama) does NOT by itself remove the annual-return obligation. Verify the final regulation text before relying on the exemption, since it was still in draft as of mid-2026. 3. Filing deadline: for tax year 2025 (filed in 2026), the deadlines published by the Israeli Tax Authority are 30 June 2026 for online filing via the gov.il portal and 29 May 2026 for paper filing. Returns filed via a representing accountant typically receive extensions through July or September. Always verify the current year's deadlines on gov.il/he/service before filing. 4. Self-assessment of surtax: individuals whose total taxable income (including crypto gains) exceeds NIS 721,560 must also self-assess surtax (mas yesafim) - 3% base on income above the threshold plus an additional 2% on capital-source income above the same threshold. The threshold is frozen through 2027. 5. Voluntary Disclosure window: prior-year unreported crypto gains can be regularised under the 2025-2026 Voluntary Disclosure Procedure (Nohal Gilui Mirtzon), which expressly covers digital assets and grants criminal immunity. Deadline: 31 August 2026. Two tracks: a Green Track for smaller cases (annual income up to NIS 500k and cumulative crypto assets up to NIS 1.5M as of 31 Dec 2024) and a Regular Track for larger cases. Anonymity is no longer available; all applications are filed with identifying details. 6. Paying tax when a bank refuses the funds (Form 909): a recurring Israeli pain point is that a commercial bank refuses (in writing) to accept crypto-derived deposits, leaving the taxpayer unable to fund the tax payment from a normal account. For this case the ITA, with the Bank of Israel and the Anti-Money-Laundering Authority, runs a special procedure (Hora'at Sha'a, ITA Instruction 06/2024) under which an individual (not a company) files Form 909 ("דיווח על פעילות במטבעות וירטואליים ובקשה לתשלום המס המגיע במימוש המטבעות") to the assessing officer and pays the tax in NIS directly into the ITA's account at the Bank of Israel. Required attachments include a written bank-refusal letter, a taxable-income working paper, a full money-trail of the coins, and proof of the legal source of the original funds. Filed online via the ITA CRM together with the annual return, or physically at the assessing officer. The request undergoes a money-laundering-risk review before payment is accepted. 7. Record keeping: maintain all transaction records, exchange exports, and wallet data for at least 7 years.
When to recommend professional help:
- Transaction volume exceeds 100 trades per year
- DeFi activities involve complex protocols (multi-chain, bridging, wrapping)
- User is unsure whether activity constitutes a business vs. investment
- Total gains exceed 500,000 NIS
- User received tokens from an ICO, IEO, or similar offering
- Cross-border transactions involving Israeli and foreign tax obligations
Examples
Example 1: Simple Bitcoin Buy and Sell
User says: "I bought 0.5 BTC in January 2025 for 80,000 NIS and sold it in August 2025 for 120,000 NIS. What's my tax?"
Actions: 1. Identify the transaction: single buy, single sell. 2. Calculate capital gain: 120,000 - 80,000 = 40,000 NIS. 3. Apply 25% capital gains tax: 40,000 x 0.25 = 10,000 NIS. 4. Check surtax threshold: a 40,000 NIS gain is well below NIS 721,560, so no surtax (assuming no other income above the threshold). 5. Note the holding period: 7 months. The 25% rate applies regardless, but the inflation-component split (sechum hatzmada) is negligible for such a short hold.
Result: capital gain 40,000 NIS, tax liability 10,000 NIS. The user should have filed Form 1399י (transaction codes 77/71) within 30 days of the August sale and paid the 10,000 NIS as a mikdama. If the deadline is missed, the user should still file and pay as soon as possible to minimise interest and linkage penalties. The gain is then reported on Forms 1325/1322 as part of the 2025 annual tax return, due 30 June 2026 (online) or 29 May 2026 (paper).
Example 2: Crypto-to-Crypto Trade with FIFO
User says: "I bought 2 ETH at 5,000 NIS each in March 2024, then 3 ETH at 7,000 NIS each in June 2024. In October I traded 3 ETH for 0.5 BTC when ETH was worth 9,000 NIS each. What's my tax situation?"
Actions: 1. Build the FIFO queue: Lot 1: 2 ETH @ 5,000 NIS (March), Lot 2: 3 ETH @ 7,000 NIS (June) 2. Process the disposal: 3 ETH traded in October (crypto-to-crypto = taxable disposal) 3. Apply FIFO: First consume Lot 1 (2 ETH @ 5,000), then 1 ETH from Lot 2 (@ 7,000) 4. Calculate gains:
- Lot 1: 2 ETH x (9,000 - 5,000) = 8,000 NIS gain
- Lot 2 partial: 1 ETH x (9,000 - 7,000) = 2,000 NIS gain
- Total gain: 10,000 NIS
5. Tax at 25%: 10,000 x 0.25 = 2,500 NIS 6. Note remaining position: 2 ETH from Lot 2 (@ 7,000 NIS cost) + 0.5 BTC (@ 27,000 NIS total cost, which is 3 x 9,000 NIS)
Result: The crypto-to-crypto trade triggers a taxable event of 10,000 NIS capital gain (2,500 NIS tax). The new BTC position has a cost basis of 27,000 NIS (the NIS value of 3 ETH at the time of trade). The remaining 2 ETH retain their original cost basis of 7,000 NIS each. The agent generates a Form 1325 entry for this disposal.
Example 3: DeFi Staking Rewards Classification
User says: "I staked 10 ETH on a DeFi protocol and earned 0.5 ETH in staking rewards over 2024. The ETH was worth 8,000 NIS when I received the rewards. I haven't sold anything yet. Do I owe taxes?"
Actions: 1. Classify the staking rewards: under conservative interpretation, treated as income at receipt 2. Calculate income: 0.5 ETH x 8,000 NIS = 4,000 NIS taxable income 3. Determine the applicable rate: this could be 25% (if treated as passive income/interest) or marginal rate (if treated as ordinary income) 4. Consult references/crypto-tax-regulations.md for the latest guidance on staking classification 5. Note: the 10 staked ETH have not been disposed of, so no capital gain event on those 6. Establish cost basis for the 0.5 reward ETH: 8,000 NIS per ETH (4,000 NIS total)
Result: Under the conservative approach recommended by most Israeli tax advisors, the 0.5 ETH staking reward is taxable income of 4,000 NIS in the year received, regardless of whether it was sold. The tax rate depends on classification: 25% if treated as passive income (1,000 NIS tax), or marginal rates if treated as ordinary income (potentially up to 50%). The agent recommends consulting a tax advisor for classification, as the Tax Authority has not issued definitive guidance. The 0.5 ETH has a cost basis of 4,000 NIS for future capital gains calculation.
Bundled Resources
Scripts
scripts/crypto-gains-calculator.py-- FIFO capital gains calculator with NIS conversion, supporting multiple exchanges and generating Form 1325 data. Run:python scripts/crypto-gains-calculator.py --help
References
references/crypto-tax-regulations.md-- Israeli Tax Authority circulars, relevant Income Tax Ordinance sections, classification rules for different crypto activities, and reporting deadlines. Consult when determining the correct tax treatment for specific crypto activities.references/crypto-tax-scenarios.md-- Worked examples covering simple trades, crypto-to-crypto swaps, DeFi staking, NFT sales, mining income, airdrops, and hard forks. Consult when calculating tax for specific transaction types.
Recommended MCP Servers
| MCP | What It Adds |
|---|---|
| BOI Exchange Rates | Provides the official Bank of Israel daily representative rate (sha'ar yatzig) for USD, EUR, and 30+ other currencies - the rate this skill requires for converting non-NIS legs of every transaction. Live access removes the need to scrape boi.org.il manually and ensures the FIFO calculator sees authoritative same-day NIS values. |
Gotchas
- Israel taxes crypto as property (capital gains), not as currency. Agents may apply currency-exchange rules or VAT to crypto transactions, which is incorrect under Israeli tax law.
- The Israeli capital gains tax rate on crypto is 25% for individuals (mas revach hon), not the US 15%/20% rates. Agents trained on US tax data will use the wrong rate.
- Israeli crypto tax reporting uses FIFO (First In, First Out) as the default cost basis method. Agents may default to average cost or LIFO, which are not standard practice in Israel.
- Crypto-to-crypto swaps are taxable events in Israel. Agents may treat them as non-taxable exchanges (the old US rule), but this has never been the case in Israel.
- Stablecoins (USDT, USDC, DAI) are still "asset" under Section 88 of the Income Tax Ordinance, not foreign currency. Every USDT-to-USDC swap, every conversion-leg of a DeFi trade, and every USDT off-ramp to fiat is a taxable disposal valued in NIS. Users frequently treat stablecoins as "cash equivalents" and skip them, missing the majority of taxable events for active DeFi participants.
- Inflation indexation (sechum hatzmada) is not yet applied by the calculator. Section 91(b)(3) splits any capital gain into a "real gain" (taxed at 25%) and an "inflation-component gain" (taxed at 0% for individuals on assets acquired after 1.1.1994). The current calculator multiplies total gain by 25% with no CPI step, so it overstates tax on lots held longer than ~12 months in inflationary years. For long-held lots, agents should flag this limitation to the user and recommend a manual indexation pass or a CPA review before filing.
- Israel has no wash-sale rule. Unlike the US 30-day rule, Israeli tax law allows a taxpayer to realise a December capital loss and re-buy the same crypto in January with the loss fully recognised. Agents trained on US tools may incorrectly disallow such losses.
- Gifts and inheritance use carryover basis under Section 97(a)(5) - the recipient inherits the donor's original cost basis and acquisition date. Treating an inherited 1 BTC as zero-basis or as fair-market-value at inheritance produces wildly wrong numbers. Document the donor's records.
- Crypto lost to exchange insolvency (FTX, Celsius pattern), theft, or lost private keys is recognised as a capital loss only when the loss is final and documented (e.g., bankruptcy court order, police report). Agents should not write off frozen-but-not-bankrupt balances and should not treat loss-of-keys as deductible without supporting evidence.
- Leaving Israel triggers an exit tax (deemed sale, Section 100A). A resident who ceases Israeli residency (yerida, or an oleh who later leaves) is treated as having sold all assets, crypto included, one day before residency ends. The tax can be paid at exit or deferred to the actual future sale, with the gain apportioned over the Israeli-residency period. This is a distinct event from a normal disposal and the FIFO calculator here does NOT model it. For any relocation scenario, flag Section 100A and route the user to a CPA (and the relocation/aliyah skills) rather than producing a plain disposal figure.
Troubleshooting
Error: "Cannot determine NIS exchange rate for date"
Cause: The calculator could not find the NIS/USD or NIS/crypto exchange rate for the specified transaction date. This often happens with weekends or Israeli holidays when the Bank of Israel does not publish rates. Solution: For dates when the Bank of Israel does not publish rates (Shabbat, holidays), use the rate from the most recent business day prior to the transaction. The calculator attempts this automatically, but if it fails, specify the rate manually with the --manual-rate flag. For crypto-to-NIS conversion, the calculator uses the exchange's reported NIS price when available, or the USD price multiplied by the USD/NIS rate from Bank of Israel.
Error: "FIFO queue exhausted - more sold than purchased"
Cause: The transaction history shows more crypto being sold than was purchased. This usually indicates missing purchase transactions (e.g., deposits from another exchange, transfers from a personal wallet, or an incomplete transaction history export). Solution: Review the transaction history for completeness. Check if crypto was transferred in from another exchange or wallet (these transfers are not taxable events but must be recorded to maintain accurate cost basis). Add the missing purchase records. If the original purchase records are unavailable, Israeli tax law allows using the earliest available market price as a fallback cost basis, but this should be documented and disclosed.
Error: "Transaction type not recognized for tax classification"
Cause: The calculator encountered a transaction type it cannot automatically classify for tax purposes (e.g., a complex DeFi interaction, bridge transaction, or wrapped token conversion). Solution: Review the transaction manually. Common DeFi operations and their classifications: wrapping (ETH to WETH) is generally not a taxable event; bridging between chains may be a taxable event if it involves a swap; providing liquidity is not taxable until withdrawal (but LP token movements may trigger events). For complex DeFi operations, consult references/crypto-tax-scenarios.md and consider professional tax advice.
Error: "Form 1325 generation failed - missing required fields"
Cause: Some transactions are missing data required for Form 1325 (typically the acquisition date or the NIS value at acquisition). Solution: Review the error output which lists the specific transactions with missing data. For each, provide the acquisition date (FIFO-determined) and the NIS value at that date. If the acquisition was a gift or airdrop, the cost basis rules differ: gifts use the donor's cost basis (Section 97(a)(5) carryover), and airdrops use the market value at receipt. Update the transaction CSV with the corrected data and re-run.
Reference Links
| Source | URL | What to Check |
|---|---|---|
| Israeli Tax Authority - annual return service (Form 1301) | https://www.gov.il/he/service/reporting-and-payment-2025-annual-tax-report-for-individuals | Current-year filing deadlines, links to Forms 1322 and 1325, online filing portal |
| Bank of Israel - representative rates (sha'ar yatzig) | https://www.boi.org.il/roles/markets/exchangerates/ | Daily NIS reference rates for currency conversion of foreign-fiat legs of crypto trades |
| ITA Circular 05/2018 (crypto classification, FIFO, virtual currency definition) | https://www.gov.il/BlobFolder/policy/income-tax-professional-inst-5-2018/he/Policy_ProfessionalInstIncomeTax_hor_acc%2015.2.18.pdf | Foundational tax-treatment guidance for virtual currencies |
| Voluntary Disclosure Procedure 2025-2026 (crypto track) | https://www.gov.il/he/pages/pa010925-1 | Eligibility, Green vs Regular Track, deadline 31 Aug 2026, required documentation |
| Form 909 - paying crypto tax when a bank refuses the funds | https://www.gov.il/he/service/reporting-cryptocurrency-activity | Bank-refusal payment procedure, required attachments, individuals only |
| Bituach Leumi self-employed rates (2026) | https://www.btl.gov.il/Insurance/National%20Insurance/type_list/Self_Employed/Pages/rates.aspx | Current National Insurance + health-tax rates for business-classified crypto traders |
| OECD Crypto-Asset Reporting Framework (CARF) - committed jurisdictions | https://www.oecd.org/content/dam/oecd/en/networks/global-forum-tax-transparency/commitments-carf.pdf | Israel among committed jurisdictions; collection from 2026, first exchange expected 2027-2028 (verify the year against the latest OECD monitoring update) |
{
"schemaVersion": "1.0",
"skill": "israeli-crypto-tax-reporter",
"generated_at": "2026-06-07T00:00:00Z",
"claims": [
{
"claim_id": "cgt-individual-25",
"claim": "Individuals pay 25% capital gains tax on crypto profits; a significant shareholder (holding 10%+) pays 30%. Crypto is an asset under Section 88 of the Income Tax Ordinance, gains taxed as capital gains under Chapter E, per Section 91 and Section 91(b)(1).",
"source_url": "https://www.gov.il/BlobFolder/policy/income-tax-professional-inst-5-2018/he/Policy_ProfessionalInstIncomeTax_hor_acc%2015.2.18.pdf",
"raw_snippet": "מטבע וירטואלי מהווה נכס לפי סעיף 88 לפקודה, ורווח ממכירתו חייב במס רווח הון לפי חלק ה לפקודה; שיעור המס ליחיד 25%, ולבעל מניות מהותי 30%.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md", "scripts/crypto-gains-calculator.py"]
},
{
"claim_id": "corporate-23",
"claim": "Companies pay the standard corporate tax rate of 23% on capital gains and business income (since 2018).",
"source_url": "https://taxsummaries.pwc.com/israel/corporate/taxes-on-corporate-income",
"raw_snippet": "The corporate tax rate in Israel is 23%.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md"]
},
{
"claim_id": "business-marginal-rates",
"claim": "If crypto activity is a business, gains are taxed as ordinary income at marginal rates (10% to 47%, with the old shorthand 'up to 50%'), plus National Insurance and health tax.",
"source_url": "https://taxsummaries.pwc.com/israel/individual/taxes-on-personal-income",
"raw_snippet": "Personal income is taxed at progressive marginal rates up to 47%, with an additional surtax bringing the top effective rate higher.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md"]
},
{
"claim_id": "surtax-2026",
"claim": "Surtax (mas yesafim) for 2026: 3% base on all taxable income above NIS 721,560 plus an additional 2% on capital-source income above the same threshold, effective 5% on crypto gains in that band. Threshold NIS 721,560 annual / NIS 60,130 monthly, frozen through tax year 2027 by the December 2024 indexation-pause amendment.",
"source_url": "https://bakertilly.co.il/blog-mas-yasaf-2026.html",
"raw_snippet": "מס יסף בשנת 2026: 3% על הכנסה החייבת מעל 721,560 ש\"ח, ובתוספת 2% על הכנסה הונית מעל אותו סף, כך שעל רווחי הון השיעור הכולל הוא 5%. הסף קפוא לשנים 2025 עד 2027.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md", "scripts/crypto-gains-calculator.py"]
},
{
"claim_id": "vat-18",
"claim": "Israeli VAT rate is 18% from 1 January 2025 (raised from 17%); applies to business-classified crypto activity such as mining and dealing.",
"source_url": "https://sovos.com/regulatory-updates/vat/israel-vat-rate-increase-to-18-from-january-1-2025/",
"raw_snippet": "Israel increased its standard VAT rate to 18% from 17% effective 1 January 2025.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md"]
},
{
"claim_id": "vdp-2025-2026",
"claim": "The 2025-2026 Voluntary Disclosure Procedure expressly covers digital assets, deadline 31 August 2026. Green Track: annual income up to NIS 500,000 and cumulative crypto assets up to NIS 1.5M as of 31 December 2024; Regular Track above. Anonymity removed.",
"source_url": "https://www.gov.il/he/pages/pa010925-1",
"raw_snippet": "נוהל גילוי מרצון (הוראת שעה, אוגוסט 2025): המועד האחרון להגשת בקשות הוא 31 באוגוסט 2026; מסלול ירוק להכנסה שנתית עד 500,000 ש\"ח ושווי נכסים דיגיטליים מצטבר עד 1.5 מיליון ש\"ח נכון ל-31 בדצמבר 2024.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md"]
},
{
"claim_id": "carf-2026-2027",
"claim": "Israel is among the jurisdictions committed to the OECD Crypto-Asset Reporting Framework (CARF); Israeli RCASPs collect customer data from 2026, with first international exchange expected 2027-2028. The exact first-exchange year has shifted between OECD monitoring updates and must be verified against the latest OECD commitments list.",
"source_url": "https://www.oecd.org/content/dam/oecd/en/networks/global-forum-tax-transparency/commitments-carf.pdf",
"raw_snippet": "Israel appears on the OECD list of jurisdictions committed to implement CARF, with first exchanges in the 2027-2028 window depending on the monitoring-update edition; collection begins 2026.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md"]
},
{
"claim_id": "annual-deadlines-2025",
"claim": "Tax year 2025 annual return (filed in 2026) deadlines: 30 June 2026 for online filing via the gov.il portal, 29 May 2026 for paper filing. Filed on Form 1301 with Forms 1322 and 1325 as appendices.",
"source_url": "https://www.gov.il/he/service/reporting-and-payment-2025-annual-tax-report-for-individuals",
"raw_snippet": "המועד להגשת הדוח השנתי לשנת המס 2025: 30 ביוני 2026 בהגשה מקוונת, 29 במאי 2026 בהגשה ידנית. טופס 1301.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md"]
},
{
"claim_id": "forms-1322-1325-1399",
"claim": "Capital gains reported on Form 1322 (Nispach Gimel) with Form 1325 (Nispach Gimel(1)) auxiliary detail. Advance payment within 30 days of disposal on Form 1399י (transaction codes 77 sale, 71 virtual currency); Form 1399ח for companies. Annual return Form 1301.",
"source_url": "https://www.gov.il/he/service/reporting-and-payment-2025-annual-tax-report-for-individuals",
"raw_snippet": "טופס 1399 ליחיד לתשלום מקדמה בשל רווח הון, תוך 30 יום; סימן עסקה 77 למכירה וקוד 71 למטבע וירטואלי; טופס 1322 ו-1325 כנספחים לדוח השנתי 1301.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md", "scripts/crypto-gains-calculator.py"]
},
{
"claim_id": "bituach-leumi-2026",
"claim": "Self-employed National Insurance 2026: 4.47% on monthly income up to about NIS 7,703, 12.83% on the portion above. Health tax 3.23% / 5.17% across the same bands. Combined roughly 7.7% / 18%. Applies only to business-classified income.",
"source_url": "https://www.btl.gov.il/Insurance/National%20Insurance/type_list/Self_Employed/Pages/rates.aspx",
"raw_snippet": "דמי ביטוח לאומי לעצמאי 2026: 4.47% עד 7,703 ש\"ח לחודש, 12.83% מעל; דמי ביטוח בריאות 3.23% / 5.17%.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["references/crypto-tax-regulations.md"]
},
{
"claim_id": "form-909-bank-refusal",
"claim": "Form 909 lets an individual (not a company) who realised crypto gains pay the tax in NIS directly into the ITA account at the Bank of Israel when an Israeli commercial bank refused (in writing) to accept crypto-derived funds. Based on ITA temporary procedure (Instruction 06/2024, first issued 31 December 2023), jointly with the Bank of Israel and the Anti-Money-Laundering Authority. Assessment under Section 145.",
"source_url": "https://www.gov.il/he/service/reporting-cryptocurrency-activity",
"raw_snippet": "שירות זה מאפשר לנישומים יחידים שצברו רווח ממימוש מטבעות וירטואליים, לשלם את המס המגיע מהמימוש בתנאי שהמערכת הבנקאית המסחרית בישראל סירבה לקבלם, כולל סירוב לפתוח חשבון. טופס 909.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md"]
},
{
"claim_id": "salaried-filing-exemption-2025",
"claim": "A TY2025 draft amendment to the exemption-from-filing regulations exempts a salaried taxpayer from the annual return on crypto gains when traded through a supervised Israeli platform that withheld tax at source and total income stays under the Section 131 ceilings (about NIS 723,000 gross from work/business, or NIS 721,560 total taxable income). Exceeding the ceiling restores the Section 131 filing duty. Still in draft as of mid-2026.",
"source_url": "https://www.bshcpa.co.il/%D7%A4%D7%98%D7%95%D7%A8-%D7%9E%D7%93%D7%99%D7%95%D7%95%D7%97-%D7%A2%D7%9C-%D7%A7%D7%A8%D7%99%D7%A4%D7%98%D7%95/",
"raw_snippet": "טיוטת תקנות מס הכנסה (פטור מהגשת דין וחשבון) 2025: שכיר יהיה פטור מהגשת דוח על רווחי קריפטו אם המסחר בוצע דרך גוף מפוקח בישראל שניכה מס במקור, וכל עוד ההכנסה אינה עולה על תקרת סעיף 131 (כ-723,000 ש\"ח מעבודה/עסק או 721,560 ש\"ח הכנסה חייבת כוללת).",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md"]
},
{
"claim_id": "section-131-filing",
"claim": "Section 131 of the Income Tax Ordinance defines who must file an annual return; exceeding the income ceilings restores the full filing duty.",
"source_url": "https://www.gov.il/he/service/reporting-and-payment-2025-annual-tax-report-for-individuals",
"raw_snippet": "חובת הגשת דוח שנתי לפי סעיף 131 לפקודה חלה על מי שהכנסתו עולה על התקרות הקבועות בתקנות הפטור.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md"]
},
{
"claim_id": "loss-carryforward-92",
"claim": "Capital losses can be carried forward under Section 92 of the Income Tax Ordinance to offset future capital gains (not ordinary income).",
"source_url": "https://www.gov.il/BlobFolder/policy/income-tax-professional-inst-5-2018/he/Policy_ProfessionalInstIncomeTax_hor_acc%2015.2.18.pdf",
"raw_snippet": "הפסד הון ניתן לקיזוז ולהעברה לשנים הבאות לפי סעיף 92 לפקודה.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md"]
},
{
"claim_id": "gift-inheritance-97a5",
"claim": "Gifts and inheritance use carryover basis under Section 97(a)(5): the recipient inherits the donor's original cost basis and acquisition date.",
"source_url": "https://www.gov.il/BlobFolder/policy/income-tax-professional-inst-5-2018/he/Policy_ProfessionalInstIncomeTax_hor_acc%2015.2.18.pdf",
"raw_snippet": "במתנה ובירושה חל בסיס עלות מועבר לפי סעיף 97(א)(5) לפקודה.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md"]
},
{
"claim_id": "inflation-component-91b3",
"claim": "Section 91(b)(3) splits a capital gain into a real-gain component (taxed at 25%) and an inflation component (sechum hatzmada, taxed at 0% for individuals on assets acquired after 1 January 1994). The calculator does not apply this split.",
"source_url": "https://www.gov.il/BlobFolder/policy/income-tax-professional-inst-5-2018/he/Policy_ProfessionalInstIncomeTax_hor_acc%2015.2.18.pdf",
"raw_snippet": "סעיף 91(ב)(3) מפצל את רווח ההון לרווח ריאלי (25%) ולסכום אינפלציוני (0% ליחיד על נכסים שנרכשו לאחר 1.1.1994).",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "scripts/crypto-gains-calculator.py"]
},
{
"claim_id": "circular-05-2018",
"claim": "ITA Circular 05/2018 (chozar 05/2018), published 17 January 2018 (updated 14 November 2018), is the primary crypto-tax guidance: classifies virtual currency as an asset, mandates FIFO cost basis, requires NIS conversion. Circular 07/2018 addresses token issuance. Section 2(1) business income, Section 2(4) passive income.",
"source_url": "https://www.gov.il/BlobFolder/policy/income-tax-professional-inst-5-2018/he/Policy_ProfessionalInstIncomeTax_hor_acc%2015.2.18.pdf",
"raw_snippet": "חוזר מס הכנסה 05/2018 - מיסוי פעילות באמצעי תשלום מבוזר (מטבעות וירטואליים). מטבע וירטואלי הוא נכס; שיטת FIFO; המרה לשקלים.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md"]
},
{
"claim_id": "aml-50000",
"claim": "Crypto service providers in Israel operate under the Prohibition on Money Laundering Order; a NIS 50,000 per-six-months ceiling applies to casual-customer activity before full identification/recording duties attach. This provider AML reporting is separate from the taxpayer's tax-reporting duty.",
"source_url": "https://www.gov.il/he/departments/the_israel_money_laundering_and_terror_financing_prohibition_authority",
"raw_snippet": "צו איסור הלבנת הון לנותני שירות בנכס פיננסי: סף לקוח מזדמן של 50,000 ש\"ח לתקופה של שישה חודשים.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["references/crypto-tax-regulations.md"]
},
{
"claim_id": "boi-rates",
"claim": "Bank of Israel publishes daily representative rates (sha'ar yatzig) used to convert foreign-fiat legs of crypto trades to NIS.",
"source_url": "https://www.boi.org.il/roles/markets/exchangerates/",
"raw_snippet": "בנק ישראל מפרסם שערים יציגים יומיים.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md"]
},
{
"claim_id": "record-retention-7yr",
"claim": "Transaction records must be retained for at least 7 years.",
"source_url": "https://www.gov.il/BlobFolder/policy/income-tax-professional-inst-5-2018/he/Policy_ProfessionalInstIncomeTax_hor_acc%2015.2.18.pdf",
"raw_snippet": "חובת שמירת מסמכים ורשומות למשך 7 שנים לפחות.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md"]
},
{
"claim_id": "exit-tax-100a",
"claim": "Section 100A (סעיף 100א) of the Income Tax Ordinance imposes an exit tax: a person ceasing Israeli residency is deemed to have sold all their assets (crypto included) one day before residency ends. The tax may be paid at exit or deferred to the actual later sale, with the gain apportioned over the Israeli-residency period. Separately, business-classified miners and NFT creators may deduct direct costs (electricity, depreciation) under Section 17 of the Ordinance.",
"source_url": "https://taxsummaries.pwc.com/israel/individual/other-taxes",
"raw_snippet": "Israel imposes an exit tax under Section 100A (סעיף 100א): an individual who ceases to be an Israeli resident is deemed to have sold their assets one day before ceasing residency; tax can be deferred until actual realisation with apportionment of the gain. Business expenses are deductible under Section 17.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md"]
},
{
"claim_id": "us-rates-contrast",
"claim": "The skill contrasts Israel's 25% crypto rate with the US 15% and 20% long-term capital gains rates to warn that US-trained models apply the wrong rate. The US 15%/20% rates do not apply in Israel.",
"source_url": "https://www.gov.il/BlobFolder/policy/income-tax-professional-inst-5-2018/he/Policy_ProfessionalInstIncomeTax_hor_acc%2015.2.18.pdf",
"raw_snippet": "Israel taxes individual crypto gains at 25%, not the US 15%/20% long-term rates. The US 15% and 20% figures are cited only as a contrast.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md"]
},
{
"claim_id": "form-tokens-coverage",
"claim": "Forms referenced across the skill, including the legacy Form 7002 (outdated, replaced by the 1399 series): Form 1322, Form 1325, Form 1301, Form 909, Form 1399yod (1399y, individuals), Form 1399het (1399h, companies), Form 7002. Hebrew: טופס 1322, טופס 1325, טופס 1301, טופס 909, טופס 1399י, טופס 1399ח, טופס 7002. Codes 77 sale, 71 virtual currency. The 1325 % and 2024 % strings and the *2025 token are formatting artifacts within prose about Form 1325, tax year 2024, and bolded year 2025.",
"source_url": "https://www.gov.il/he/service/reporting-and-payment-2025-annual-tax-report-for-individuals",
"raw_snippet": "טופס 1322, טופס 1325, טופס 1301, טופס 909, טופס 1399י, טופס 1399ח, טופס 7002. Form 7002, Form 1399yod, Form 1399het. 1325 %, 2024 %, *2025.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-regulations.md", "references/crypto-tax-scenarios.md", "scripts/crypto-gains-calculator.py"]
},
{
"claim_id": "worked-example-figures",
"claim": "Illustrative worked-example and scenario figures used only to demonstrate FIFO and the 25% tax math, not external regulatory facts. NIS amounts: 2 NIS, 2.5 NIS, 4 NIS, 5 NIS, 7.5 NIS, 20 NIS, 30 NIS, 90 NIS, 120 NIS, 160 NIS, 300 NIS, 320 NIS, 400 NIS, 600 NIS, 750 NIS, 1,000 NIS, 1,075 NIS, 1,850 NIS, 2,000 NIS, 2,400 NIS, 2,500 NIS, 2,997.50 NIS, 4,000 NIS, 4,500 NIS, 5,000 NIS, 8,000 NIS, 8,080 NIS, 9,000 NIS, 10,000 NIS, 10,100 NIS, 12,000 NIS, 12,120 NIS, 15,000 NIS, 16,000 NIS, 18,000 NIS, 27,000 NIS, 37,000 NIS, 40,000 NIS, 44,400 NIS, 60,000 NIS, 80,000 NIS, 120,000 NIS, 150,000 NIS, 160,000 NIS, 230,000 NIS, 1,150 NIS, 60,130 NIS. Hebrew duplicates: 1,000 ש\"ח, 2,000 ש\"ח, 2,500 ש\"ח, 4,000 ש\"ח, 5,000 ש\"ח, 7,000 ש\"ח, 8,000 ש\"ח, 9,000 ש\"ח, 10,000 ש\"ח, 27,000 ש\"ח, 40,000 ש\"ח, 80,000 ש\"ח, 120,000 ש\"ח, 60,130 ש\"ח. Heuristics: 100 trades and 500,000 NIS gains for recommending professional help.",
"source_url": "https://www.gov.il/BlobFolder/policy/income-tax-professional-inst-5-2018/he/Policy_ProfessionalInstIncomeTax_hor_acc%2015.2.18.pdf",
"raw_snippet": "Hypothetical worked examples illustrating the 25% rate and FIFO method, not regulatory values.",
"fetched_at": "2026-06-07T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/crypto-tax-scenarios.md"]
}
]
}
{
"author": "skills-il",
"version": "1.4.0",
"category": "tax-and-finance",
"tags": {
"he": [
"מס-קריפטו",
"מטבעות-דיגיטליים",
"רווחי-הון",
"דיווח-מס",
"בלוקצ'יין"
],
"en": [
"crypto-tax",
"cryptocurrency",
"capital-gains",
"tax-reporting",
"blockchain"
]
},
"display_name": {
"he": "דיווח מס קריפטו ישראלי",
"en": "Israeli Crypto Tax Reporter"
},
"display_description": {
"he": "חישוב מס רווחי הון על מטבעות דיגיטליים לפי רגולציית רשות המסים, והפקת נתונים לטופס 1322/1325 ולמקדמה בטופס 1399י (תוך 30 יום ממימוש). השתמשו כשמשתמש זקוק לחישוב חבות מס בשיטת FIFO, סיווג הכנסות DeFi (staking, liquidity mining, airdrops), הכנת נתונים לדוח השנתי 1301, או הבנת הליך הגילוי מרצון לקריפטו (פתוח עד 31 באוגוסט 2026). מכסה את סעיף 88 לפקודת מס הכנסה, חוזר 05/2018, שיעור 25% רווח הון ליחיד, ומס יסף 5% על רווחי הון מעל 721,560 ש\"ח (סף קפוא עד 2027). אל תשתמשו לתחומי מס לא ישראליים, חישובי מס הכנסה רגיל, או מע\"מ על פעילות עסקית בקריפטו, שדורשים ייעוץ מקצועי נפרד.",
"en": "Calculate cryptocurrency capital gains tax per Israeli Tax Authority (Reshut HaMisim) regulations and generate Form 1322/1325 reporting data and Form 1399י advance-payment data (within 30 days of disposal). Use when a user needs to compute crypto tax obligations using FIFO cost basis, classify DeFi income (staking, liquidity mining, airdrops) for Israeli tax purposes, prepare annual tax filing data, understand reporting thresholds and advance payment (mikdamot) requirements, or evaluate the 2025-2026 Voluntary Disclosure Procedure (open until 31 Aug 2026). Covers Section 88 of the Income Tax Ordinance, Circular 2018/05, the 25% capital gains rate for individuals, and the 5% surtax on capital income above NIS 721,560 (threshold frozen through 2027). Do NOT use for non-Israeli tax jurisdictions, general income tax calculations, or VAT (maam) on crypto business activities, which require separate professional consultation."
},
"supported_agents": [
"claude-code",
"cursor",
"github-copilot",
"windsurf",
"opencode",
"codex",
"gemini-cli"
]
}{
"cycles": [
{
"version": "1.4.0",
"date": "2026-06-07",
"lessons": [
"Judge caught CARF first-exchange year: OECD commitments PDF (Feb 2026) may list Israel in the 2028 group, while other sources say 2027. Hedged to 2027-2028; next cycle, re-read the latest OECD monitoring update and pin the year if it has stabilized.",
"Expert MAJOR deferred: crypto-to-crypto swap requires the user to manually enter two CSV rows (trade_sell + trade_buy) with no validation that the legs reconcile. Consider a swap helper or a CSV linter next cycle.",
"Expert MAJOR deferred: foreign-tax-credit / treaty mechanics (Sections 199-210) only punted to 'get professional help', not operationalized. Add a worked FTC example next cycle if scope allows.",
"Expert MAJOR deferred: FIFO-queue-exhausted path assumes zero cost basis, contradicting the skill's stated 'earliest available market price' fallback. Reconcile the code with the documented rule next cycle.",
"Expert MINOR deferred: SHORT/LONG label invites the US long-term-rate misconception; consider relabel to 'indexation-relevant'. Section 92 carryforward not modelled across years. avg_cost_per_unit display can nudge average-cost thinking.",
"salaried-filing-exemption-2025 is still a DRAFT regulation (טיוטת תקנות, Jan 2025). Re-check whether it was enacted and pin the final ceiling next cycle.",
"Discretionary edits under the Phase 4.1 batch cap: applied AML-figure tightening; left finer DeFi-classification worked examples for a later cycle."
]
}
]
}
Israeli Cryptocurrency Tax Regulations
Primary Legal Sources
Income Tax Ordinance (Pekudat Mas Hachnasa)
The Income Tax Ordinance is the foundational tax law in Israel. Key sections relevant to cryptocurrency:
Section 88 - Definitions:
- Defines "asset" (neches) broadly to include "any type of property, whether tangible or intangible"
- Cryptocurrency falls under this definition as an intangible asset
- This classification was affirmed in Circular 2018/05
Section 91 - Capital Gains Tax:
- Capital gains on the sale of assets are taxable
- The gain is calculated as the difference between the sale price (tmura) and the cost basis (mechir mekorri)
- Adjustable for inflation (hatzmada) in certain cases, though for crypto this is typically not applied
Section 91(b)(1) - Tax Rate for Individuals:
- Capital gains from assets acquired after January 1, 2012: 25%
- For "significant shareholders" (baal meniayot mahuti, holding 10%+ of a project): 30%
Section 2(1) - Business Income:
- If crypto trading constitutes a "business" (esek), gains are taxed as ordinary income
- Marginal tax rates apply: 10% to 50% depending on the income bracket
- Plus social insurance (bituach leumi) and health tax (mas briut)
Section 2(4) - Passive Income:
- Interest, dividends, and similar passive returns from crypto (e.g., lending interest, staking rewards)
- Taxed at 25% for individuals (passive income rate)
Circular 2018/05 (Chozar 05/2018)
Published by the Israeli Tax Authority on January 17, 2018 (updated November 14, 2018), this is the primary guidance document for cryptocurrency taxation.
Key determinations:
1. Classification: Virtual currencies (matbeot virtualiyim) are not considered "currency" (matbea) or "foreign currency" (matbea chutz) under Israeli law. They are classified as assets.
2. Tax treatment: Gains from the sale or exchange of virtual currencies are subject to capital gains tax under Chapter E of the Income Tax Ordinance.
3. Business vs. investment: The circular acknowledges that in some cases, crypto activity may constitute a business. Factors for determination include:
- Frequency and volume of transactions
- Whether the taxpayer devotes significant time to trading
- Whether the taxpayer uses leverage or sophisticated strategies
- Whether the taxpayer has other sources of income
- The taxpayer's professional knowledge of the market
4. Mining: Mining income may be classified as business income (if conducted as a business) or as creation of an asset (capital treatment). The cost basis for mined coins includes electricity, equipment depreciation, and direct costs.
5. ICOs and token offerings: Tokens received in an ICO are treated as an asset acquisition. The cost basis is the amount paid for the tokens. For project founders, token distribution may be treated as income.
6. Cost basis: FIFO method is the default. Other methods may be used if consistently applied and documented.
7. Currency conversion: All amounts must be converted to NIS for reporting purposes, using Bank of Israel exchange rates.
Subsequent Guidance and Court Rulings
ITA Circular 07/2018 ("Taxation of Token Issuance for Services / Products in Development"):
- Addressed taxation of utility-token vs security-token issuances
- Utility tokens: treated as prepaid service rights (may carry VAT implications for the issuer)
- Security tokens: treated as securities under existing tax rules
District-court line of decisions, 2020-2024:
- Multiple Israeli district-court rulings (including Be'er Sheva District) have classified frequent crypto trading (high transaction volume relative to portfolio size, sustained over multiple years, with active position management) as a business activity, taxing the gains at marginal income rates instead of 25% capital gains. Specific case names (Copel, Norkin and others) should be looked up by the agent on
psakdin.co.ilornevo.co.ilbefore being cited. - The ITA's position that crypto is a taxable asset (not foreign currency) has been consistently upheld; agents should never cite specific case docket numbers without first verifying them on a legal database.
Note on case citations: never invent or fabricate ruling numbers. If a specific docket is needed, look it up on nevo.co.il, psakdin.co.il, or the Israeli Tax Authority's published rulings (mas.gov.il/החלטות-מיסוי); otherwise, describe the line of authority generically.
Tax Rates Summary
For Individuals (Yachid)
| Income Type | Rate | Notes |
|---|---|---|
| Capital gains (investment) | 25% | Standard rate for assets held as investment |
| Capital gains (significant shareholder) | 30% | Holding 10%+ of a project |
| Business income | 10-50% | Marginal rates based on total income |
| Passive income (interest/dividends) | 25% | From crypto lending, some staking |
| Surtax (mas yesafim) - 2026 | 3% base + 2% additional on capital-source income (effective 5% on crypto gains in the band above threshold) | Threshold NIS 721,560 / monthly NIS 60,130, frozen through tax year 2027 by the Dec 2024 indexation-pause amendment. The 2025 reform brought capital gains into the surtax base. |
For Companies (Chevra)
| Income Type | Rate | Notes |
|---|---|---|
| Capital gains | 23% | Corporate tax rate |
| Business income | 23% | Corporate tax rate |
| Dividend distribution | 25-30% | Additional tax when distributing to shareholders |
National Insurance and Health Tax (2026)
If crypto income is classified as business income (not investment):
- Bituach Leumi (self-employed, 2026): 4.47% on income up to ~NIS 7,703/month; 12.83% on the portion above (per btl.gov.il). Verify the current bracket and ceiling at the start of each tax year.
- Mas Briut (health tax, 2026): 3.23% on income up to the same threshold; 5.17% on the portion above.
- Combined effective rate (BL + Mas Briut): roughly 7.7% / 18% across the two bands.
- These rates do NOT apply to capital gains (investment classification) - only to income classified as a business under Section 2(1).
Reporting Requirements
Form 1322 + Form 1325 (Annual Capital Gains Schedule)
Filed with the annual tax return for capital gain events:
- Form 1322 (Nispach Gimel) is the primary capital-gains appendix to the annual return; totals land here.
- Form 1325 (Nispach Gimel(1)) is the auxiliary detail form for negotiable-securities sales where tax was NOT withheld at source. Most crypto sales (no Israeli source-withholding) are itemised on Form 1325 and totals carry to Form 1322.
- Lists acquisition date, disposal date, cost basis, proceeds, and gain/loss for each disposal.
- All amounts must be in NIS.
Form 1301 (Annual Individual Tax Return)
The comprehensive annual return that includes:
- All income sources (salary, business, capital gains, passive income)
- Forms 1322 and 1325 attached as appendices
- Filing deadline for tax year 2025 (filed in 2026): 30 June 2026 for online filing via the gov.il portal; 29 May 2026 for paper filing. Extensions to end of July or September are available for returns filed by a representing accountant. The "April 30" or "May 31" dates that appeared in older guides are outdated; verify the current-year deadline on gov.il/he/service.
Advance Tax Payments (Mikdamot)
Form 1399י (1399-yod) - capital gains advance payment for individuals:
- Within 30 days of a capital gain event, the taxpayer files Form 1399י with the assessing officer (pakid shuma) and pays 25% of the gain as an advance.
- Virtual-currency disposals are filed with transaction codes 77 (sale) and 71 (virtual currency).
- Form 1399ח is the equivalent form for companies.
- Applies to gains exceeding a minimal de minimis threshold; for non-trivial crypto gains assume the form is required.
- Failure to file: interest (ribit) and linkage differences (hafreshei hatzamda) accrue from the 30-day deadline.
- The advance is credited against the final annual tax liability.
- The "Form 7002" reference in older guides is outdated for crypto reporting - use Form 1399י.
Form 909 (Paying Tax When a Bank Refuses Crypto Funds)
A distinct, very common Israeli problem: a commercial bank refuses (in writing) to accept crypto-derived deposits, so the taxpayer cannot fund the tax payment through a normal account. The ITA, jointly with the Bank of Israel and the Anti-Money-Laundering Authority, published a temporary procedure (Hora'at Sha'a, ITA Instruction 06/2024, first issued 31 December 2023) for this case:
- Who: an individual (NOT a company) who realised a crypto gain and has no alternative funding source, after at least one Israeli commercial bank refused the funds (including refusing to open an account).
- Form: Form 909 ("דיווח על פעילות במטבעות וירטואליים ובקשה לתשלום המס המגיע במימוש המטבעות").
- Required attachments: written bank-refusal letter; working paper computing the taxable income and tax; proof of the legal source of the funds used to buy the coins; a money-trail working paper for the coins over the holding period; deposit/account-management confirmations from the financial-service provider.
- How: filed to the assessing officer either online via the ITA CRM together with the annual return, or physically.
- Outcome: after a money-laundering-risk review and a tax assessment under Section 145, the tax is paid in NIS directly into the ITA's account at the Bank of Israel.
Reporting Thresholds
- Any capital gain: technically reportable regardless of amount.
- Advance payment (mikdama): required for non-trivial gains. Verify current-year de minimis amounts on the ITA service portal; do not rely on a fixed historical NIS figure.
- Annual filing: required for individuals with income from sources other than salary, or with annual income exceeding the filing threshold. A crypto disposal generally creates a filing obligation, but a TY2025 draft amendment to the exemption-from-filing regulations (טיוטת תקנות מס הכנסה (פטור מהגשת דין וחשבון), published for public comment January 2025) would exempt a salaried taxpayer from filing on crypto gains where the crypto was traded through a supervised Israeli platform that withheld the tax at source AND total income stays under the Section 131 ceilings (about NIS 723,000 gross from work/business, or NIS 721,560 total taxable income from all sources). Exceeding either ceiling, incomplete withholding, or trading through an unsupervised/foreign venue restores the full Section 131 filing duty; paying an advance does not by itself remove it. The regulation was still in draft as of mid-2026 - verify the enacted text before relying on the exemption.
- Record retention: all transaction records must be retained for 7 years minimum.
Voluntary Disclosure Procedure 2025-2026 (Crypto Track)
Published 25 August 2025 by the ITA, this procedure expressly covers digital assets and provides a route to regularise prior-year unreported crypto gains in exchange for criminal immunity:
- Two tracks:
- Green Track - annual income up to NIS 500,000 and cumulative crypto assets up to NIS 1.5M as of 31 December 2024. Faster processing, anonymity removed.
- Regular Track - for cases above those thresholds.
- Deadline: applications must be submitted by 31 August 2026.
- Anonymity: not available; all applications include the taxpayer's identifying details.
- Use this procedure for clients who held crypto without reporting in prior years and want to come into compliance before CARF data-sharing surfaces them.
CARF (OECD Crypto-Asset Reporting Framework)
- Israel committed to CARF; Israeli RCASPs (Reporting Crypto-Asset Service Providers - exchanges, wallet providers) collect customer data from 1 January 2026.
- First international exchange: expected 2027-2028. Israel is among the committed jurisdictions, but the exact first-exchange year has shifted between OECD monitoring updates, so verify it against the latest OECD CARF commitments list before relying on it.
- For taxpayers, this means: any crypto held on an Israeli or foreign-but-CARF-participating exchange will be visible to the ITA from 2027 onwards. Past-year non-compliance is increasingly likely to surface during routine matching.
DeFi-Specific Guidance
The Israeli Tax Authority has not published comprehensive DeFi guidance. The following represents the conservative consensus among Israeli tax professionals:
Staking
- Conservative view: Income at receipt (market value), taxed at 25% (passive income) or marginal rates (if part of business)
- Alternative view: Capital gain treatment (similar to stock splits), taxed at 25% upon sale
- Recommended approach: Report as income at receipt to avoid penalties, claim as capital gain if challenged
Liquidity Provision
- Providing liquidity to a pool: generally not a taxable event
- Receiving LP tokens: not taxable (represents the existing position)
- Impermanent loss: not deductible until the position is closed
- Withdrawing from pool: may trigger a taxable event if the composition differs from the deposit
- Yield/fee rewards: income at receipt
Airdrops
- Unsolicited airdrops: income at market value on receipt date
- Airdrops requiring action (claiming, staking): still income at receipt
- Airdrop tokens that are worthless at receipt: zero income, zero cost basis
- Cost basis for future sale: market value at receipt
NFTs
- Creating and selling NFTs: business income for artists/creators
- Purchasing and reselling NFTs: capital gain (or business income if frequent)
- Receiving NFTs as rewards: income at market value
- NFT-to-NFT trades: taxable as crypto-to-crypto exchanges
Wrapped Tokens
- Wrapping (e.g., ETH to WETH): generally not a taxable event (same economic exposure)
- Cross-chain bridges: may be taxable if involving a swap mechanism
- Synthetic assets: treated based on the underlying asset's tax treatment
International Considerations
Foreign Exchange Controls
- Israel does not have strict foreign exchange controls
- Crypto service providers in Israel operate under the Prohibition on Money Laundering Order for financial-asset-service providers: a NIS 50,000 per-six-months ceiling applies to "casual customer" activity before full identification/recording duties attach, and providers file reports on suspicious or threshold activity. Note this is AML reporting by the provider, which is separate from the taxpayer's own tax-reporting duty
- Israeli banks may request documentation for large crypto-related deposits
Tax Treaties
- Israel has tax treaties with 50+ countries
- Capital gains from crypto are generally taxable in the country of residence (Israel, for Israeli residents)
- Foreign tax credits may be available if tax was paid in another jurisdiction
OECD Crypto-Asset Reporting Framework (CARF) - see Reporting Requirements above
- See the dedicated CARF block under "Reporting Requirements" for current dates: collection from 1 January 2026, first international exchange expected 2027-2028.
Compliance Best Practices
1. Maintain detailed records: Every transaction, including dates, amounts, prices, fees, and exchange rates 2. Convert to NIS: Keep a running record of NIS values for all transactions 3. File advance payments: Within 30 days of significant gain events 4. Separate wallets: Consider using separate wallets for different tax classifications (investment vs. business) 5. Professional advice: Consult with a tax advisor familiar with crypto for complex situations 6. Voluntary disclosure: If past years were not reported, consider the Tax Authority's voluntary disclosure procedure (gilui da'at mirtzon) before they initiate an audit
Crypto Tax Scenarios: Worked Examples for Israeli Taxpayers
Scenario 1: Simple Buy and Sell (Bitcoin)
Facts:
- January 15, 2024: Bought 1 BTC for 150,000 NIS on Bits of Gold (fee: 750 NIS)
- September 20, 2024: Sold 1 BTC for 230,000 NIS on Bits of Gold (fee: 1,150 NIS)
Calculation:
Acquisition cost: 150,000 + 750 = 150,750 NIS
Disposal proceeds: 230,000 - 1,150 = 228,850 NIS
Capital gain: 228,850 - 150,750 = 78,100 NIS
Tax (25%): 78,100 x 0.25 = 19,525 NISReporting:
- Form 1325 entry with acquisition date Jan 15 and disposal date Sep 20
- Advance payment (mikdama) due by Oct 20, 2024 (30 days after sale)
- Holding period: 8 months (short-term, but still 25% for crypto)
Scenario 2: Multiple Purchases, Partial Sale (FIFO)
Facts:
- March 1, 2024: Bought 2 ETH at 8,000 NIS each = 16,000 NIS (fee: 160 NIS)
- May 15, 2024: Bought 3 ETH at 10,000 NIS each = 30,000 NIS (fee: 300 NIS)
- August 10, 2024: Bought 1 ETH at 12,000 NIS (fee: 120 NIS)
- November 1, 2024: Sold 4 ETH at 15,000 NIS each = 60,000 NIS (fee: 600 NIS)
FIFO application:
Lot 1: 2 ETH @ 8,080 NIS each (including proportional fee) Lot 2: 3 ETH @ 10,100 NIS each (including proportional fee) Lot 3: 1 ETH @ 12,120 NIS (including fee)
Selling 4 ETH using FIFO:
- Use all of Lot 1: 2 ETH
- Use 2 ETH from Lot 2
Sale proceeds per ETH: (60,000 - 600) / 4 = 14,850 NIS
Lot 1 (2 ETH):
Gain per ETH: 14,850 - 8,080 = 6,770 NIS
Total gain: 6,770 x 2 = 13,540 NIS
Lot 2 partial (2 of 3 ETH):
Gain per ETH: 14,850 - 10,100 = 4,750 NIS
Total gain: 4,750 x 2 = 9,500 NIS
Total capital gain: 13,540 + 9,500 = 23,040 NIS
Tax (25%): 23,040 x 0.25 = 5,760 NISRemaining positions after sale:
- 1 ETH from Lot 2 (cost: 10,100 NIS)
- 1 ETH from Lot 3 (cost: 12,120 NIS)
Scenario 3: Crypto-to-Crypto Trade
Facts:
- April 1, 2024: Bought 5 SOL at 400 NIS each = 2,000 NIS
- July 15, 2024: Traded 5 SOL for 0.02 BTC when SOL was 600 NIS each and BTC was 150,000 NIS
This is TWO events:
Event 1: Disposal of SOL
Acquisition cost: 2,000 NIS (5 SOL @ 400)
Disposal proceeds: 5 x 600 = 3,000 NIS (NIS value of SOL at trade time)
Capital gain: 3,000 - 2,000 = 1,000 NIS
Tax (25%): 1,000 x 0.25 = 250 NISEvent 2: Acquisition of BTC
Cost basis of 0.02 BTC: 3,000 NIS (the NIS value paid, i.e., the SOL disposal value)Form 1325: Report the SOL disposal. The BTC acquisition is not reported until the BTC is sold.
Scenario 4: DeFi Staking Rewards
Facts:
- January 1, 2024: Staked 100 MATIC (cost basis: 300 NIS total)
- Throughout 2024: Received 5 MATIC in staking rewards across multiple distributions
- Average MATIC price at time of each reward receipt: approximately 4 NIS per MATIC
- December 31, 2024: Still holding all MATIC (original 100 + 5 rewards)
Tax treatment (conservative approach):
Income recognition at receipt of each reward:
Staking rewards received: 5 MATIC
Value at receipt: 5 x 4 = 20 NIS income
Tax rate: 25% (passive income) = 5 NIS
OR marginal rate (up to 50%) if classified as ordinary incomeCost basis for future sales:
- Original 100 MATIC: 300 NIS (unchanged)
- 5 reward MATIC: 20 NIS (market value at receipt)
- Total holdings: 105 MATIC, total cost basis: 320 NIS
Note: If the user later sells the 5 reward MATIC for 30 NIS:
Capital gain: 30 - 20 = 10 NIS
Tax (25%): 10 x 0.25 = 2.5 NISTotal tax on these 5 MATIC: 5 NIS (income) + 2.5 NIS (capital gain) = 7.5 NIS
Scenario 5: NFT Sale (Collector)
Facts:
- February 2024: Bought an NFT for 0.5 ETH when ETH = 9,000 NIS (cost: 4,500 NIS, plus 0.01 ETH gas = 90 NIS)
- October 2024: Sold the NFT for 1.5 ETH when ETH = 12,000 NIS
Calculation:
Acquisition cost: 4,500 + 90 = 4,590 NIS
Disposal proceeds: 1.5 x 12,000 = 18,000 NIS
Capital gain: 18,000 - 4,590 = 13,410 NIS
Tax (25%): 13,410 x 0.25 = 3,352.50 NISNote: The 1.5 ETH received has a cost basis of 18,000 NIS for future disposals.
If the user were a professional NFT artist selling their own creations, this would be business income at marginal rates instead of capital gains.
Scenario 6: Mining Income
Facts (hobbyist miner):
- Mined 0.001 BTC per month throughout 2024 (0.012 BTC total)
- Average BTC price at time of mining: 160,000 NIS per BTC
- Electricity costs attributable to mining: 2,400 NIS/year
- Equipment cost: 15,000 NIS (3-year useful life = 5,000 NIS depreciation/year)
If classified as business income:
Mining income: 0.012 x 160,000 = 1,920 NIS
Less: electricity: -2,400 NIS
Less: depreciation: -5,000 NIS
Net business loss: -5,480 NISThe loss can offset other business income (but not capital gains, unless special circumstances).
If classified as asset creation (capital treatment):
Cost basis of 0.012 BTC: 1,920 NIS (market value at time of mining)
Income at mining: 1,920 NIS (taxable as income)
Tax (25% passive): 480 NISMining costs (electricity, depreciation) may be deductible against the mining income.
Note: At commercial scale (dedicated mining operation), the Tax Authority will almost certainly classify this as business income.
Scenario 7: Airdrop Tokens
Facts:
- June 2024: Received 1,000 AIRDROP tokens via airdrop (claimed from a DeFi protocol)
- Market value at receipt: 2 NIS per token = 2,000 NIS total
- October 2024: Sold 500 tokens at 5 NIS each = 2,500 NIS
- Still holding 500 tokens at year-end
Income at receipt:
Airdrop income: 1,000 x 2 = 2,000 NIS
Tax rate: Marginal (ordinary income), e.g., 35% = 700 NISCapital gain on partial sale:
Cost basis (FIFO, 500 tokens): 500 x 2 = 1,000 NIS
Sale proceeds: 500 x 5 = 2,500 NIS
Capital gain: 2,500 - 1,000 = 1,500 NIS
Tax (25%): 1,500 x 0.25 = 375 NISTotal 2024 tax on this airdrop: 700 + 375 = 1,075 NIS
Remaining position: 500 tokens with cost basis of 1,000 NIS (2 NIS each)
Scenario 8: Hard Fork
Facts:
- Pre-fork: Held 2 BTC
- August 2017: Bitcoin Cash (BCH) hard fork, received 2 BCH
- January 2024: Sold 2 BCH at 1,000 NIS each = 2,000 NIS
Tax treatment:
Cost basis of BCH from hard fork: 0 NIS (zero cost basis)
Sale proceeds: 2 x 1,000 = 2,000 NIS
Capital gain: 2,000 - 0 = 2,000 NIS
Tax (25%): 2,000 x 0.25 = 500 NISNote: The original BTC cost basis is unchanged. The new fork tokens receive a zero cost basis.
Scenario 9: Liquidity Provision (DeFi)
Facts:
- March 2024: Deposited 1 ETH (10,000 NIS) + 10,000 USDC (37,000 NIS) into a liquidity pool
- Received LP tokens representing the position
- Throughout 2024: Earned 500 USDC in trading fees (approximately 1,850 NIS)
- December 2024: Withdrew from pool: received 0.8 ETH (12,000 NIS) + 12,000 USDC (44,400 NIS)
Fee income:
Trading fees earned: 1,850 NIS
Tax (as income): Marginal rate, e.g., 35% = 647.50 NISPosition closure (withdrawal):
Total deposited: 10,000 + 37,000 = 47,000 NIS
Total withdrawn: 12,000 + 44,400 = 56,400 NIS
Gain on position: 56,400 - 47,000 = 9,400 NIS
This 9,400 NIS may be split between:
- ETH price appreciation (capital gain, 25%)
- Pool rebalancing (may be treated differently)
Conservative approach: treat entire 9,400 NIS as capital gain
Tax (25%): 9,400 x 0.25 = 2,350 NISTotal tax: 647.50 + 2,350 = 2,997.50 NIS
Note: Impermanent loss is embedded in the withdrawal amounts. It reduces the gain but is not separately deductible.
Scenario 10: Loss Offsetting
Facts for 2024:
- Sold Bitcoin: 30,000 NIS capital gain
- Sold Ethereum: 15,000 NIS capital loss
- Sold stocks on TASE: 10,000 NIS capital gain
Loss offsetting:
Crypto capital gains: 30,000 NIS
Crypto capital losses: -15,000 NIS
Net crypto gain: 15,000 NIS
Stock capital gains: 10,000 NIS
Total net capital gain: 15,000 + 10,000 = 25,000 NIS
Tax (25%): 25,000 x 0.25 = 6,250 NISThe crypto loss offsets the crypto gain first, then can offset stock gains in the same year.
If the situation were reversed (net crypto loss after offsetting crypto gains), the remaining crypto loss could still offset the stock gains:
Example: 30,000 loss - 15,000 gain = 15,000 net crypto loss
This 15,000 loss can offset the 10,000 stock gain
Remaining loss: 5,000 NIS (cannot be carried forward for individuals)Scenario 11: USD-Denominated Trades Converted to NIS
Facts:
- January 10, 2024: Bought 1 BTC for $40,000 on Binance (USD/NIS rate: 3.65)
- August 5, 2024: Sold 1 BTC for $60,000 on Binance (USD/NIS rate: 3.70)
Calculation:
Acquisition cost in NIS: 40,000 x 3.65 = 146,000 NIS
Disposal proceeds in NIS: 60,000 x 3.70 = 222,000 NIS
Capital gain: 222,000 - 146,000 = 76,000 NIS
Tax (25%): 76,000 x 0.25 = 19,000 NISNote: The NIS gain includes both the crypto appreciation AND the USD/NIS exchange rate change. Both are taxable as part of the capital gain. Use Bank of Israel representative rate (shaar yatzig) for the conversion dates.
Domain Checklist: israeli-crypto-tax-reporter
Scope: Israeli cryptocurrency capital-gains tax calculation and reporting. Category: tax-and-finance. Audience: Israeli-resident individual crypto investors (and the borderline business-classification case).
Must cover (core)
- Crypto = "asset" (neches), not currency. Capital-gains regime under Chapter E, anchored in Section 88 of the Income Tax Ordinance and ITA Circular 05/2018.
- 25% individual capital-gains rate; 30% for a significant shareholder (10%+). Section 91(b)(1) (25% for assets acquired post-1.1.2012).
- FIFO cost basis as the Israeli default. Per Circular 05/2018 (other methods only if consistently applied and documented).
- Crypto-to-crypto swap is a taxable disposal. Each swap = disposal of leg A + acquisition of leg B, both valued in NIS at swap time.
- Stablecoin disposals are taxable. USDT/USDC/DAI are "asset" under Section 88, not foreign currency.
- NIS conversion using Bank of Israel representative rate (sha'ar yatzig). Required by Circular 05/2018.
- Inflation indexation split, Section 91(b)(3). Real gain (25%) vs inflation component (0% for individuals on assets acquired after 1.1.1994). The calculator flags long-held lots but does not compute the split.
- Loss offset and carryforward, Section 92. Same-year offset and carryforward; spousal offset on joint filing.
- Cost-basis special cases: gift/inheritance carryover (Section 97(a)(5)); hard-fork zero basis; airdrop/staking basis = FMV at receipt.
- DeFi/income-vs-capital classification. Staking, liquidity-mining/farming, airdrops, mining, lending interest, income at receipt (Section 2(1)/2(4)) vs capital on later sale. The 25% figure in the calculator is a passive-income floor; ordinary/business receipts are taxed at marginal rates up to 47%.
- Business vs investment determination (badge of trade). Circular 05/2018 multi-factor test; business classification moves gains to Section 2(1) ordinary income (marginal up to 47% + surtax) and triggers Bituach Leumi + Mas Briut + VAT.
- Surtax (mas yesafim), post-2025 structure. 3% base on total taxable income above NIS 721,560 PLUS 2% additional on capital-source income above the same threshold (effective 5% on crypto gains in the band), threshold frozen through TY2027. The base is TOTAL income (salary + gains), not crypto alone, so the calculator takes --other-income.
- Advance payment (mikdama), Form 1399י, within 30 days of disposal. Codes 77 (sale) / 71 (virtual currency); Form 1399ח for companies.
- Annual return mechanics, Form 1322 (Nispach Gimel) + Form 1325 (Nispach Gimel(1)), filed with Form 1301. Section 131 filing duty, including the TY2025 salaried-filer draft exemption and current-year deadlines.
- Record retention 7 years.
Should cover (advanced)
- Exit tax / deemed sale on ceasing Israeli residency, Section 100A. Covered as a Gotcha; the calculator does not model it, and relocation scenarios are routed to a CPA / the aliyah-relocation skills.
- Form 909 bank-refusal payment pathway (Hora'at Sha'a, ITA Instruction 06/2024). Individual-only NIS payment direct to the ITA's BOI account when a bank refuses crypto-derived funds.
- Voluntary Disclosure Procedure 2025-2026 (crypto track). Green vs Regular track, deadline 31 Aug 2026, criminal immunity.
- CARF / automatic exchange. Israeli RCASP collection from 2026, first exchange expected 2027-2028 (verify the year against the latest OECD monitoring update).
- Foreign-tax credit and treaty relief, Sections 199-210 (50+ treaties). Currently flagged under "when to get professional help"; FTC mechanics are under-specified by design.
- Mining / NFT-creator business treatment and deductible costs (electricity, depreciation), Circular 05/2018; Section 17 deductions.
- Business-VAT pointer (18%) + osek registration for miners/dealers.
- AML provider-side reporting (NIS 50k/6-month casual-customer ceiling), distinct from the taxpayer's own duty.
Out of scope (explicit)
- Non-Israeli jurisdictions' domestic rules (US 8949, EU, etc.) beyond foreign-tax-credit interaction.
- General (non-crypto) income tax computation and payroll.
- Full VAT return preparation for crypto businesses (warn + refer, do not compute).
- Corporate-structure / company crypto holdings beyond the 23% rate and Form 1399ח.
- Legal adjudication of whether a specific pattern is a "business" (recommend pre-ruling / CPA; the skill applies the test, it does not decide).
- Securities-law / token-offering regulatory compliance (ISA), as distinct from tax.
Authoritative sources
- Income Tax Ordinance [New Version] 5721-1961, Sections 2(1), 2(4), 88, 91, 91(b)(1), 91(b)(3), 92, 97(a)(5), 100A, 121B, 131, 159A, 199-210.
- ITA Circular 05/2018 (virtual-currency classification, FIFO, conversion, business factors); Circular 07/2018 (token issuance).
- 2025 Budget Law (surtax restructuring) + Dec-2024 indexation-pause amendment (threshold freeze through TY2027).
- ITA Instruction (Hora'at Sha'a) 06/2024 (Form 909 bank-refusal procedure).
- ITA Voluntary Disclosure Procedure 2025-2026 (crypto track), deadline 31 Aug 2026.
- Forms 1301, 1322, 1325, 1399י, 1399ח, 909.
- Bank of Israel representative rates; Bituach Leumi self-employed rate schedule (btl.gov.il).
- OECD Crypto-Asset Reporting Framework (CARF), collection 2026, first exchange 2027-2028.
#!/usr/bin/env python3
"""
Israeli Crypto Capital Gains Calculator (FIFO Method)
Calculates cryptocurrency capital gains tax per Israeli Tax Authority regulations.
Uses FIFO (First In, First Out) cost basis method. Converts all amounts to NIS.
Supports generating Form 1325 data and advance payment schedules.
Usage:
python crypto-gains-calculator.py --input transactions.csv --year 2024
python crypto-gains-calculator.py --input transactions.csv --year 2024 --form-1325
python crypto-gains-calculator.py --input transactions.csv --year 2024 --advance-payments
python crypto-gains-calculator.py --input transactions.csv --year 2024 --json
python crypto-gains-calculator.py --demo
CSV Format:
date,type,asset,amount,price_nis,fee_nis,exchange,notes
2024-01-15,buy,BTC,0.5,75000,375,bits-of-gold,
2024-08-20,sell,BTC,0.3,120000,600,bits-of-gold,
Requirements:
Python 3.8+
No external dependencies
"""
import argparse
import csv
import json
import sys
from collections import defaultdict, deque
from dataclasses import dataclass, field
from datetime import datetime, timedelta
from typing import Optional
# ============================================================
# Constants
# ============================================================
INDIVIDUAL_TAX_RATE = 0.25
SIGNIFICANT_SHAREHOLDER_RATE = 0.30
CORPORATE_TAX_RATE = 0.23
# 2025 budget legislation restructured mas yesafim into a 3% base on all income
# above the threshold + 2% additional on capital-source income (effective 5% on
# crypto gains above threshold). This calculator models the post-threshold band
# as a flat 5%, accurate for crypto-only gains; users with a mixed surtax base
# should account for the 3% base separately. The threshold is FROZEN through tax
# year 2027 by the December 2024 indexation-pause amendment, so do not apply CPI.
SURTAX_RATE = 0.05
SURTAX_THRESHOLD = 721_560 # NIS, frozen 2025-2027 by Dec 2024 amendment
ADVANCE_PAYMENT_DAYS = 30
# ============================================================
# Data Types
# ============================================================
@dataclass
class Transaction:
date: datetime
tx_type: str # buy, sell, trade_sell, trade_buy, income, airdrop, fork, mining
asset: str
amount: float
price_nis: float # total NIS value (not per unit)
fee_nis: float
exchange: str
notes: str
@property
def price_per_unit(self) -> float:
if self.amount == 0:
return 0.0
return self.price_nis / self.amount
@property
def cost_per_unit(self) -> float:
"""Cost per unit including fees for purchases."""
if self.amount == 0:
return 0.0
return (self.price_nis + self.fee_nis) / self.amount
@property
def net_proceeds_per_unit(self) -> float:
"""Net proceeds per unit after fees for sales."""
if self.amount == 0:
return 0.0
return (self.price_nis - self.fee_nis) / self.amount
@dataclass
class Lot:
"""A purchase lot for FIFO tracking."""
date: datetime
asset: str
amount: float
cost_per_unit_nis: float
exchange: str
notes: str
@property
def total_cost(self) -> float:
return self.amount * self.cost_per_unit_nis
@dataclass
class GainEvent:
"""A realized gain/loss event."""
disposal_date: datetime
acquisition_date: datetime
asset: str
amount: float
acquisition_cost_nis: float
disposal_proceeds_nis: float
gain_nis: float
holding_days: int
is_long_term: bool # 12+ months
exchange: str
notes: str
@property
def tax_25(self) -> float:
return max(0, self.gain_nis * INDIVIDUAL_TAX_RATE)
@dataclass
class IncomeEvent:
"""An income event (staking, airdrop, mining)."""
date: datetime
asset: str
amount: float
value_nis: float
income_type: str # staking, airdrop, mining, interest
notes: str
@dataclass
class AdvancePayment:
"""An advance tax payment (mikdama) due."""
gain_event_date: datetime
due_date: datetime
gain_nis: float
tax_due_nis: float
asset: str
@dataclass
class TaxReport:
year: int
gain_events: list = field(default_factory=list)
income_events: list = field(default_factory=list)
advance_payments: list = field(default_factory=list)
total_gains: float = 0.0
total_losses: float = 0.0
net_gain: float = 0.0
total_income: float = 0.0
other_income: float = 0.0 # non-crypto taxable income (salary, business) for surtax base
capital_gains_tax: float = 0.0
income_tax_estimate: float = 0.0
surtax: float = 0.0
total_tax_estimate: float = 0.0
remaining_lots: dict = field(default_factory=dict)
warnings: list = field(default_factory=list)
# ============================================================
# Parser
# ============================================================
def parse_csv(filepath: str) -> list:
"""Parse transaction CSV file."""
transactions = []
try:
with open(filepath, "r", encoding="utf-8-sig") as f:
reader = csv.DictReader(f)
required_fields = {"date", "type", "asset", "amount", "price_nis"}
if not required_fields.issubset(set(reader.fieldnames or [])):
missing = required_fields - set(reader.fieldnames or [])
print(f"Error: CSV missing required columns: {missing}", file=sys.stderr)
print("Required columns: date, type, asset, amount, price_nis, fee_nis, exchange, notes", file=sys.stderr)
sys.exit(1)
for i, row in enumerate(reader, start=2):
try:
tx = Transaction(
date=datetime.strptime(row["date"].strip(), "%Y-%m-%d"),
tx_type=row["type"].strip().lower(),
asset=row["asset"].strip().upper(),
amount=float(row["amount"].strip()),
price_nis=float(row["price_nis"].strip()),
fee_nis=float(row.get("fee_nis", "0").strip() or "0"),
exchange=row.get("exchange", "").strip(),
notes=row.get("notes", "").strip(),
)
transactions.append(tx)
except (ValueError, KeyError) as e:
print(f"Warning: Skipping row {i}: {e}", file=sys.stderr)
except FileNotFoundError:
print(f"Error: File not found: {filepath}", file=sys.stderr)
sys.exit(1)
transactions.sort(key=lambda t: t.date)
return transactions
# ============================================================
# FIFO Engine
# ============================================================
class FIFOEngine:
"""FIFO cost basis calculator."""
def __init__(self):
# Asset -> deque of Lots (oldest first)
self.lots: dict = defaultdict(deque)
self.gain_events: list = []
self.income_events: list = []
def process_buy(self, tx: Transaction):
"""Add a purchase lot to the FIFO queue."""
lot = Lot(
date=tx.date,
asset=tx.asset,
amount=tx.amount,
cost_per_unit_nis=tx.cost_per_unit,
exchange=tx.exchange,
notes=tx.notes,
)
self.lots[tx.asset].append(lot)
def process_sell(self, tx: Transaction) -> list:
"""Process a sale using FIFO, returning gain events."""
events = []
remaining_to_sell = tx.amount
net_proceeds_per_unit = tx.net_proceeds_per_unit
asset_lots = self.lots[tx.asset]
while remaining_to_sell > 1e-10 and asset_lots:
lot = asset_lots[0]
if lot.amount <= remaining_to_sell + 1e-10:
# Consume entire lot
sell_amount = lot.amount
remaining_to_sell -= sell_amount
asset_lots.popleft()
else:
# Partial lot consumption
sell_amount = remaining_to_sell
lot.amount -= sell_amount
remaining_to_sell = 0
acquisition_cost = sell_amount * lot.cost_per_unit_nis
disposal_proceeds = sell_amount * net_proceeds_per_unit
gain = disposal_proceeds - acquisition_cost
holding_days = (tx.date - lot.date).days
event = GainEvent(
disposal_date=tx.date,
acquisition_date=lot.date,
asset=tx.asset,
amount=sell_amount,
acquisition_cost_nis=acquisition_cost,
disposal_proceeds_nis=disposal_proceeds,
gain_nis=gain,
holding_days=holding_days,
is_long_term=holding_days >= 365,
exchange=tx.exchange,
notes=tx.notes,
)
events.append(event)
if remaining_to_sell > 1e-10:
print(
f"WARNING: FIFO queue exhausted for {tx.asset}. "
f"Attempted to sell {tx.amount} but only had enough lots for "
f"{tx.amount - remaining_to_sell:.8f}. "
f"Missing purchase records for {remaining_to_sell:.8f} {tx.asset}.",
file=sys.stderr,
)
# Create a zero-cost-basis event for the unmatched portion
event = GainEvent(
disposal_date=tx.date,
acquisition_date=tx.date,
asset=tx.asset,
amount=remaining_to_sell,
acquisition_cost_nis=0,
disposal_proceeds_nis=remaining_to_sell * net_proceeds_per_unit,
gain_nis=remaining_to_sell * net_proceeds_per_unit,
holding_days=0,
is_long_term=False,
exchange=tx.exchange,
notes="WARNING: No matching purchase lot found (zero cost basis assumed)",
)
events.append(event)
self.gain_events.extend(events)
return events
def process_income(self, tx: Transaction, income_type: str):
"""Process income (staking, airdrop, mining) - creates both income event and cost basis lot."""
income = IncomeEvent(
date=tx.date,
asset=tx.asset,
amount=tx.amount,
value_nis=tx.price_nis,
income_type=income_type,
notes=tx.notes,
)
self.income_events.append(income)
# Also create a cost basis lot at the income value
lot = Lot(
date=tx.date,
asset=tx.asset,
amount=tx.amount,
cost_per_unit_nis=tx.price_per_unit if tx.amount > 0 else 0,
exchange=tx.exchange,
notes=f"From {income_type}: {tx.notes}",
)
self.lots[tx.asset].append(lot)
def process_fork(self, tx: Transaction):
"""Process hard fork tokens (zero cost basis)."""
lot = Lot(
date=tx.date,
asset=tx.asset,
amount=tx.amount,
cost_per_unit_nis=0,
exchange=tx.exchange,
notes=f"Hard fork: {tx.notes}",
)
self.lots[tx.asset].append(lot)
def get_remaining_lots(self) -> dict:
"""Get summary of remaining positions."""
positions = {}
for asset, lots in self.lots.items():
total_amount = sum(lot.amount for lot in lots)
total_cost = sum(lot.total_cost for lot in lots)
if total_amount > 1e-10:
positions[asset] = {
"amount": total_amount,
"total_cost_nis": total_cost,
"avg_cost_per_unit": total_cost / total_amount if total_amount > 0 else 0,
"num_lots": len(lots),
}
return positions
def process_transactions(transactions: list, year: int, other_income: float = 0.0) -> TaxReport:
"""Process all transactions and generate a tax report for the specified year.
other_income: the taxpayer's NON-crypto taxable income for the year (salary,
business, etc.). Required to assess mas yesafim correctly, because the surtax
threshold applies to TOTAL taxable income, not crypto gains alone.
"""
engine = FIFOEngine()
report = TaxReport(year=year, other_income=other_income)
for tx in transactions:
if tx.tx_type in ("buy", "trade_buy"):
engine.process_buy(tx)
elif tx.tx_type in ("sell", "trade_sell"):
engine.process_sell(tx)
elif tx.tx_type in ("staking", "interest"):
engine.process_income(tx, tx.tx_type)
elif tx.tx_type == "airdrop":
engine.process_income(tx, "airdrop")
elif tx.tx_type == "mining":
engine.process_income(tx, "mining")
elif tx.tx_type == "fork":
engine.process_fork(tx)
elif tx.tx_type in ("transfer", "deposit", "withdrawal"):
pass # Transfers are not taxable events
else:
print(f"Warning: Unknown transaction type '{tx.tx_type}' on {tx.date.strftime('%Y-%m-%d')}", file=sys.stderr)
# Filter events for the specified year
year_gains = [e for e in engine.gain_events if e.disposal_date.year == year]
year_income = [e for e in engine.income_events if e.date.year == year]
report.gain_events = year_gains
report.income_events = year_income
# Calculate totals
for event in year_gains:
if event.gain_nis >= 0:
report.total_gains += event.gain_nis
else:
report.total_losses += abs(event.gain_nis)
report.net_gain = report.total_gains - report.total_losses
report.total_income = sum(e.value_nis for e in year_income)
# Calculate tax
report.capital_gains_tax = max(0, report.net_gain * INDIVIDUAL_TAX_RATE)
# NOTE: income_tax_estimate applies a FLOOR of 25% (the passive-income rate).
# Staking is debated (25% passive vs marginal), but liquidity-mining/yield-
# farming, airdrops, and mining are ORDINARY/BUSINESS income taxed at MARGINAL
# rates up to 47% (plus surtax). This 25% figure can therefore UNDERSTATE the
# income tax on DeFi/mining receipts; treat it as a lower bound only.
report.income_tax_estimate = report.total_income * INDIVIDUAL_TAX_RATE
if report.total_income > 0:
report.warnings.append(
"Income events (staking/airdrop/mining/farming) are estimated at the "
"25% passive-income floor. Yield-farming, airdrops, and mining are "
"ordinary/business income taxed at MARGINAL rates (up to 47% + surtax); "
"the income tax above is a LOWER bound. Apply the user's marginal rate."
)
# Surtax: the threshold applies to TOTAL taxable income (salary + business +
# crypto), not crypto alone. Without other_income we cannot assess it reliably.
total_taxable = report.other_income + report.net_gain + report.total_income
capital_source = max(0.0, report.net_gain) # crypto gains are capital-source income
if total_taxable > SURTAX_THRESHOLD:
# 2% additional component on the capital-source income sitting above the
# threshold (the 3% base component on non-capital income is the user's to
# account for separately - this tool only sees crypto + supplied other_income).
band_above = total_taxable - SURTAX_THRESHOLD
capital_in_band = min(capital_source, band_above)
report.surtax = capital_in_band * SURTAX_RATE
if report.other_income == 0 and (report.net_gain + report.total_income) > 0:
report.warnings.append(
"Surtax (mas yesafim) was assessed on crypto income ALONE because no "
"--other-income was supplied. The threshold (NIS 721,560) applies to "
"TOTAL taxable income; a salaried user may owe surtax even when crypto "
"gains alone are below it. Re-run with --other-income <salary+other> for "
"an accurate figure."
)
report.total_tax_estimate = report.capital_gains_tax + report.income_tax_estimate + report.surtax
# Advance payments
for event in year_gains:
if event.gain_nis > 0:
due_date = event.disposal_date + timedelta(days=ADVANCE_PAYMENT_DAYS)
payment = AdvancePayment(
gain_event_date=event.disposal_date,
due_date=due_date,
gain_nis=event.gain_nis,
tax_due_nis=event.gain_nis * INDIVIDUAL_TAX_RATE,
asset=event.asset,
)
report.advance_payments.append(payment)
report.remaining_lots = engine.get_remaining_lots()
return report
# ============================================================
# Output Formatters
# ============================================================
def format_report(report: TaxReport) -> str:
lines = [
"=" * 70,
f"ISRAELI CRYPTO TAX REPORT - TAX YEAR {report.year}",
"=" * 70,
"",
]
# Capital Gains Section
lines.extend([
"-" * 70,
"CAPITAL GAINS EVENTS (Form 1325)",
"-" * 70,
])
if report.gain_events:
for i, event in enumerate(report.gain_events, 1):
gain_str = f"+{event.gain_nis:,.2f}" if event.gain_nis >= 0 else f"{event.gain_nis:,.2f}"
term = "LONG" if event.is_long_term else "SHORT"
lines.extend([
f"\n Event #{i}:",
f" Asset: {event.asset}",
f" Amount: {event.amount:.8f}",
f" Acquired: {event.acquisition_date.strftime('%Y-%m-%d')}",
f" Disposed: {event.disposal_date.strftime('%Y-%m-%d')}",
f" Holding period: {event.holding_days} days ({term}-term)",
f" Acquisition cost: {event.acquisition_cost_nis:,.2f} NIS",
f" Disposal proceeds: {event.disposal_proceeds_nis:,.2f} NIS",
f" Gain/Loss: {gain_str} NIS",
])
if event.notes:
lines.append(f" Notes: {event.notes}")
else:
lines.append(" No capital gain events for this year.")
# Income Section
lines.extend([
"",
"-" * 70,
"INCOME EVENTS (Staking, Airdrops, Mining)",
"-" * 70,
])
if report.income_events:
for i, event in enumerate(report.income_events, 1):
lines.extend([
f"\n Income #{i}:",
f" Date: {event.date.strftime('%Y-%m-%d')}",
f" Type: {event.income_type}",
f" Asset: {event.asset}",
f" Amount: {event.amount:.8f}",
f" Value: {event.value_nis:,.2f} NIS",
])
else:
lines.append(" No income events for this year.")
# Summary
lines.extend([
"",
"-" * 70,
"TAX SUMMARY",
"-" * 70,
f" Total capital gains: {report.total_gains:>15,.2f} NIS",
f" Total capital losses: {report.total_losses:>15,.2f} NIS",
f" Net capital gain: {report.net_gain:>15,.2f} NIS",
f" Total other income: {report.total_income:>15,.2f} NIS",
"",
f" Capital gains tax (25%): {report.capital_gains_tax:>15,.2f} NIS",
f" Income tax (25% floor): {report.income_tax_estimate:>15,.2f} NIS",
])
if report.other_income > 0:
lines.append(f" (Other income for surtax: {report.other_income:>15,.2f} NIS)")
if report.surtax > 0:
lines.append(f" Surtax (5%): {report.surtax:>15,.2f} NIS")
lines.extend([
f" -----------------------------------------",
f" TOTAL ESTIMATED TAX: {report.total_tax_estimate:>15,.2f} NIS",
])
# Inflation-indexation warning: this calculator taxes the WHOLE gain at 25%
# and does not split out the inflation component (sechum hatzmada) under
# Section 91(b)(3), which is taxed at 0% for individuals on assets acquired
# after 1.1.1994. For lots held over ~12 months in inflationary periods, the
# figure above OVERSTATES the real tax. Flag the affected events explicitly.
long_held_gains = [e for e in report.gain_events if e.is_long_term and e.gain_nis > 0]
if long_held_gains:
lines.extend([
"",
" ! INFLATION-INDEXATION NOTICE (Section 91(b)(3)):",
f" {len(long_held_gains)} gain event(s) were held 12+ months. This tool",
" taxes the full gain at 25% and does NOT deduct the inflation",
" component (sechum hatzmada), which is tax-free for individuals.",
" The tax above is therefore an UPPER bound for these lots.",
" Apply a manual indexation pass or have a CPA review before filing.",
])
# Remaining positions
if report.remaining_lots:
lines.extend([
"",
"-" * 70,
"REMAINING POSITIONS (Cost Basis)",
"-" * 70,
])
for asset, pos in sorted(report.remaining_lots.items()):
lines.extend([
f" {asset}:",
f" Amount: {pos['amount']:.8f}",
f" Total cost: {pos['total_cost_nis']:,.2f} NIS",
f" Avg cost/unit: {pos['avg_cost_per_unit']:,.2f} NIS",
f" Lots: {pos['num_lots']}",
])
if report.warnings:
lines.extend([
"",
"-" * 70,
"WARNINGS (read before relying on the figures above)",
"-" * 70,
])
for w in report.warnings:
lines.append(f" ! {w}")
lines.extend([
"",
"=" * 70,
"DISCLAIMER: This report is for informational purposes only.",
"Consult a licensed Israeli tax advisor for official tax filing.",
"Rates and thresholds are based on 2026 regulations (surtax threshold frozen through 2027).",
"=" * 70,
])
return "\n".join(lines)
def format_form_1325(report: TaxReport) -> str:
"""Format data suitable for Form 1325 filing."""
lines = [
"=" * 80,
f"FORM 1325 DATA - TAX YEAR {report.year}",
"(Tofes 1325 - Doch Al Revach Hon)",
"=" * 80,
"",
f"{'#':>3} | {'Asset':<8} | {'Acquired':<12} | {'Disposed':<12} | "
f"{'Cost (NIS)':>14} | {'Proceeds (NIS)':>14} | {'Gain/Loss (NIS)':>16}",
"-" * 95,
]
for i, event in enumerate(report.gain_events, 1):
gain_str = f"{event.gain_nis:>16,.2f}"
lines.append(
f"{i:>3} | {event.asset:<8} | {event.acquisition_date.strftime('%d/%m/%Y'):<12} | "
f"{event.disposal_date.strftime('%d/%m/%Y'):<12} | "
f"{event.acquisition_cost_nis:>14,.2f} | {event.disposal_proceeds_nis:>14,.2f} | {gain_str}"
)
lines.extend([
"-" * 95,
f"{'':>3} {'TOTAL':<8} {'':12} {'':12} "
f"{'':>14} {'':>14} {report.net_gain:>16,.2f}",
"",
f"Total capital gains tax (25%): {report.capital_gains_tax:,.2f} NIS",
])
if report.surtax > 0:
lines.append(f"Surtax (5%): {report.surtax:,.2f} NIS")
return "\n".join(lines)
def format_advance_payments(report: TaxReport) -> str:
"""Format advance payment schedule."""
lines = [
"=" * 70,
f"ADVANCE PAYMENT SCHEDULE (Mikdamot) - {report.year}",
"=" * 70,
"",
f"{'#':>3} | {'Event Date':<12} | {'Due Date':<12} | {'Asset':<8} | "
f"{'Gain (NIS)':>14} | {'Tax Due (NIS)':>14}",
"-" * 75,
]
total_advance = 0
for i, payment in enumerate(report.advance_payments, 1):
lines.append(
f"{i:>3} | {payment.gain_event_date.strftime('%d/%m/%Y'):<12} | "
f"{payment.due_date.strftime('%d/%m/%Y'):<12} | {payment.asset:<8} | "
f"{payment.gain_nis:>14,.2f} | {payment.tax_due_nis:>14,.2f}"
)
total_advance += payment.tax_due_nis
lines.extend([
"-" * 75,
f"{'':>3} {'':12} {'':12} {'TOTAL':8} {'':>14} {total_advance:>14,.2f}",
"",
"NOTE: Advance payments (mikdamot) are due within 30 days of each",
"capital gain event. File Form 1399yod (transaction codes 77=sale,",
"71=virtual currency) with the payment; Form 1399het is the company",
"equivalent. The legacy 'Form 7002' is outdated for crypto. Late",
"payments accrue interest and linkage differences (hafreshei hatzmada).",
])
return "\n".join(lines)
def format_json(report: TaxReport) -> str:
"""Format report as JSON."""
data = {
"tax_year": report.year,
"summary": {
"total_gains_nis": round(report.total_gains, 2),
"total_losses_nis": round(report.total_losses, 2),
"net_gain_nis": round(report.net_gain, 2),
"total_income_nis": round(report.total_income, 2),
"capital_gains_tax_nis": round(report.capital_gains_tax, 2),
"income_tax_estimate_nis": round(report.income_tax_estimate, 2),
"surtax_nis": round(report.surtax, 2),
"other_income_nis": round(report.other_income, 2),
"total_tax_estimate_nis": round(report.total_tax_estimate, 2),
},
"warnings": report.warnings,
"gain_events": [
{
"asset": e.asset,
"amount": e.amount,
"acquisition_date": e.acquisition_date.strftime("%Y-%m-%d"),
"disposal_date": e.disposal_date.strftime("%Y-%m-%d"),
"acquisition_cost_nis": round(e.acquisition_cost_nis, 2),
"disposal_proceeds_nis": round(e.disposal_proceeds_nis, 2),
"gain_nis": round(e.gain_nis, 2),
"holding_days": e.holding_days,
"is_long_term": e.is_long_term,
}
for e in report.gain_events
],
"income_events": [
{
"date": e.date.strftime("%Y-%m-%d"),
"type": e.income_type,
"asset": e.asset,
"amount": e.amount,
"value_nis": round(e.value_nis, 2),
}
for e in report.income_events
],
"remaining_positions": {
asset: {
"amount": round(pos["amount"], 8),
"total_cost_nis": round(pos["total_cost_nis"], 2),
"avg_cost_per_unit_nis": round(pos["avg_cost_per_unit"], 2),
}
for asset, pos in report.remaining_lots.items()
},
}
return json.dumps(data, indent=2, ensure_ascii=False)
# ============================================================
# Demo Data
# ============================================================
DEMO_TRANSACTIONS = [
Transaction(datetime(2024, 1, 15), "buy", "BTC", 0.5, 75000, 375, "bits-of-gold", "Initial BTC purchase"),
Transaction(datetime(2024, 2, 1), "buy", "ETH", 5.0, 40000, 200, "bit2c", "ETH investment"),
Transaction(datetime(2024, 3, 10), "buy", "BTC", 0.3, 48000, 240, "binance", "Additional BTC"),
Transaction(datetime(2024, 4, 15), "staking", "ETH", 0.25, 2200, 0, "defi-protocol", "Q1 staking rewards"),
Transaction(datetime(2024, 5, 20), "airdrop", "ARB", 500, 2500, 0, "arbitrum", "Airdrop claim"),
Transaction(datetime(2024, 6, 1), "sell", "BTC", 0.4, 68000, 340, "bits-of-gold", "Partial BTC sale"),
Transaction(datetime(2024, 7, 15), "sell", "ETH", 3.0, 30000, 150, "bit2c", "Partial ETH sale"),
Transaction(datetime(2024, 8, 1), "buy", "SOL", 20, 4000, 20, "binance", "SOL purchase"),
Transaction(datetime(2024, 9, 10), "sell", "ARB", 300, 1800, 9, "binance", "Partial airdrop sale"),
Transaction(datetime(2024, 10, 1), "staking", "ETH", 0.15, 1500, 0, "defi-protocol", "Q3 staking rewards"),
Transaction(datetime(2024, 11, 15), "sell", "SOL", 10, 3000, 15, "binance", "Partial SOL sale"),
]
def run_demo():
"""Run a demo with sample transactions."""
print("Running demo with sample Israeli crypto transactions...")
print(f"Processing {len(DEMO_TRANSACTIONS)} transactions for 2024\n")
report = process_transactions(DEMO_TRANSACTIONS, 2024)
print(format_report(report))
print()
print(format_form_1325(report))
print()
print(format_advance_payments(report))
# ============================================================
# Main
# ============================================================
def main():
parser = argparse.ArgumentParser(
description="Israeli Crypto Capital Gains Calculator (FIFO)",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
CSV Format:
date,type,asset,amount,price_nis,fee_nis,exchange,notes
2024-01-15,buy,BTC,0.5,75000,375,bits-of-gold,Initial purchase
2024-08-20,sell,BTC,0.3,51000,255,bits-of-gold,Partial sale
Transaction types:
buy Purchase of crypto with fiat
sell Sale of crypto for fiat
trade_buy Crypto received in a crypto-to-crypto trade
trade_sell Crypto given in a crypto-to-crypto trade
staking Staking reward received
airdrop Airdrop tokens received
mining Mining reward received
fork Hard fork tokens received (zero cost basis)
transfer Wallet/exchange transfer (not taxable, tracking only)
Examples:
%(prog)s --input trades.csv --year 2024
%(prog)s --input trades.csv --year 2024 --form-1325
%(prog)s --input trades.csv --year 2024 --advance-payments
%(prog)s --input trades.csv --year 2024 --json
%(prog)s --demo
""",
)
parser.add_argument("--input", "-i", help="Path to CSV file with transactions")
parser.add_argument("--year", "-y", type=int, help="Tax year to report on")
parser.add_argument("--form-1325", action="store_true", help="Generate Form 1325 data")
parser.add_argument("--advance-payments", action="store_true", help="Generate advance payment schedule")
parser.add_argument("--json", action="store_true", help="Output in JSON format")
parser.add_argument("--demo", action="store_true", help="Run with demo data")
parser.add_argument("--tax-rate", type=float, default=0.25,
help="Capital gains tax rate (default: 0.25 for individuals)")
parser.add_argument("--other-income", type=float, default=0.0,
help="Non-crypto taxable income for the year (salary, business). "
"Required for an accurate surtax (mas yesafim) assessment, "
"since the threshold applies to TOTAL taxable income.")
args = parser.parse_args()
if args.demo:
run_demo()
return
if not args.input or not args.year:
parser.error("--input and --year are required (or use --demo)")
transactions = parse_csv(args.input)
if not transactions:
print("No valid transactions found in the input file.", file=sys.stderr)
sys.exit(1)
print(f"Loaded {len(transactions)} transactions.", file=sys.stderr)
report = process_transactions(transactions, args.year, other_income=args.other_income)
if args.json:
print(format_json(report))
elif args.form_1325:
print(format_form_1325(report))
elif args.advance_payments:
print(format_advance_payments(report))
else:
print(format_report(report))
if __name__ == "__main__":
main()
Related skills
FAQ
Is Israeli Crypto Tax Reporter safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.