Using PGN
Bridging

Bridging ETH to PGN

In this guide, we will discuss how to bridge ETH to PGN using the PGN mainnet bridge.

⚠️

Warning: Please do not transfer large amounts of ETH to PGN. It is recommended to transfer a small amount of ETH when bridging for the first time.

Also, do not directly transfer WETH or any ERC-20 tokens to the bridge address.

Using the PGN Bridge

Mainnet

Follow these steps to bridge ETH from Ethereum (L1) to PGN mainnet network (L2):

  1. Navigate to the PGN bridge: bridge.publicgoods.network (opens in a new tab)
  2. Connect your wallet.
  3. Make sure the following are set up within the bridge.
    • Set “Asset” to “ETH”
    • Set “From” to “Ethereum”
    • Set “To” to “PGN”
  4. Enter the amount of ETH you’d like to bridge to PGN.
  5. Deposit your tokens to the bridge.
  6. Pay the gas fee.
  7. Wait for the transaction to process.

Although the bridge will offer status updates when the transaction state changes, you might go as much as 30 seconds without an update. This is to be expected depending on the gas amount paid and the settlement speed on the L1.

When bridging to Bedrock chains such as PGN, you may need to increase the gas for the bridge transaction to settle properly. If you are running into transaction errors when trying to bridge, try increasing the gas. More details can be found in the Bedrock documentation (opens in a new tab).

You can review your bridge transactions by navigation to the block explorer (opens in a new tab) and searching for your wallet address. Note that you might need to use your actual wallet address instead of an ENS or custom domain name.

Bridging from PGN to Ethereum

When bridging tokens from PGN to Ethereum, your transaction must go through a seven day challenge period.

This challenge period is important, as it is designed to protect users from fraud. During this period, a user can submit a fault proof to challenge a transaction before it is relayed from the L2 to the L1.

To successfully bridge from PGN to Ethereum, you must follow these instructions:

  1. Submit the transaction using the bridge.
  2. Navigate to the Transactions (opens in a new tab) page. You will eventually see your transaction show up with the status, "Waiting for state root".
  3. Within 30 minutes, your transaction status will change to "Ready to prove." Click the "Prove" button to initiate the challenge window.
  4. The transaction status will change to "In challenge period" and will display how much time is left in the period via the "Time left" column.
  5. Once the challenge period is over, the transaction status will change to "Ready to relay". You will need to click the "Finalize" button to relay the transaction to PGN.

At this point, the transaction should say "Relayed", which means that the tokens have successfully been bridged to Ethereum!

To put this process a different way, please refer to the following table:

StepActionStatusWait time
1Submit the transaction to the bridge.
2Navigate to the Transaction page.Waiting for state root30 minutes
3Click the "Prove" button to initiate the challenge window.Ready to prove
4Wait for the seven day window to closeIn challenge period7 days
5Click the "Finalize" button to relay the transaction to PGN.Ready to relay

Some key details to understand around the timing of a challenge period:

  • The challenge period ends after seven days, regardless of whether or not a fault proof has been submitted.
  • If a fault proof is submitted after the challenge period has ended, the challenge will be dismissed.
  • You can only challenge a transaction that you have personally submitted.
  • You cannot challenge a transaction that has already been withdrawn.

You can learn more by reading the Optimism documentation (opens in a new tab) on the subject.

Testnet

The instructions for testnet are very similar to mainnet. However, you will use the following PGN Sepolia bridge, and bridge from Sepolia to PGN Testnet instead. bridge.sepolia.publicgoods.network (opens in a new tab)

If you need to request testnet Sepolia ETH, you can do so via the following faucets: