Keeping Company Crypto Records That Survive an Audit
Which fields to capture for every transaction, how to handle the exchange rate question, and how to make month end take an hour.
What this covers
Choosing a wallet on security features and then finding it cannot produce a monthly statement is a common and expensive mistake. Security protects you from something rare. Reporting is work you do every month forever. It is easier to follow this with a real example open, and a corporate crypto wallet shows the same numbers plainly.
Why this is harder than a bank account
A bank statement has one currency, a running balance, and one line per transaction.
A crypto wallet has several assets, each worth a different amount in ordinary money at every moment, transactions that cost a fee in a different asset than the one being sent, and a blockchain that is the real record rather than the provider.
What to capture for every transaction
The transaction identifier. Date and time including the time zone. Which asset and how much. Whether it went out or came in, and to or from where. The fee amount and which asset paid it. The value in your own currency at the time, for both the transfer and the fee. A reference linking it to an invoice or expense. And who created and who approved it.
If your wallet cannot export all of that, somebody will be reconstructing the missing parts from a blockchain explorer. That is hours a month.
The exchange rate question
Which rate applies is a decision you make once and then apply the same way every time.
The choices are the rate at the exact moment of the transaction, the closing rate that day, or the average for the day.
Any of them is defensible. Switching between them is not. Write it into your accounting policy and make sure the wallet’s export uses the same one, otherwise every line disagrees slightly. A fund or an investment vehicle needs the same thing with more paperwork, which a provider serving funds and family offices provides.
Fees paid in a different asset
Sending a token usually costs a fee in the network’s own currency. Over a month that is a separate stream of small disposals that has to be tracked and valued.
Wallets vary in how they report this. Some show it as its own line, some bundle it in, some leave it out and you find it on the blockchain. The first is what you want.
The end of month problem
A transaction sent just before midnight on the last day and confirmed just after belongs to which month. The answer depends on your policy, and the wallet has to give you both timestamps for you to apply it.
Minor most of the year. Not minor at year end.
Test the export before you commit
Ask for a sample export with a real month of transactions, not a four-row demonstration file. Check that every field above is present, that the rate method is stated, that fees are separate, and that it loads into your accounting system without someone editing it first.
The setup that makes this fast
Use separate wallets for separate purposes: running costs, payroll, reserve. Reconciling four small single-purpose wallets is far easier than one where everything is mixed together.
And require the invoice reference at the moment someone creates a payment. If they have to enter it before the payment can be submitted, reconciliation becomes mechanical. If they do not, someone is matching amounts to invoices by eye a month later. If you want a working example of everything above, a support channel with a named contact is one.
That one rule is worth more than any export feature.