Bridge to Arbitrum
Moving ETH and ERC-20s to Arbitrum One is two different jobs wearing one name. Depositing is fast and cheap. Withdrawing through the canonical bridge is slow by design — Arbitrum's documentation is explicit that funds leaving Arbitrum One or Nova for Ethereum mainnet take at least seven days to arrive. This guide covers both directions, the fee model on each side, and the cases where you should pick a different route entirely.
What "bridging to Arbitrum" actually does
Arbitrum One is an optimistic rollup that settles to Ethereum. Its native gas token is ETH and its chain ID is 42161; the sibling chain Arbitrum Nova uses chain ID 42170 and an AnyTrust data-availability model rather than posting all data to Ethereum. Neither chain has its own separate "account" that you log into — your Ethereum address is your Arbitrum address, and the balance you see there was put in place by a bridge contract.
The canonical (official) bridge is a pair of contracts. When you deposit, your tokens are escrowed by a gateway contract on Ethereum, and a message is passed down to Arbitrum instructing the L2 gateway to credit you the corresponding token. Arbitrum's docs call that message a retryable ticket: the parent-chain transaction that submits it is separated from the child-chain transaction that executes it, which is what gives deposits their atomicity guarantee. The system first attempts automatic redemption on Arbitrum; if that fails — usually because the supplied gas parameters were too low for conditions at execution time — the ticket sits in a retryable buffer and, per the docs, anyone can manually redeem it. Critically, tickets live in that buffer for one week. If nobody redeems within that window, the ticket expires and is discarded, which is the single most important reason not to "fire and forget" a large deposit.
Withdrawals run the other way and cannot use the same trick, because Ethereum has no way to know whether the Arbitrum state you are claiming against is honest. That is what the challenge period is for, and it is covered in its own section below.
One asset-level trap deserves an early flag: Arbitrum One supports both Circle-native USDC and bridged USDC.e. Arbitrum's own troubleshooting page states plainly that these "are different tokens at different contract addresses." They are not interchangeable, and sending one to a venue expecting the other is a recurring source of confusion. Check the contract address, not the ticker.
What you'll need (prerequisites)
- A self-custodial wallet (MetaMask, Rabby, or a hardware wallet driving one of them). Note that Arbitrum's docs record a limitation here: bridge support for smart-contract wallets is currently limited to token deposits and withdrawals, and ETH transactions are not yet supported for them.
- ETH on Ethereum mainnet to pay for the deposit transaction — and, if this is your first time bridging that particular ERC-20, an approval transaction as well. Arbitrum's docs confirm the two-transaction pattern: one approval the first time, plus the deposit itself.
- A small ETH balance on Arbitrum for whatever you plan to do after arrival. Deposits of ETH solve this themselves; deposits of a bare ERC-20 may not.
- The correct contract address for the token you intend to hold on the destination side, sourced from the issuer rather than a search result.
- Comfort reading an approval prompt — see how to revoke token approvals if that is new to you.
- Time. Deposits are a coffee break. Withdrawals are a week.
Recommended for this tutorial
Tools and accounts referenced in the steps below:
Two routes: the canonical bridge vs third-party bridges
Before touching a transaction, decide which of the two families you are using, because they have completely different risk and timing profiles.
The canonical Arbitrum bridge
The official interface lives at bridge.arbitrum.io. Its security is the security of Arbitrum itself: you are trusting the rollup's contracts and its fraud-proof system, not a separate set of signers. There is no third-party liquidity provider standing between you and your money. The price of that is the withdrawal delay. Use it for deposits almost always, and for withdrawals when you are not in a hurry or when the amount is large enough that you would rather wait a week than trust an intermediary.
Third-party fast bridges
Arbitrum's own documentation acknowledges that "some users opt to use third-party fast bridges, which often bypass this delay." Protocols such as Across, Hop and Stargate do not wait out the challenge period. Instead a relayer or liquidity pool fronts you the asset on the destination chain immediately and later reclaims the slow canonical withdrawal for itself. For USDC specifically, Circle's CCTP takes a different approach again, burning on the source chain and minting natively on the destination.
The trade is explicit: you pay a fee to the party taking on the wait, and you take on that party's smart-contract and operational risk on top of Arbitrum's. Fees on these routes are quoted live and move with liquidity and gas, so read the quote in the interface rather than assuming a rate — and compare the "amount received" figure across two or three routes before committing.
Step-by-step: depositing to Arbitrum One
-
Step 1: Open the official bridge and verify the URL
Navigate to
bridge.arbitrum.io. Type it or use a bookmark — do not arrive via a search advertisement or a link in a Discord message. Cloned bridge front-ends that swap the destination address are one of the most durable phishing patterns in crypto. Confirm the padlock and the exact spelling of the domain before connecting anything. -
Step 2: Connect your wallet and set source and destination
Connect your wallet, then confirm the source network shown at the top of the interface is the chain your funds are actually on, and pick the destination network from the pop-up menu. The connect step is a signature, not a transfer — it moves nothing. If your wallet is on the wrong chain the interface will prompt you to switch; approve that network switch in the wallet rather than editing RPC settings by hand.
-
Step 3: Fund both sides with ETH
Arbitrum One's native gas token is ETH, and so is Ethereum's, so you need ETH in two places: enough on mainnet to pay for the approval and deposit transactions, and enough on Arbitrum to transact once you arrive. Depositing ETH itself covers the second requirement automatically. Depositing only an ERC-20 does not — you will land with a token balance and no gas. Size the mainnet buffer against the gas price you can actually see in your wallet at the moment you send; Ethereum fees vary by more than an order of magnitude across the day.
-
Step 4: Choose the token and approve it (first time only)
Select your token from the dropdown and enter the amount in the "From" box. For ERC-20s, Arbitrum's docs describe signing one or two transactions: an approval the first time you bridge that token, then the deposit. Where your wallet lets you edit the allowance, approve the exact amount you are bridging rather than an unlimited allowance — that bounds your loss if the spender contract is ever compromised, and it is the same hygiene covered in our approvals guide. Note that not every ERC-20 has a registered gateway; exotic or rebasing tokens may simply not be bridgeable this way.
-
Step 5: Click "Move funds" and let the deposit settle
Press Move funds and complete the prompts in your wallet. Per Arbitrum's quickstart, the deposit should land "within roughly 15-30 minutes (depending on chain congestion)." What is happening under the hood is the retryable ticket described above: the L1 transaction confirms, then Arbitrum attempts automatic redemption on the L2 side. Leave the tab open if you can, and do not resubmit because the balance has not appeared after five minutes.
-
Step 6: Verify on Arbiscan and keep the hashes
Open the L1 transaction on Etherscan and the resulting L2 credit on Arbiscan. Confirm the token contract on the Arbitrum side is the one you expected — this is where a USDC/USDC.e mix-up becomes visible before it becomes expensive. Save both hashes; cross-chain movements are awkward to reconstruct at tax time from balances alone.
Withdrawing back to Ethereum: the seven-day challenge period
The withdrawal flow in the interface looks nearly identical — select source and destination, pick the token, enter the amount, click Move funds — but it does not finish there. Arbitrum's support documentation states that once you withdraw from Arbitrum One or Nova through the bridge, "you will have to wait for at least seven days to receive them on the Ethereum mainnet." The troubleshooting page phrases the practical version as "roughly one week," noting the variance comes from block-time variation and padding at both ends.
The reason is structural rather than administrative. Arbitrum is an optimistic rollup: transactions are published and assumed valid, and the window exists so that a verifier can submit a fraud proof against a dishonest state assertion before it becomes final on Ethereum. Arbitrum's own explanation ties the length to a community judgement about how long a censorship attack against Ethereum itself could plausibly last, and the resulting figure was settled on in common with other rollup teams. It is not a queue you can pay to skip, and it does not get shorter for small amounts.
When the countdown ends, the funds do not appear on their own. You have to come back and claim them: open the profile menu, go to the Transactions tab, and select Claim on the completed withdrawal. That claim is an Ethereum mainnet transaction, so you need mainnet ETH available a week after you started — a genuinely easy thing to forget if you bridged out your entire balance. Two further points from the docs: a withdrawal cannot be cancelled once initiated, and if the L1 address that should receive the funds is not the address that initiated on L2, the bridge interface will not let you claim — you use the cross-chain dashboard at retryable-dashboard.arbitrum.io/tx to execute the message on L1 instead. Smart-contract wallets are directed to that same dashboard.
Fees and how they are charged
There are three distinct cost buckets and it helps to keep them separate.
- Ethereum-side gas. Ordinary mainnet gas on the approval and deposit transactions, or on the final claim. This is usually the dominant cost and is entirely outside anyone's control.
- Arbitrum-side gas. Arbitrum's fee model has two components: a child-chain execution fee covering computation and storage on Arbitrum, and a parent-chain data-posting fee that reimburses the cost of publishing your transaction's compressed data back to Ethereum. The docs put it as the child-chain basefee multiplied by the sum of child-chain gas used and the parent-chain calldata charge. This is why Arbitrum fees rise when Ethereum is busy even though Arbitrum itself is not.
- Route fees. Zero for the canonical bridge beyond the gas above; non-zero for third-party fast bridges, where the relayer or LP is compensated for capital and for absorbing the seven-day wait.
One Arbitrum-specific quirk worth internalising: the sequencer processes transactions first-come, first-served, and the docs are blunt that tips "are ignored" — users always pay the basefee regardless of the priority fee they set. Bumping the tip to speed up an Arbitrum transaction does nothing. (If a transaction includes a priority fee, the origin address is refunded at the end of execution.) Whatever the interface displays as the fee summary before you confirm is the number to trust; check it in the moment rather than budgeting from a figure in an article.
Security and pitfalls
Bridges have been the single most damaging category of DeFi failure, and it is worth being specific about why, because the failure modes are not the ones people expect. The canonical Arbitrum bridge inherits the rollup's own security model. Most catastrophic bridge losses have come from designs that did not — from external validator sets, multisigs, and custom proof verification.
- Compromised signers. The Ronin Bridge hack drained roughly $620M after a spear-phishing campaign captured enough validator keys. No contract bug was needed.
- Broken proof verification. The Wormhole exploit bypassed signature verification for about $326M, and the BNB Chain Token Hub exploit forged Merkle proofs for $568M.
- A single bad line, copied at scale. The Nomad bridge hack became a $190M free-for-all because the initial exploit could be copy-pasted by anyone watching the mempool.
- Operator risk with no code failure at all. Multichain simply stopped, with around $210M stranded after its CEO's arrest made the MPC keys inaccessible. See also Orbit Bridge and Poly Network.
Practical habits that follow from that record: bridge in tranches rather than in one transfer if the amount is meaningful; send a small test amount on any route you have not used before, and wait for it to fully arrive before sending the rest; never hold size on a bridge's intermediate representation longer than you must; verify the destination token contract against the issuer's published address; and treat any front-end you reached by search or DM as hostile until proven otherwise. Address-poisoning attacks specifically target the copy-paste-from-history habit that bridging encourages — see how to detect address poisoning. If you are moving amounts you would be unhappy to lose, a hardware wallet is the cheapest risk reduction available.
When not to use this route
- You need funds on Ethereum today. The canonical withdrawal will not deliver for a week, and no amount of gas fixes that. Use a fast bridge and accept its fee and its risk, or plan further ahead.
- The amount is small relative to mainnet gas. Bridging $40 of a token through Ethereum L1 can cost a meaningful fraction of the position twice over. Consider buying the asset directly on Arbitrum, or withdrawing from a centralised exchange straight onto Arbitrum, which most major venues now support.
- You are only moving USDC. A native-mint route for USDC avoids ending up with a wrapped representation you then have to swap out of.
- You want a different destination chain. The Arbitrum bridge only serves Arbitrum chains. For Base, see how to bridge to Base; for general cross-chain messaging routes, see how to bridge with LayerZero.
- The token has no registered gateway. Some assets cannot cross canonically. Check whether the issuer has an official Arbitrum deployment first, and be extremely wary of a "bridged" version nobody sanctioned — check its liquidity before you rely on being able to sell it.
Troubleshooting
- The deposit confirmed on Ethereum but nothing arrived on Arbitrum. Give it the documented 15-30 minutes first. If it still has not landed, the retryable ticket's automatic redemption probably failed. The ticket is not lost — it sits in the retryable buffer and, per the docs, anyone can manually redeem it. Use the cross-chain dashboard at
retryable-dashboard.arbitrum.io/txwith your L1 transaction hash. Do this promptly: tickets remain in the buffer for one week and are discarded if never redeemed. - The withdrawal countdown finished but the funds are not in my wallet. This is expected. Withdrawals require an explicit claim on Ethereum: profile menu → Transactions tab → Claim. You need mainnet ETH to pay for it.
- The Claim button will not work. Per Arbitrum's troubleshooting page, this happens when the L1 address that should receive the funds is not the L2 address that initiated the withdrawal, and for smart-contract wallets. In both cases you execute the message on L1 through the cross-chain dashboard once the withdrawal period has expired.
- I started a withdrawal by mistake. Once initiated it is not possible to cancel a withdrawal. You wait it out, claim, and bridge back.
- I hold USDC.e and expected USDC (or vice versa). These are separate tokens at separate contract addresses on Arbitrum One. Neither is broken; swap between them on any Arbitrum DEX, and check the address before assuming a balance is missing.
- A pending Ethereum transaction is stuck. Speed it up with a replace-by-fee at a higher gas price, or cancel it by sending a zero-value transaction to yourself with the same nonce and higher gas. Note this applies to the L1 leg only — on Arbitrum, tips are ignored and raising them will not accelerate anything.
- I approved something I should not have. Revoke the allowance immediately and, if you suspect a live compromise, move the remaining balance to a fresh wallet before anything else. Our approvals guide walks through it.
- I sent funds to an exchange deposit address on the wrong network. Do not send more. Contact the receiving venue with the transaction hash — recovery, where it is possible at all, is a manual process on their side and is never guaranteed.
FAQ
How long does bridging to Arbitrum take?
Deposits from Ethereum to Arbitrum land in roughly 15-30 minutes depending on chain congestion, per Arbitrum's quickstart. Withdrawals from Arbitrum One or Nova to Ethereum through the canonical bridge take at least seven days, and the docs describe the practical duration as roughly one week.
Why does the withdrawal take seven days?
Arbitrum is an optimistic rollup. Transactions are assumed valid when published, and the challenge period is the window in which a verifier can submit a fraud proof against a dishonest state assertion before it finalises on Ethereum. The length reflects a community judgement about how long a censorship attack on Ethereum itself could last. It cannot be paid down or skipped.
Can I avoid the seven-day wait?
Only by using a different route. Arbitrum's docs note that some users opt for third-party fast bridges that bypass the delay — a relayer or liquidity pool fronts you the asset and absorbs the wait itself. You pay a fee for that and you take on that protocol's risk in addition to Arbitrum's.
What does it cost?
The canonical bridge charges no route fee — you pay Ethereum gas on the L1 legs and Arbitrum gas on the L2 side, where the fee is a child-chain execution component plus a parent-chain data-posting component. Third-party bridges add their own quoted fee. Read the fee summary in the interface before confirming; gas moves too much for any published figure to be reliable.
Can I cancel a bridge transaction?
No. On-chain transactions are irreversible, and Arbitrum's docs confirm that once a withdrawal is initiated it cannot be cancelled. Test with a small amount on any unfamiliar route, and simulate before signing where your wallet supports it.
Why did my priority fee not speed anything up on Arbitrum?
Arbitrum's sequencer processes transactions first-come, first-served. The docs state that tips are ignored and that users always pay the basefee regardless of the tip chosen; a transaction that includes a priority fee has it refunded to the origin address at the end of execution.
What if the sequencer goes down or censors me?
Transactions can be submitted to the Delayed Inbox on Ethereum. If 24 hours pass without processing, any participant can call forceInclude on the SequencerInbox contract to guarantee inclusion, so the sequencer can delay a transaction but not block it permanently.
USDC or USDC.e — which do I want?
Arbitrum One supports both, and Arbitrum's troubleshooting page states they are different tokens at different contract addresses. Circle-native USDC is the one most new integrations use; USDC.e is the older bridged representation. Confirm which one a destination venue expects before you send.