Transfers and matching
Last updated: 2026-08-26
When you send 0.5 BTC from Binance to your hardware wallet, Binance records a withdrawal and the wallet records a deposit. Those are two halves of one move, not a sale and a purchase. If they are not paired, your cost basis sees a "sale" with no proceeds on one side and a "purchase" with no cost on the other, and your gains come out wrong, usually far too high.
This is the part crypto tools get wrong most often, and the part where I would rather ask you than guess.
What you see
Transfers lists four groups, each with a count:
- Paired transfers. Withdrawals and deposits the app matched, each with the rule that matched them.
- Needs your decision. A withdrawal where more than one deposit fits the rules. The app does not pick; you do.
- Unmatched withdrawals. Coins that left an account with no deposit to pair them with.
- Unmatched deposits. Coins that arrived with no withdrawal to pair them with.
Legs you have told the app to leave alone (Exclude from matching) stay in the unmatched lists with that noted as their reason, and your manual decisions are listed at the bottom of the page.
The rules
Two legs are paired automatically only when all of these hold:
| Rule | Plain meaning |
|---|---|
| R0 | Same transaction ID (hash) on both legs: conclusive on its own. Only R1 and R2 still have to hold. |
| R1 | Same coin on both legs. |
| R2 | Different accounts. A withdrawal and a deposit in the same account is never a transfer. |
| R3 | The deposit arrives within the pairing window after the withdrawal. Default: 48 hours. |
| R4 | The amount received is not larger than the amount sent. Transfers never grow in flight. |
| R5 | Any shrink is within the fee allowance: 2% of the amount sent by default, or the withdrawal fee declared in the export if that is larger. The shrink is the network fee. |
If one withdrawal has exactly one best candidate, it is paired. If several deposits fit equally well, it lands in "Needs your decision". Time distance inside the window is deliberately not used as a tie-breaker, because confirmation times vary too much to mean anything.
Paired legs show a confidence label: Exact (same hash), Amounts match within the fee allowance, or Paired by you.
What the pairing does to your numbers
A paired transfer moves the coins, and their original purchase date and cost, from one account to the other. The small difference between sent and received (the network fee) is treated as a fee. Nothing is sold, nothing is bought.
Fixing things
More than one deposit fits. Open the item, look at the candidates, and pick the right one. If none of them is right, choose "None of these" and the withdrawal stays unpaired.
A withdrawal has no deposit. Three possibilities:
- The coins went to a wallet or exchange you have not imported yet. Import it, and the pairing happens on its own.
- The coins went to a wallet without exports (a hardware wallet, for instance). Add the deposit by hand in Transactions with the received amount, then pair manually if the app does not do it.
- The coins went to someone else. That is a disposal. Change the type to
sellwith the value you received, or leave it as a withdrawal and mark it "Never pair this one"; it is then treated as a disposal at zero proceeds, which is rarely what you want, so asellis usually better.
A deposit has no withdrawal. Either the sending account is not imported yet (import it), or the coins were income, a gift, or a purchase elsewhere. Change the type to reward and give it a value if it was income; otherwise add the matching withdrawal or a buy.
The app paired the wrong two. Open the pair and click Unpair. Both legs go back into the automatic pool; if the app would pair them again, exclude one of them or pair each with the right counterpart manually.
Pair manually. You can pair any withdrawal with any deposit of the same coin. A manual pair is honoured even if it breaks R3, R4 or R5; the app tells you which rules it breaks and keeps the pair anyway.
Changing the window and allowance
Settings → Transfer pairing. Raise the window for slow chains or exchanges that batch withdrawals for hours; raise the allowance if a chain's fees are a larger share of your typical transfer (small transfers on a congested network, for example). Then click Re-run automatic pairing. Your manual pairs and exclusions are kept.
Sub-accounts and the same exchange
If you import an exchange's main and sub-accounts under one account name, internal transfers between them are not pairs (same account, R2) and show as a withdrawal and a deposit that cancel out. If you want sub-accounts tracked separately, import them under different names and they pair like any other transfer.
Tax note
Moving crypto between wallets you own is not a taxable event in the US, and the coins keep their original purchase date and cost. Moving crypto between wallets you control is not a disposal for UK CGT. The CRA says moving crypto between wallets you own is not a taxable disposition, and your adjusted cost base carries over unchanged. A network fee paid in crypto on a self-transfer is a small disposal of the coins used for the fee; the IRS, HMRC and CRA have not said whether that fee can be added to your cost basis, so the app records it and leaves the treatment to you and your adviser.
This article is for general information only — not financial or tax advice.