The catch that gets people is the fee stack. Three numbers matter on any bridge, and the first time you use one you only see the third. The third number is the destination gas, in the chain's own token, taken from your transfer. The second is the relayer or service fee, usually a flat 0.05 to 0.3 percent. The first is the implicit cost of the swap your bridge runs to convert the gas portion into the gas token at its own rate. Read those three numbers on a 500 USDC test transfer before you trust them on a 50,000 USDC one. The bridge that quotes 0.1 percent on the button is often charging 0.4 percent once the gas swap is counted. The honest comparison is the amount that lands in the destination wallet, not the number on the quote screen.
The safe path is small, deliberate, and same-asset. Same-asset means USDC on Ethereum to USDC on Arbitrum, not USDC on Ethereum to a wrapped version of USDC on a chain you have never used. Wrapped assets are where the second failure mode lives, after fee opacity: bridge bugs that minted unbacked tokens, oracle mistakes that let attackers drain a contract, and exit queues when a bridge halts and users cannot redeem. USDC, WETH, and wstETH keep the exit simple. Exotic yield-bearing or cross-chain-mint tokens do not.
A worked sequence for a first bridge move, in this order:
1. Approve the bridge contract to spend the token, not an unlimited amount. Set a cap equal to the transfer plus ten percent. Revoke the approval from a tool like revoke.cash once the transfer confirms.
2. Send a test. One percent of the intended amount, same asset, same destination. Confirm the wallet on the other side before sending the rest.
3. Compare the quoted fee against what actually left the source wallet and what actually arrived. If the difference is more than 0.5 percent on a stablecoin, use a different bridge.
4. Save the transaction hash on both chains. Bridge failures usually look like one side confirmed and the other did not; the hashes tell a support process where the funds are.
One more rule, and it is the boring one. A bridge is a tool for moving value, not for holding it. Move it across, use it, move it back or to a chain where you have a reason to keep it. The longer a position sits inside bridge contracts, the more it depends on the bridge's continued solvency and security. That is not a comment on any specific operator; it is a structural fact about wrapped assets, and the safest posture is to minimize the time your funds sit wrapped at all.
More on Crypto Bridge.