Importing transactions using the Custom CSV Template
Cryptio supports CSV imports for deposits, withdrawals, trades, and custom opening balances. You may need to import via CSV if you want to import historical balances, cost basis, or adjustments, or if Cryptio doesn’t yet support the chain or exchange you’re using. This ensures all of your data still ends up in Cryptio.
To make sure your data imports correctly, it’s important to use our official CSV template and follow the required formatting rules.
You can download the official CSV template here. While the template is shared as a Google Sheet, only CSV files are supported for imports. Formats like XLS or XLSX are not valid, so make sure to export your file as a CSV before uploading.
We are very strict on formatting. Even small mistakes (such as capital letters in the wrong place) will prevent your CSV from being uploaded successfully.
CSV Columns
When preparing your CSV, you’ll see the following headers:
transactionDate | orderType | txhash | incomingAsset | incomingVolume | incomingUnitRate | incomingTransactionValue | outgoingAsset | outgoingVolume | outgoingUnitRate | outgoingTransactionValue | feeAsset | feeVolume | feeUnitRate | feeTransactionValue | otherParties | note
Key Rules:
Deposits → only fill in incoming columns.
Withdrawals → only fill in outgoing columns.
Trades → fill in both incoming and outgoing columns.
Unit Rate vs. Value → only use one of these. If you fill in a unit rate, leave transaction value blank (and vice versa).
This design ensures that valuation data is included at the time of import, which simplifies cost basis calculations later.
Column Explanations
transactionDate
Mandatory.
Enter the exact date and time of the transaction in UTC if possible (not your workspace time zone, the time will automatically update once imported).
Format:
YYYY-MM-DD HH:MM:SS(e.g.,2024-12-30 20:10:00).
orderType
Mandatory.
Must be lowercase:
deposit→ money inwithdraw→ money outtrade→ exchange between two assets
The order type determines which other columns are required. For example,
withdrawrequiresoutgoingAssetandoutgoingVolume.
Entries like Withdraw, DEPOSIT, or withdrawal are invalid.
txhash
Optional, but highly recommended.
This helps you differentiate, and easily find, transactions in Cryptio.
The unique transaction hash from the blockchain. You can also generate a unique, random hash per transaction if you don't have hashes.
Multiple rows can share the same
txhashif they represent different movements from the same transaction. They will display as a complex transaction in Cryptio.
Asset Columns (incomingAsset, outgoingAsset, feeAsset)
Use the asset’s unique symbol (see Cryptio’s unique symbol list).
Some assets share the same ticker but have different contract addresses. For example:
AUSDT-2ae24= AAVE V1 USDTAUSDT-c09ca= AAVE V2 USDT
Popular tokens like BTC, ETH, and USDT use their standard ticker.
incomingAsset & incomingVolume
Required for
depositandtrade.Volume must use a dot as the decimal separator (e.g.,
1000000.25).Commas are not allowed (❌
1,000,000).
outgoingAsset & outgoingVolume
Required for
withdrawandtrade.Same volume formatting rules as above.
incomingUnitRate / incomingTransactionValue
Optional, but only one should be filled.
If you enter a unit rate, leave transaction value blank (and vice versa).
outgoingUnitRate / outgoingTransactionValue
Same rules as incoming rate/value.
Fees (feeAsset, feeVolume, feeUnitRate, feeTransactionValue)
Only required if the transaction has fees.
Use the same formatting rules as assets and volumes.
For fee-only transactions, use orderType
withdraw, and just fill in the fee columns.
otherParties
Optional.
This should be the address of the other side of the transaction. For instance, for a deposit the otherParty is the address of the entity that sent you funds.
Despite the plural, you may only enter one value.
note
Optional free-text field for notes or comments.
You can filter for notes in Cryptio.
Adding Transactions to an Existing CSV
You can add new transactions to a previously uploaded CSV. However:
All rows in the file will be imported again.
If you re-upload old data, you may create duplicates.
To avoid this, only include new transactions in your updated CSV.
To upload:
Go to Imports.
Click on the source row.
Select + Add transactions and upload your updated CSV.
Importing Opening Balances and Carrying Cost Basis
You can add transactions to existing sources. For instance, if you’ve already reconciled or processed past transactions and don’t want to re-import them, or if you have a start date on some of your sources, you will want to include opening balances. Many users migrating to Cryptio need to import closing balances and carry over cost basis from previous accounting.
For example:
If you’ve closed your 2024 books, you can import 2024 closing balances as opening balances, and carry over the cost basis using a custom CSV.
Then, start importing new sources from January 1st, 2025 onward.
Step 1: Create the Custom CSV Import File
Copy headers from the v2 transaction template into a new spreadsheet.
Use the format
YYYY-MM-DDfor dates.For time, if your opening balance starts on Jan 1, 2025, use
2025-01-01 00:00:01in your CSV. If you use2024-12-31, the transaction won’t be recognized correctly.
Step 2: Populate the File
In Assets module, filter for the asset(s) in your closing balance.
Copy the unique token IDs.
In your Opening Balances file, fill in
incomingVolumewith the closing balance.Note: All transactions should be
deposits, unless you ended a period with a negative balance for an asset.
Add a note such as “opening balance” for easy identification.
Save and export the file as CSV.
Create one CSV per connector/wallet. For example, if your Dec 31, 2024 balance is split across Ethereum and Coinbase, you’ll need two files.
Step 3: Import the Custom CSV
Go to Imports > then find the source you'd like to add opening balances to.
Click anywhere on the row to open the Source Edition drawer, then select
+ Add transactionsunder Import Transactions.Upload your CSV and click Update.
Repeat for other connectors.
For first-time users: please contact Cryptio Support. We’ll enable this feature for your workspace and guide you through the process.