Cost-basis work becomes difficult when a person moves between countries, platforms, and currencies during one tax year. A wallet transfer can be non-sale in one context and part of a regulated event in another; an exchange statement can omit network fees; a local-currency conversion can use a different day. This article focuses on preserving accurate source facts and questions for a qualified adviser, not declaring a universal accounting result.

Keep immutable source exports

Download statements in the platform’s original format and retain the export date, account entity, and period. Save trade fills, deposits, withdrawals, fees, staking or reward records, and any correction notices. Do not overwrite the source file with translated labels. Use a working table for normalized fields and retain a link back to each original row. If a service stops offering exports, record the official retrieval method and the file checksum.

Normalize the asset identity

Names and tickers are not unique. Record contract address or network for tokens, chain for wrapped assets, and whether a platform uses an internal balance. Keep quantity in native units and separate a fiat conversion column. A transfer between two wallets can look like a sale if the ledger lacks address ownership labels. Add a private “from role” and “to role” field such as own wallet, exchange, merchant, or unknown.

Capture execution and fee details

A trade record should include order ID, execution quantity, price, quote currency, trading fee, and whether the fee was deducted in another asset. A withdrawal should include network fee, platform fee, transaction ID, and the service’s status. Rounding can create a residual; keep the platform’s value and a reconciliation note. Never infer a fee from the difference between two displayed balances when a statement can provide the exact line.

Handle currency and time zones

Store the currency code and valuation timestamp for every conversion. A New Zealand dollar statement and a US dollar market chart answer different questions. Keep UTC alongside the local time shown by the platform and note daylight-saving context when relevant. Do not copy a price from a news article into a formal file without its source, market, and time. A professional can then apply the rule that matches the jurisdiction.

Mark uncertainty visibly

Use statuses such as confirmed, platform-reported, estimated, missing, and needs-adviser-review. Explain why a row is uncertain instead of silently filling it. If two exchanges disagree, preserve both values and identify the account entity. This protects the integrity of the record and avoids presenting a calculation as settled law. Redact login details and personal identifiers before sharing a draft with a professional.

Prepare adviser questions

Build a short question list: how are own-wallet transfers treated, which exchange entity issued the statement, which valuation source is acceptable, how are fees classified, and what records must be kept. Attach only relevant evidence and keep a confidential index. The file should let an adviser verify facts without receiving a seed phrase, private key, or unrestricted access. Rules change; date the question set and revisit it each reporting period.

Operational worksheet

Add a reconciliation key that links each trade, transfer, or fee to the original statement row and a public transaction ID where one exists. Keep a currency table with code, source, timestamp, and conversion method; never leave a symbol such as “$” unexplained. When a transfer moves between two wallets you control, flag it as an ownership question rather than silently treating it as a disposal or acquisition. Preserve corrections from an exchange as new files and note which rows they supersede. Before sending a package to an adviser, remove login cookies, API secrets, QR codes, and unrelated identity documents. A professional can then apply current local rules to a factual record. Date the package and list missing evidence, because an honest gap is safer than a calculated value presented as certain.

For a multi-currency file, include a glossary that defines asset, quantity, fee, execution price, transfer, and valuation. Keep a separate list of documents that a local adviser requested and the date supplied. This avoids repeated uploads and helps identify a missing source without granting account access. Never let a conversion formula hide the original transaction quantity.