Paynoramic launches Marengo, a white-label crypto exchange you can try before you buy.Meet Marengo, our white-label exchange. See the exchange.

How a crypto withdrawal reaches the right wallet: addresses, networks and confirmations

A crypto withdrawal finds its wallet by the address, which names the network, holds a hash of the owner's key and ends in a checksum. The exchange checks its rules and signs; blocks confirm it.

A Bitcoin address split into its parts, above a route from exchange to network, block and wallet

A crypto withdrawal reaches the right wallet because of its address: a short string that names the network, the type of address and a hash of the owner's key, and ends in a checksum that lets wallets catch typing mistakes. The exchange checks the withdrawal against its own rules, signs it and sends it to the network, where it waits to be put in a block. Each block added after that one is a confirmation, and after enough of them the payment is settled for good. This guide takes each step in turn, for founders and product leads building or buying an exchange.

How a Bitcoin withdrawal finds its wallet, from the address to the confirmations

What a wallet address is made of

A wallet address is where a payment goes, and it is not a secret. It is derived from the owner's public key, which in turn comes from their private key, so anyone can pay to it but only the key holder can move what arrives.

BIP-173's example Bitcoin address split into its parts: bc for Bitcoin, the separator 1, q for version 0, a hash of the owner's key, and a six-character checksum

No name, bank or account number is involved. The address does all the routing, which is why its format is built to resist mistakes.

A Bitcoin address, character by character

Take the example address from Bitcoin's own standard for native SegWit addresses: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4. It is 42 characters long, and BIP-173 gives each part a job:

  1. bc is the human-readable part, and says the address is for Bitcoin's main network.

  2. 1 is the separator, always the digit one. Everything after it is data, written in an alphabet that leaves out "1", "b", "i" and "o", which are easy to confuse.

  3. q is the witness version, here version 0. It tells the wallet which kind of address, and which spending rules, follow.

  4. The middle is the witness program. For this type of address it is a 20-byte HASH160 of the owner's public key, which BIP-141 defines as pay-to-witness-public-key-hash: a fingerprint of the key, not the key itself.

  5. The last six characters are a checksum and carry no information of their own. BIP-173 says the code behind it "guarantees detection of any error affecting at most 4 characters".

The practical result is that a wallet which checks the checksum refuses a mistyped address instead of sending to it. BIP-173 also tells decoders to reject an address that mixes upper and lower case: written all in capitals, as QR codes do, it is fine; mixed, it is refused.

An Ethereum address

An Ethereum address is 0x followed by 40 hexadecimal characters, 20 bytes taken from a hash of the owner's public key. Hexadecimal leaves no room for a separate checksum, so EIP-55 hides one in the letters' case.

The address is hashed with keccak-256, and each letter from a to f is written in capitals where the matching digit of that hash is 8 or higher. EIP-55 puts this at about 15 check bits per address on average, so a randomly mistyped address has a 0.0247% chance of passing.

An address written all in lower case carries no checksum at all. A withdrawal form that accepts one without comment has one check fewer.

Bitcoin (native SegWit, version 0)

Ethereum

Looks like

bc1q, then 38 characters

0x, then 40 hex characters

Names the network

Yes, bc

No

Holds

The witness version and a hash of the key

20 bytes from a hash of the key

Checksum

The last six characters (BIP-173)

The case of the letters (EIP-55)

Mistyping caught

Any error of up to 4 characters

All but 0.0247% of random typos

Why the network matters as much as the address

Many tokens exist on more than one blockchain. A stablecoin such as USDT is issued on several networks, and each copy lives only on its own chain: USDT on Ethereum and USDT on Tron are separate balances that never touch.

That is why a withdrawal form asks for a network as well as an address. The exchange sends from its wallet on the chosen network, and the recipient only sees the payment if their wallet or exchange watches that same network.

The trap is that some networks share an address format. Ethereum and the networks that run its software use the same 0x addresses, so an address valid on one passes every format and checksum check on another. A wrong-network send can look correct right up to the moment the funds land where the recipient's wallet does not look.

What happens next depends on who holds the key for that address on the other chain. Someone with their own wallet may reach the funds by adding that network to it; an exchange's deposit address needs a manual recovery, if the receiving exchange offers one at all. Good product design prevents the problem instead:

  • Offer only the networks the asset is actually supported on, and name them in full.

  • Pre-select the network when the address format fits only one.

  • Show the network beside the address on the confirmation screen.

  • For assets that use a shared address with a memo or destination tag, such as XRP, ask for the tag and warn clearly when it is left empty.

Network fees and the mempool

Every on-chain transaction pays a network fee to whoever adds it to a block: a miner on Bitcoin, a validator on Ethereum. It is not the exchange's fee, and it goes to the network rather than to either side of the payment.

