Transfer ERC-20 Tokens Between Ethereum and Polygon PoS Using the Native Bridge
Move ERC-20 tokens between Ethereum mainnet and Polygon PoS using the native Proof-of-Stake bridge, including deposits, withdrawals, checks, and recovery.
18 Jun 2026, 08:56 UTC

Problem and takeaway
You need to move an ERC-20 token between Ethereum mainnet and Polygon PoS without creating or destroying tokens. The native Polygon PoS bridge locks or burns tokens on the source chain and mints or releases an equivalent amount on the destination chain. The main limitation is speed: withdrawals are not instant and require a checkpoint plus a challenge period before you can claim funds on Ethereum.
Desired outcome
A confirmed destination-chain balance equal to the amount sent, with the source-chain balance reduced by the transfer amount plus gas. Deposits require an Ethereum transaction and a Polygon mint. Withdrawals require a Polygon burn, a waiting period, and an Ethereum claim transaction.
Prerequisites
- A web3 wallet such as MetaMask connected to Ethereum mainnet and Polygon PoS.
- ETH on Ethereum mainnet for gas on deposits and withdrawal claims.
- MATIC on Polygon PoS for gas on deposit confirmations and withdrawal burns.
- The ERC-20 token must appear on the native Polygon PoS bridge’s supported token list. Sending an unsupported token can result in loss of funds.
- Sufficient source-chain token balance for the transfer amount.
ERC-20 is the Ethereum token standard. Gas is the transaction fee paid to the network. An allowance is the amount a smart contract is permitted to transfer from your wallet.
Deposit: Ethereum mainnet to Polygon PoS
1. Configure networks and fund gas
Add Polygon PoS to your wallet if needed. Fund Ethereum with ETH and Polygon PoS with MATIC before starting. Insufficient gas on either chain can leave bridge transactions pending or failed.
2. Approve the bridge contract
On the bridge interface, select the token and amount, then approve the bridge spender on Ethereum. This is an Ethereum transaction that costs ETH gas. The bridge cannot move tokens without this approval.
Use only the native Polygon PoS bridge entry point. The Plasma bridge and Polygon zkEVM are separate systems with different contracts and finality rules. Sending to the wrong bridge can make funds irrecoverable.
3. Submit the deposit
After the approval clears, submit the deposit. The bridge locks tokens on Ethereum and emits an event that Polygon validators include in a checkpoint.
4. Wait for checkpoint and confirm on Polygon
Polygon validators submit checkpoints to Ethereum at intervals. Once your deposit is included, the equivalent tokens are minted on Polygon PoS. This can take minutes to hours depending on checkpoint timing.
Withdrawal: Polygon PoS to Ethereum mainnet
1. Initiate the burn on Polygon
On the bridge interface, select withdrawal and enter the amount. The bridge burns tokens on Polygon PoS. This transaction requires MATIC gas.
2. Wait for checkpoint and challenge period
The burn must be included in a Polygon checkpoint submitted to Ethereum. After checkpoint inclusion, a challenge period begins. You cannot submit the claim transaction during this window.
3. Claim on Ethereum
When the challenge period ends, submit the claim on Ethereum mainnet. The bridge releases tokens to your Ethereum address and costs ETH gas. Do not submit duplicate claims; a successful claim consumes the withdrawal proof.
Optional: Check the bridge allowance before depositing
// Example only. Run in a Node.js environment with ethers.js installed.
// Replace placeholders with mainnet addresses and your token decimals.
import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider("");
const token = new ethers.Contract(
"",
["function allowance(address owner, address spender) view returns (uint256)"],
provider
);
const allowance = await token.allowance("", "");
console.log(ethers.formatUnits(allowance, ));
Required permissions: read access to an Ethereum RPC endpoint. No private key is needed for this read-only check. Expected result: an allowance greater than or equal to the transfer amount. Risk: an incorrect spender address returns zero and will cause the deposit to fail.
Expected checks
- Copy the source-chain transaction hash and view it on Etherscan (Ethereum) or Polygonscan (Polygon). Confirm the status is "Success."
- Check the destination-chain balance in your wallet or block explorer before treating the transfer as complete.
- For deposits, look for the matching mint event on Polygonscan. For withdrawals, confirm the Ethereum claim transaction is mined and the Ethereum balance increases.
Example URL patterns, replacing placeholders: https://etherscan.io/tx/ and https://polygonscan.com/tx/.
Recovery options
| Situation | Check | Action |
|---|---|---|
| Deposit submitted but not appearing on Polygon | Etherscan receipt and Polygon checkpoint status | If the Ethereum transaction failed, check the nonce and resubmit with higher gas. If it succeeded, wait for the next checkpoint. |
| Withdrawal burn succeeded but claim is unavailable | Challenge period timer on the bridge interface | Wait until the challenge period ends, then submit the claim transaction. Do not resubmit the burn. |
| Transaction pending for an extended time | Gas price and nonce on the source chain | Replace the transaction with a higher gas price using the same nonce, or cancel it if your wallet supports cancellation. |
Limitations and pre-flight verification
- Withdrawals can take several hours to days because of checkpoint frequency and the challenge period.
- Gas tokens are chain-specific: ETH on Ethereum and MATIC on Polygon. You cannot pay Ethereum gas with MATIC.
- Bridge contract addresses and supported token lists can change with upgrades. Verify the current bridge entry point on official Polygon documentation before mainnet use.
- This guide covers the native Proof-of-Stake bridge only. It does not apply to the Plasma bridge or Polygon zkEVM.
Practical verification: send a small test amount first and confirm the full round trip on both block explorers before moving larger balances.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.