Accounting for crypto assets is a challenge for modern businesses as there still isn’t clear guidance on the topic, and most accounting software hasn’t evolved to support crypto.
Specifically, most general ledger accounting software solutions do not support crypto assets, and businesses have to create duct-tape-style solutions using Excel, crypto tax tools, and other add-ons.
In this post, we’ll discuss best practices for accounting for crypto assets, answer commonly asked questions, and introduce you to software built specifically to handle the complexities of crypto.
While authoritative accounting guidance for crypto assets is still in development, non-authoritative guidance and best practices have emerged. Crypto assets generally do not meet the definition of other asset classes within GAAP. Therefore, they should be classified as intangible assets and accounted for under FASB ASC 350, Intangibles - Goodwill and Other.
This means companies using crypto assets will need to adopt other features of an intangible asset, such as the requirement to for impairment testing, in accordance with the intangible assets guidance.
Below we’ll walk through how to record crypto assets in your accounting system and some common practices.
The lack of authoritative guidance will continue to be a theme in this post. In accordance with this theme, a “correct” method of calculating costs basis has not been declared. Non-authoritative guidance suggests a “reasonable and rational methodology for identifying which units of a crypto asset were sold or traded. A method considered reasonable and rational is First-in, First-out, or FIFO.” Under this method, the earliest crypto assets are used to calculate the gain/loss on a sale or trade transaction.
To calculate the gain or loss on a crypto transaction, you will first need to know the cost basis. Using the FIFO method, you'll need to liquidate the number of crypto assets required to satisfy the transaction by identifying the earliest or “oldest” crypto assets held. The cost of these assets will be compared to the market rate of the crypto asset(s) in the transaction and the difference will be your realized gain or loss.
To give you an example of calculating the gain or loss of a transaction using the FIFO method, let's assume you purchased one bitcoin for $1,000 in January and one bitcoin for $2,000 in February. In March, you sell one Bitcoin for $3,000. As you can see, the price of a single bitcoin fluctuates significantly in U.S. dollars.
To calculate the gain/loss, you first calculate the cost basis by taking the cost layers needed to fulfill this transaction, which is 1 Bitcoin. Since we have the earlier transaction of 1 Bitcoin at a price (cost basis) of $1,000, the total cost basis to fulfill this sale of 1 Bitcoin is $1,000. Next, you would take the difference between the cost basis and the asset's current price in the sale transaction. So, in this case, it comes out to a gain of $2,000 (the "first out" sale of $3,000 in March minus the purchase price of the "first in" from January for $1,000).
While this simplified example makes the process seem relatively straightforward, many companies deal with thousands of transactions daily, making it very difficult to accurately calculate each transaction's cost basis in order to record the gains/losses at scale.
Many accounting teams manage their crypto accounting in Excel sheets. However, this is highly inefficient and exposes the data to human error. While there are crypto tax add-ons that one can bolt onto traditional general ledger solutions, it's still inefficient as you have to export the data and then re-import it to the general ledger.
To solve this problem, we built SoftLedger, a full-featured cloud accounting platform built to support crypto natively. This means that not only are all crypto transactions seamlessly integrated with your general ledger, but it lets users record all crypto transactions with ease. In fact, it automatically calculates the cost basis of each transaction using FIFO. The system automatically calculates the gain or loss and records the corresponding journal entry for you in real-time.
Below, we'll discuss exactly how to record crypto transactions in SoftLedger.
There are a few steps to the crypto accounting process:
While the process is relatively straightforward, it can quickly become confusing if you have more than a few weekly transactions.
Therefore, SoftLedger automates the entire process so that you save time and can rest assured that the data is always accurate and audit-ready. Below, we'll walk you through an example of recording crypto transactions in SoftLedger.
To create a new transaction, select "Transactions" under the Crypto navigation and then click "New". This will give you the option to create a singular transaction. SoftLedger also gives you the option to add transactions in bulk.
To buy crypto from fiat, you'll want to choose the "Deposit" type.
You can see there are three other types. These are "Withdrawal" (selling crypto for fiat), "Transfer" (moving coins between two wallets), and "Trade" (e.g., swapping BTC for ETH).
In this example, to debit this asset, we're going to buy it for cash, so we'll add a credit to cash. Here's how we would enter that:
We’re reducing our cash balance and increasing our Bitcoin balance:
You can add the rate manually or click the Per Coin Price download button. This will pull through the latest market rate:
Next, you have to select a wallet. These are typically set up to mirror how crypto is held. They can mirror your trading activity on a particular exchange, represent a specific wallet address, or you might just have different areas of your crypto business that you want to segment.
You can then add further notes to the transaction and press “SUBMIT”:
When you look in your transactions, you’ll see this latest deposit has been added:
This transaction adds another cost layer which you’ll see automatically reflected in SoftLedger.
Click on the relevant wallet:
Under transactions, you’ll be able to see all your cost layers:
Recording crypto transactions is easy with SoftLedger. The system does not suffer from common pitfalls in other crypto accounting solutions, such as decimal precision and coin support. If the coin is exchange-traded, you can find it inside SoftLedger, and if not, you can easily create your own asset, using the system’s Custom Coin feature.
When a transaction takes place, SoftLedger automatically creates a journal entry:
These journal entries show the changes to your crypto balances as well as what your gain or loss was, depending on the type of transaction. An example of a withdrawal transaction and the impact it has on the income statement can be found below:
This process allows businesses to automate the entire crypto accounting process in a controlled, auditable way.
Reporting is also flexible. Navigate to "Report Editor" under Admin in the main navigation, and you can easily make edits to SoftLedger's standard reports - Balance Sheet and P&L.
Note the crypto assets mapped to intangible assets within the balance sheet:
GL accounts and account subtypes can easily be mapped or unmapped within the report editor. You can also create your own report from scratch by clicking on the "new" button.
Once your report is complete, you can create a copy, edit it, or export it and send it to clients.
The report editor is an example of the flexibility that exists within the system. It allows you to customize and tailor the platform to your business, without the need for a third-party consultant.
While it's possible to account for crypto transaction activity manually, SoftLedger automates the entire process and seamlessly integrates your crypto and fiat accounting.
This automation saves human resources by reducing your team's time accounting for crypto assets and enables them to close the books faster. As a result, executives will also be able to access more accurate data and make better decisions for the company.
If you need a native crypto accounting software platform, consider giving SoftLedger a try. You can book a demo today to see if it's right for your business.