Mastering crypto accounting, Swiss crypto VAT and Swiss crypto corporate tax: Essential Tips and Tricks

Crypto Accounting
August 16, 2021


As the world of cryptocurrencies continues to evolve and gain traction, businesses and individuals in Switzerland are increasingly incorporating these digital assets into their financial portfolios. However, with this adoption comes the necessity for accurate and compliant accounting practices. Swiss crypto accounting requires a unique understanding of both traditional financial principles and the intricacies of the crypto landscape. In this article, we'll explore essential tips and tricks to help you navigate the complexities of Swiss crypto accounting. 

Understand Swiss Regulatory Landscape

Before delving into crypto accounting, it's crucial to have a solid grasp of Switzerland's regulatory framework surrounding cryptocurrencies. Swiss regulations are known for their relatively crypto-friendly nature, but compliance is still essential. Familiarize yourself with the Swiss Financial Market Supervisory Authority (FINMA) guidelines and stay updated on any changes to ensure your accounting practices are aligned with the law.

Step 1: Pull all transactions from all your wallets and exchanges ideally using software

Identify a software solution which you can use that will consolidate all your wallet transactions and convert them to FIAT. You ideally want a solution that integrates with your accounting system however those solutions can be limited in terms of the number of chains they support. Our recommendation is Breezing. Should you have more niche chains, we recommend using CoinTracking. 

Of course if either application is not supporting your chain, you can always do a manual CSV upload into those applications. Add all your wallet transactions into the applications and also include any exchange ledger which you are using. You can typically connect your wallets by just adding the wallet address to the solution and for exchange you just have to retrieve the APIs from your account or you can upload a manual ledger. 

Step 2: Pull your DeFI transactions

The solutions mentioned earlier may not have the capability to pull DeFI transactions. For this, we recommend checking, Debank or Merlin by Valk. These solutions will give you visibility into your DeFI activity at transaction level and allow you then to export them into excel so you can book them into your accounting system. 

Step 3: Cross check the balances for each crypto

Ensure your balances are correct. Cross check the balances in the software solutions you’ve used with the balances on the blockchain explorer or your exchange. You need to ensure you’ve captured ALL transactions in your wallets or exchange. 

If the balances do not match, you may need to add or remove a transaction depending on the balance differences. 

Step 4: Reconcile each crypto transactions for Net Gain/Loss

Once you have the transactions in the application, you need to go through and specify which transactions were transfers between wallets or internal transactions. This ensures that when you calculate your net gain loss later on, you will be able to calculate it on the right cost basis. 

You will see the options in each of the software solutions to label the transaction as a specific type. Such options include purchases, sales, trades, mining rewards, airdrops, and staking rewards.

Step 6: Set up your chart of accounts in your accounting system - Start with balance sheet

We use Xero for our client’s accounting system and in Xero we need to set up specific accounts pertaining to crypto assets. You need to set this up on both the balance sheet and income statement. Let’s start with the balance sheet. On the balance sheet, you can set up your chart of accounts in 2 ways: 

Step 6.1: Create an asset account for each crypto currency you have in your wallet

In this scenario, you can create an account for each crypto asset you have in your crypto wallets as an asset account on your balance sheet. This looks something like this. 

In this set up, it is wise to have separate current asset accounts for each major crypto currency and then just lump the smaller crypto currencies into an account known as Other Cryptocurrency Assets. 

Step 6.2: Add your wallet address or exchange as a crypto bank account or asset

The second option is to add your wallet address or exchange as an asset account ideally a bank account and if not add it as a current asset account. We recommend adding the wallet address as a bank account so you are able to close out invoices otherwise if it’s an asset account you are unable to close out invoices from vendors and customers. 


In many jurisdictions, you cannot report a crypto asset as a bank account. Therefore, when filing your taxes, you will simply need to report this account as a Current Asset account. This however does not limit you from operating a crypto wallet as a bank account to make simpler from an accounting perspective and then simply noting the bank account as an asset account when filing your tax return. 

Step 6.3: Our recommendation

This really depends on your accounting system. In Xero for example and many others, you cannot close invoices from Current Asset accounts. You can only close invoices from bank accounts therefore for these accounting systems, we do advise adding your crypto wallet as a bank account. 

