AI Summary
- It requires more manual effort, but it works for literally any transaction source.
- Use Custom File when your exchange or transaction source is not supported in KoinX integrations
- Download the template from Integrations → Custom File → Download Template File
- Every row in the file represents one transaction
- Three fields must always be filled: Date and Time (UTC), Type, and Label
- Other fields depend on what happened in that transaction
- Upload the completed template under Integrations → Add Integration → Custom File
- Only files in KoinX Custom File template format are accepted
When Should You Use Custom File?
Not every exchange or transaction source is supported directly in KoinX’s integration library. Maybe you:- traded on a smaller regional exchange
- executed OTC deals
- used a platform that no longer exists
- received crypto from an external wallet
- interacted with DeFi platforms that don’t have a native integration
How Custom File Works
The Custom File template is a structured spreadsheet. Each row describes one transaction, including:- what happened
- which assets moved
- how much was sent or received
- any fees involved
How to Upload a Custom File
Click Add Integration.
Select Custom File from the integrations list.
Click Download Template File.
Open and Fill the Document
Return to the Custom File integration page.
Upload the File
Click Submit
Understanding the Template Structure
The template contains multiple columns so it can support every possible crypto transaction type. However, not every column applies to every transaction. We’re dividing this template to two parts:- Required Fields
- Transaction Data Fields
Required Fields (Always Needed)
These fields must be filled for every row. If any are missing, the file will fail to upload.- Date and Time (UTC)
This is the exact timestamp of the transaction.
Format: YYYY-MM-DD HH:MM:SS
Example: 2023-05-30 14:34:25- Must use 24-hour format
- Must be UTC timezone
- Avoid letting Excel auto-format dates. A safe approach is to copy the example timestamp from the template and edit it. Spreadsheet software sometimes silently changes date formats, which can break the import.
- Type
The Type describes the broad category of the transaction.
Allowed values:
- Label
Label adds more detail about the transaction. The allowed labels depend on the Type you selected.
For example:
Transaction Data Fields
The remaining fields describe what assets moved in the transaction. You only fill the fields relevant to that transaction.- Received Asset Fields
Use these when crypto was received.
- Sent Asset Fields
Use these when crypto was sent.
- Fee Fields
Use these when a transaction fee was paid.
- TDS Fields
These apply only when tax was deducted at source.
Primarily relevant for Indian exchanges.
- Address and Hash Fields
These are useful for blockchain transactions.
- Token Contract Fields
These identify tokens on EVM chains.
Only required for less common tokens.
Rules for Empty Fields
Do not leave cells blank. Use placeholders.Sample Scenarios:
Buying ETH using USDT
Buying ETH using USDT
Label: BuyExample: Received 1.5 ETH and Sent 2850 USDT
Receiving an Airdrop
Receiving an Airdrop
Label: AirdropExample - Received 500 ARB tokens
Sending BTC to another wallet
Sending BTC to another wallet
Label: External WithdrawExample - Sent 0.1 BTC
Paying Gas Fees
Paying Gas Fees
Label: Brokerage or Gas FeeExample - Paid gas fee of 0.003 ETH
Common Issues and Fixes
Upload fails with "Invalid Format"
Upload fails with "Invalid Format"
- Incorrect timestamp format.
Make sure the format is: YYYY-MM-DD HH:MM:SS. And that the timezone is UTC. - Label does not match Type
Example mistake: Type: Trade and Label: Airdrop
This will fail because Airdrop is only allowed for Deposit.
Missing transaction details
Missing transaction details
- Use
0for amounts - Use
-for coin names or addresses
Uploading more transactions later
Uploading more transactions later
Frequently Asked Questions
Can I upload a regular exchange CSV?
Can I upload a regular exchange CSV?
What happens if base currency values are 0?
What happens if base currency values are 0?
Do I need to fill TDS fields?
Do I need to fill TDS fields?
Can KoinX create the custom file for me?
Can KoinX create the custom file for me?