On Bitcoin the fee depends on the transaction's size in data, not on the amount sent, so moving a large sum can cost the same as moving a small one. The price of that space rises and falls with demand.

A signed transaction first goes to the mempool: the waiting room each node keeps of valid transactions not yet in a block, often thousands at a time. Miners usually pick the ones paying the most per unit of space, so a low fee waits longer when the network is busy.

For an exchange, this is a choice made on every withdrawal: pay more for speed, or batch several users' withdrawals into one transaction to share the cost. What the user is charged is a separate decision, covered in how crypto exchanges make money.

Blocks and confirmations

A miner gathers transactions from the mempool into a block and adds it to the chain. Bitcoin is designed to produce a block about every ten minutes on average, adjusting how hard the work is as mining power comes and goes.

Each block added after the one holding a transaction is another confirmation; wallets count the block that holds it as the first. Every block makes the transaction harder to undo, because rewriting it would mean redoing all the work stacked on top.

Exchanges choose how many confirmations to wait for, asset by asset, before treating a payment as arrived: before crediting a deposit, or before marking a withdrawal complete. A larger amount, or a chain that has had blocks reorganised, argues for more. Ethereum also marks blocks as finalised after a set time, which an exchange can use instead of a count.

What an exchange checks before a withdrawal leaves

Everything above happens after the exchange sends. Before that, a well-built exchange runs each withdrawal through a sequence of checks, and most of them are product and compliance decisions rather than blockchain ones:

The eight checks before a crypto withdrawal leaves: address and network, amount and fee held, daily limit, second factor, approval rules, address screening, Travel Rule data, then sign and send
  1. The address and the network. The format and checksum are checked for the chosen network, and an address that belongs to another network is refused.

  2. The balance. The amount and the fee are held in the ledger, so the same funds cannot be traded or withdrawn twice while the withdrawal is under way.

  3. The user's limit. Daily withdrawal limits are usually set by verification level, so an account that has passed fuller identity checks can move more.

  4. The account holder's confirmation. A second factor, such as an authenticator app, confirms the request came from the account holder (authentication). Many exchanges also hold withdrawals to a newly added address for a while.

  5. Approval rules. A withdrawal above a set amount, to a first-time address or from an account that has just changed its password can wait for a member of staff to approve it in the backoffice.

  6. Address screening. Wallet screening checks the destination against known risks, such as addresses linked to sanctions, scams or stolen funds, before anything is signed.

  7. The Travel Rule. When the destination belongs to another regulated provider, information about the sender and the recipient goes with the transfer. The obligations are set out in KYC, AML and the Travel Rule.

  8. Signing and sending. Only then is the transaction signed, from a hot wallet, a multi-party computation setup or a cold wallet for larger sums, and broadcast to the network (custody and wallets).

The order varies between exchanges; the principle does not. Nothing is signed until every check has passed, because a blockchain has no way to reverse a confirmed payment.

Who signs is the operator's decision: the licensed exchange itself, or a custodian it appoints, holds the keys. Afterwards the exchange watches the chain, marks the withdrawal complete after its confirmations, records the network fee in the ledger and tells the user.

You can see this in Marengo, our crypto exchange: every withdrawal goes through approval rules, and a daily limit set by the user's verification level, before it leaves.

FAQ

Can a crypto withdrawal be reversed?

No. Once a transaction is confirmed, nobody can pull it back; only the recipient can return the funds, in a new transaction. That is why every check sits before signing, not after.

How many confirmations does an exchange wait for?

It is the exchange's choice, per asset, weighing the amount, the chain's history and how quickly users expect their funds. Showing the count on the deposit and withdrawal screens tells users how long to expect.

Why is the exchange's withdrawal fee different from the network fee?

The network fee goes to the miner or validator and changes with demand for block space. The withdrawal fee is the exchange's own price, often fixed per asset and network, and can be more or less than the network charged that day.

Does a valid address mean the payment will arrive?

Only on the right network. A passing checksum shows the address was not mistyped; it says nothing about whether the recipient watches the network chosen, or whether a memo or tag was needed.

See a withdrawal's path for yourself

A withdrawal is easiest to understand by following it: the address, the checks, the network and the confirmations. You can see how deposit addresses, withdrawals, approval rules and limits fit together in Marengo at marengo.paynoramic.com, or read what is handed over on the white-label crypto exchange page.

Written by

Paynoramic's Head of IT

Head of IT at Paynoramic, responsible for the module library every platform is built from. Has worked on payment, banking and workforce platforms for companies including American Express, Teya and Indeed Flex, and for a global card issuer-processor. Writes about what a fintech or crypto launch needs beyond the software: licensing, certification and the real cost.