However, many crypto accounting software do not sync transactions to a bank account if you are not using Breezing. If this is the case, you need to create a Crypto Clearing Account as a bank account or current asset account depending on the accounting software you use so that you can close invoices from this account and post the transactions to the Crypto Clearing to close the balance in this account. You can see Step 11 below for more details. 

Finally if you have say 20 wallets and in those wallets only few transactions, it would not be wise to have 20 separate accounts on your balance sheet but rather use Step 6.1 and list each crypto asset individually and lump the smaller ones into another cryptocurrency asset account. 

Step 7: Set up your chart of accounts in your accounting system - Income statement

On the income statement, you will need to create the below accounts. 

  • Wallet and Exchange Fees - You will incur gas fees and other fees when transacting in crypto. It is best to have a separate account on the income statement for these fees. 
  • Realized Crypto Net Gain Loss - For each transaction that leaves your wallet, you will need to book an asset gain or loss on that transaction. Therefore a separate account for this is also recommended. 
  • Unrealized Crypto Net Gain Loss - At year end, you will need to rebase your crypto assets and book an unrealized net gain loss on your income statement. In some countries like Switzerland, this booking affects your net profit and your tax liability while in others, this is simply for a management report. 

Step 8: Categorize crypto transactions by account

Once you have all transactions in your system, you need to categorize each transaction into an account. So if you paid your lawyer in USDT for legal work, you will categorize this expense into Legal Expenses on your income statement. Similarly, if you receive income from sales, you would categorize this income as Sales. 

Go through each and every transaction and try to identify a specific account. If this is too tedious and takes too much time, then simply bulk each transaction as either an expense or income or a balance sheet movement like trading BTC into ETH or moving a MATIC transaction between wallets to speed up the process. In CoinTracking you can make bulk edits for specific wallets or tokens. In Breezing, you can make bulk edits but also set rules stating that all transactions coming from a specific wallet go into a specific income statement account. 

Once again, it’s important in this step to ensure that all internal transactions between wallets are labeled correctly to ensure that your net gain loss calculation later on is correct. 

Step 9: Calculate Net Gain Loss

Once you have categorized all transactions and labeled those which were transferred among your wallets, you then need to calculate net gain loss for your crypto transactions. You can use either accounting method FIFO - First In First Out or ACB - Average Cost Basis. Whichever you choose you need to be consistent throughout the year and not interchange. 

To calculate crypto net gain loss, you need to firstly calculate your cost basis. For example, if you bought 1 BTC at 10,000 CHF and bought another BTC at 20,000 CHF later on, using the accounting method ACB your cost basis would be set at 15,000 CHF specifically for your BTC asset. 

Now anytime you sell BTC or you trade BTC for another crypto asset or you use BTC to pay one of your vendors, you need to calculate what your crypto net gain loss is on that specific transaction. So let’s say I trade 1 BTC for 5 ETH and the price for BTC at the time of the trade was 20,000 CHF, I would need to realize a 5,000 CHF gain (15,000 CHF cost basis from earlier minus 20,000 CHF the price of BTC during the trade. This would need to be booked on my income statement. 

It is also important to note that even USDT, USDC, DAI and other stablecoins may also have a net gain loss impact if you are working with non USD denominated currencies and even with USD as your primary currencies, there is always the possibility that these stablecoins depeg  from USD, meaning no longer be a 1:1 exchange with the US dollar, which will cause a net gain loss amount needing to be booked. 

Be aware that crypto net gain loss is not simply taking the value of your crypto at year end and subtracting it with the value of crypto at the beginning of the year. This is not an accurate calculation of Net Gain Loss and you will get into issues with the authorities if such an approach has been taken. 

Step 10: Calculating Unrealized Net Gain Loss

Yes there is a difference between realized and unrealized net gain loss. Realized net gain loss means you have incurred an actual gain or loss from the sales, payment or trade of your crypto asset. 

Unrealized net gain loss is simply the paper value of a crypto asset and you have not yet lost or gained on this crypto asset any FIAT loss or gain. In Switzerland, you are permitted to record an unrealized net gain loss at year end which can ultimately reduce your tax liability. 

Be aware, this cannot be done by simply taking the value of your crypto at year end and subtracting it with the value of crypto at the beginning of the year. You need to identify the unrealized net gain loss on each individual crypto asset which has a different value on the date it was purchased. 


Let's assume you have three investments:

  • Investment A: Initial Value = CHF 5,000, Current Market Value = CHF 6,000
  • Investment B: Initial Value = CHF 10,000, Current Market Value = CHF 9,000
  • Investment C: Initial Value = CHF 15,000, Current Market Value = CHF 18,000
  • Unrealized Gain for A = CHF 6,000 - CHF 5,000 = CHF 1,000 (Gain) 
  • Unrealized Loss for B = CHF 9,000 - CHF 10,000 = -CHF 1,000 (Loss) 
  • Unrealized Gain for C = CHF 18,000 - CHF 15,000 = CHF 3,000 (Gain)

Net Unrealized Gain = CHF 1,000 + (-CHF 1,000) + CHF 3,000 = CHF 3,000

Unrealized Net Gain Loss are typically booked at year end and are included in the Swiss tax return that you prepare according to article 960b from "Code des Obligations". This can significantly reduce your tax liability. 

Step 11: Close out open invoices

As specified earlier, if have set up your chart of accounts in a method that has every major crypto asset listed and you want to close out Accounts Payable (AP) or Accounts Receivable (AR) invoices, you will need to do this by creating a Bank Account or Current Asset called Crypto Clearing Account. 

If you are using Xero, this account will need to be a Current Asset account that enables payments. If you are using Quickbooks, this account can be a Bank Account. It really depends on the accounting software you are using and if they let you post journals into a bank account. If they do not, then you need to add the crypto clearing account as a current asset account. 

This Crypto Clearing Account is used to close out invoices and bills in AP and AR accounts. 

Once you payout using the crypto clearing account, you will need to post the crypto transaction to this account which is relevant for this specific invoice. If you have a running balance in your crypto clearing account, this means that you have some crypto transactions that have not yet been synced or booked in wrong accounts as this account should always zero out before making any regulatory filings like VAT or tax. 

Step 12: Recognize revenue correctly for DeFI

When receiving DeFI rewards from minting, staking or other activities, it is important to recognize these rewards not when you have claimed and they’ve landed in your crypto wallet but when they were actually allocated to you and available for claiming. Meaning you may need to recognize revenue before the DeFI rewards are claimed and the income transaction hits your wallet. 

This becomes important during regulatory filing such as quarterly VAT or end of year tax. You need to ensure that revenue is correctly recognized in the right quarter or year to ensure your financials are audit proof. 

Step 13: Apply VAT

When paying vendors or receiving income in crypto, you need to also be aware that VAT laws apply. Meaning you need to consider apply VAT codes on your invoices when receiving crypto payments, booking input VAT for invoices received domestically in Switzerland and applying VAT reverse charge from vendors abroad. 

For more details on VAT please read Understanding Swiss VAT: A Comprehensive Guide to Value Added Tax in Switzerland.

Step 14: Apply for VAT and tax ruling where unsure

If you want absolute certainty that you are applying the right VAT or tax approach, it is important to file for a ruling with the local or federal authorities. For example, in the case of a token sale where the token is a utility token, it is possible to apply for a ruling which allows you to take a cost plus 5% or 10% approach to recognizing revenue for tax purposes.

From a management reporting perspective, you can still present your financials with the entirety of the token sales as revenue but for the purposes of tax, you can book a tax advantage by securing such a ruling. 

Another example is mining and the application of VAT. When applying Swiss VAT on mining rewards, one theoretically needs to identify the recipient of the service provided by the miner. In this case, the recipient of the services is the one who executed the transaction. As you can imagine, this can be virtually impossible to identify and therefore the Swiss authorities would request that you apply VAT to all mining rewards where the recipient's location is not known. 

Therefore one proposition is to apply for a Swiss VAT ruling for mining. One Swiss VAT ruling we've encountered is to use Swiss GDP vs World GDP as a proxy percentage to apply to all transactions where you receive mining rewards and the recipient of the service is unknown. In this scenario, you would apply Swiss VAT on 0.8% of all transactions coming where the location of the person or entity who executed the transactions is not known. You will have to obtain such a ruling before applying for such a rate.


These steps are meant to give you some guidance into navigating the wild fields that is crypto accounting. The important thing to remember is that we are applying old GAAP and IFRS laws into a newly emerging field such as Web 3 where there is a lot of room for interpretation and grey area. Do your best and if you don’t know something, always best to hire experts like Detof.

Search Pivot