Skip to Content
wstGBP is live on Ethereum mainnet. All addresses in these docs are verifiable on-chain.
Bridges & Portals

Bridges & Portals

wstGBP bridges to L2s and sidechains using each chain’s own canonical bridge. Every L2 balance is a canonical-bridge representation of the L1 token rather than an OFT, xERC20, or omnichain deployment. That means five different architectures: the OP Stack Standard Bridge (Base, OP Mainnet, Unichain, Ink, Celo, MegaETH), the Arbitrum Nitro gateway (Arbitrum One, Robinhood Chain), the Polygon PoS bridge, the Gnosis OmniBridge, and the zkSync Elastic Network shared bridge (zkSync Era). The L1 token is always the source of truth.

Every address below is verifiable on-chain; confirm on a block explorer before bridging. For Nitro chains, zkSync Era, Polygon exit, and Gnosis exit, the official bridge UI is strongly preferred over hand-rolled calls (gas params and withdrawal proofs are error-prone).

L1 token on Ethereum mainnet (chainId 1)

NameSymbolDecimalsAddress
Wren Staked tGBPwstGBP180x57C3571f10767E49C9d7b60feb6c67804783B7aE

Live deployments

ChainChain IDwstGBP (L2)Bridge UIStatus
Base84530xEa4Fcd4dE37eC038947a6834751E71Bb8FE68fffbridge.base.org , Superbridge Live
OP Mainnet100x5355e007F4875c99e571818b28C9CC9f231D0269app.optimism.io , Superbridge Live
Unichain1300x8eDe8Ab36BFED06ed6EC491a4E3ba8813C8A21a1Superbridge Live
Ink570730x8eDe8Ab36BFED06ed6EC491a4E3ba8813C8A21a1Superbridge Live
Celo422200xbAa2F11995aDe2fAB5323fb5884Cd7331CBE575dSuperbridge Live
MegaETH (Frontier)43260x543b44aCf892e190b574780ea5f228f59d26B23crabbithole.megaeth.com/bridge Live
Arbitrum One421610x2c8CBe32da6feAECcF99eCeE2900556a17a529EDportal.arbitrum.io/bridge Live
Robinhood Chain46630x4cE63b5E213337aDF891c2819d0246b15F44BAcaportal.arbitrum.io/bridge Live
Polygon PoS1370x3319d8A0A7f742AAC63D586E7bb846a9ee8218AbPolygon Portal Live
Gnosis Chain1000x68115fFA8bF088289B80B1e17cD486B5752492aAbridge.gnosischain.com Live
zkSync Era3240xa84340Bee7aAA2E9aB0Da89024a4c13144Eaf41dportal.zksync.io Live

Unichain and Ink share the same L2 token address (0x8eDe8A...21a1): both chains run the same factory version, so the identical CREATE2 inputs produce the identical address. Same address, different chains, so always check the chainId.

“Portal” means three unrelated things in the bridge ecosystem: the OptimismPortal, the OP Stack L1 contract beneath the Standard Bridge (users interact with the L1StandardBridge, not the portal); the Polygon Portal, the bridge UI at portal.polygon.technology , which is not a contract; and FxPortal, Polygon’s permissionless mapping, which is not used here (wstGBP uses the native PoS mapping).

RPC endpoints & explorers

Public, keyless RPC endpoints and block explorers for every chain wstGBP is deployed on. Chains marked (Blockscout) have no Etherscan-family explorer.

ChainChain IDRPCExplorer(s)
Ethereum (L1)1https://ethereum-rpc.publicnode.cometherscan.io 
Base8453https://mainnet.base.orgbasescan.org 
OP Mainnet10https://mainnet.optimism.iooptimistic.etherscan.io 
Unichain130https://mainnet.unichain.orguniscan.xyz , explorer.unichain.org  (Blockscout)
Ink57073https://rpc-gel.inkonchain.com (alt https://rpc-qnd.inkonchain.com)explorer.inkonchain.com  (Blockscout)
Celo42220https://forno.celo.orgceloscan.io , explorer.celo.org  (Blockscout)
MegaETH (Frontier)4326https://mainnet.megaeth.com/rpcmegaeth.blockscout.com  (Blockscout)
Arbitrum One42161https://arb1.arbitrum.io/rpcarbiscan.io 
Robinhood Chain4663https://rpc.mainnet.chain.robinhood.comrobinhoodchain.blockscout.com  (Blockscout)
Polygon PoS137https://polygon-bor-rpc.publicnode.compolygonscan.com , OKLink 
Gnosis Chain100https://rpc.gnosischain.comgnosisscan.io 
zkSync Era324https://mainnet.era.zksync.ioera.zksync.network , explorer.zksync.io  (native)

OP Stack chains

Six deployments (Base, OP Mainnet, Unichain, Ink, Celo, MegaETH) share the OP Stack Standard Bridge architecture. The L2 predeploys are identical on every chain; only the L1 contract set differs.

  • Deposit (L1 to L2): approve the chain’s L1StandardBridge for wstGBP, then depositERC20(l1Token, l2Token, amount, minGasLimit = 200000, extraData = 0x). Use depositERC20To(..., to, ...) from a contract/Safe or to a different recipient (depositERC20 has an onlyEOA guard). Not payable; you pay L1 gas only. Arrives in minutes.
  • Withdraw (L2 to L1): bridgeERC20To on the L2 bridge 0x4200...0010, then finalize on L1 after the challenge period.

L1 bridge contracts per chain

ChainchainIdL1StandardBridgeOptimismPortalL1CrossDomainMessenger
Base84530x3154Cf16ccdb4C6d922629664174b904d80F2C350x49048044D57e1C92A77f79988d21Fa8fAF74E97e0x866E82a600A1414e583f7F13623F1aC5d58b0Afa
OP Mainnet100x99C9fc46f92E8a1c0deC1b1747d010903E884bE10xbEb5Fc579115071764c7423A4f12eDde41f106Ed0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1
Unichain1300x81014F44b0a345033bB2b3B21C7a1A308B35fEeA0x0bd48f6B86a26D3a217d0Fa6FfE2B491B956A7a20x9A3D64E386C18Cb1d6d5179a9596A4B5736e98A6
Ink570730x88FF1e5b602916615391F55854588EFcBB7663f00x5d66C1782664115999C47c9fA5cd031f495D3e4F0x69d3Cf86B2Bf1a9e99875B7e2D9B6a84426c171f
Celo422200x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe0xc5c5D157928BDBD2ACf6d0777626b6C75a9EAEDC0x1AC1181fc4e4F877963680587AEAa2C90D7EbB95
MegaETH “Frontier”43260x0CA3A2FBC3D770b578223FBB6b062fa875a2eE750x7f82f57F0Dd546519324392e408b01fcC7D709e80x6C7198250087B29A8040eC63903Bc130f4831Cc9

Users interact with the L1StandardBridge; the OptimismPortal and L1CrossDomainMessenger come into play when proving and finalizing withdrawals.

Shared L2 predeploys

ContractAddress (every OP Stack L2)
L2StandardBridge0x4200000000000000000000000000000000000010
L2CrossDomainMessenger0x4200000000000000000000000000000000000007
L2ToL1MessagePasser0x4200000000000000000000000000000000000016
OptimismMintableERC20Factory0x4200000000000000000000000000000000000012

All six chains mint their wstGBP through the factory predeploy 0x4200...0012, except Base, which runs its own factory 0xF10122D428B4bc8A9d050D06a2037259b4c4B83B (v1.9.0). Base’s tooling and bridge UI expect tokens from that factory, which is why Base’s wstGBP address differs from the predeploy-factory chains.

Celo is a custom gas-token OP Stack chain: native gas is CELO (L1 token 0x057898f3C43F129a17517B9056D23851F124b19f), not ETH. wstGBP bridges normally, but you need CELO on the L2 to pay gas: withdraw CELO from an exchange directly to Celo, or bridge the CELO asset on Superbridge . Any other bridged asset arrives as a plain ERC-20 and cannot pay gas.

Arbitrum Nitro chains

Two deployments use the Arbitrum Nitro canonical ERC-20 gateway. In both cases the L2 wstGBP is a StandardArbERC20, auto-deployed by the gateway on first deposit (no factory call, no predeploy), and l1Address() on the L2 token resolves back to L1 wstGBP.

The deposit flow is the same on both: approve the chain’s L1ERC20Gateway (not the router) for wstGBP, then L1GatewayRouter.outboundTransferCustomRefund(...), a payable call that needs L2 gas params (maxGas, gasPriceBid, maxSubmissionCost). Prefer the portal.arbitrum.io/bridge  UI or the Arbitrum SDK.

Arbitrum One (chainId 42161)

L2 wstGBP: 0x2c8CBe32da6feAECcF99eCeE2900556a17a529ED

Contract (Ethereum L1)Address
L1GatewayRouter0x72Ce9c846789fdB6fC1f34aC4AD25Dd9ef7031ef
L1ERC20Gateway (router’s defaultGateway)0xa3A7B6F88361F48403514059F1F16C8E78d60EeC

Robinhood Chain (chainId 4663)

Robinhood Chain is an Arbitrum Orbit L2 that settles directly to Ethereum (Ethereum blobs for DA, ETH as native gas), not an L3 on Arbitrum One. It uses the same Nitro gateway architecture as Arbitrum One but with its own gateway/router set, so bridging runs directly between Ethereum L1 and Robinhood Chain.

Contract (Ethereum L1)Address
L1GatewayRouter0x6a2E3a1e16FC29f27Ce61429746D558d656975bB
L1ERC20Gateway (locks wstGBP on deposit)0x85001CC4867C5e1C22dA4B79BB8852B9e2a06da0
Contract (Robinhood Chain, 4663)Address
wstGBP bridged token (StandardArbERC20)0x4cE63b5E213337aDF891c2819d0246b15F44BAca
L2ERC20Gateway (mints/burns; the token’s l2Gateway())0xfd9b17206278C16DdaacF6AC8f05dBf97EdCb31e
L2GatewayRouter0x1E324B9316138CA9a73F960213621AD1aaf01B89

Polygon PoS bridge (chainId 137)

L2 wstGBP 0x3319d8A0A7f742AAC63D586E7bb846a9ee8218Ab is a native PoS-bridge child ERC-20 (the L1 ERC20Predicate locks, the L2 ChildChainManager mints/burns; backed 1:1).

Contract (Ethereum L1)Address
RootChainManager (proxy)0xA0c68C638235ee32657e8f720a23ceC1bFc77C77
ERC20Predicate (locks wstGBP)0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf
Contract (Polygon, 137)Address
wstGBP child token0x3319d8A0A7f742AAC63D586E7bb846a9ee8218Ab
ChildChainManager (proxy; holds DEPOSITOR_ROLE)0xA6FA4fB5f76172d178d61B04b0ecd319C5d1C0aa

Deposit (L1 to L2): approve the ERC20Predicate, then RootChainManager.depositFor(user, wstGBP, abi.encode(amount)). Arrives in about 20-30 minutes via state sync. Withdraw (L2 to L1): withdraw(amount) on the child token to burn, wait for the next Heimdall checkpoint, then RootChainManager.exit(burnProof) on L1; the Portal UI assembles the proof.

Gnosis Chain OmniBridge / AMB (chainId 100)

L2 wstGBP 0x68115fFA8bF088289B80B1e17cD486B5752492aA is an ERC677 PermittableToken, auto-deployed by the Home mediator on first deposit (backed 1:1 by tokens locked on L1).

Contract (Ethereum L1)Address
OmniBridge Foreign mediator (locks wstGBP)0x88ad09518695c6c3712AC10a214bE5109a655671
Contract (Gnosis, 100)Address
wstGBP bridged token (ERC677)0x68115fFA8bF088289B80B1e17cD486B5752492aA
OmniBridge Home mediator (mints/burns)0xf6A78083ca3e2a662D6dd1703c939c8aCE2e268d

Deposit (L1 to Gnosis): approve the Foreign mediator, then relayTokens(wstGBP, receiver, amount). Arrives in about 5-15 minutes. Withdraw (Gnosis to L1): relayTokens(...) on the Home mediator (or ERC677 transferAndCall(homeMediator, amount, "")) to burn, wait for validator signatures, then submit the signed claim on L1. Gnosis-to-Ethereum messages are not auto-relayed, so the bridge UI (or you) must pay the L1 claim.

zkSync Era shared bridge (chainId 324)

zkSync Era is a ZK (validity) rollup on the ZK Stack. Its canonical bridge is the Elastic Network shared-bridge system: on L1, deposits enter through Bridgehub, which routes them via L1AssetRouter into L1NativeTokenVault; the L2AssetRouter / L2NativeTokenVault predeploys mirror them on L2. L2 wstGBP 0xa84340Bee7aAA2E9aB0Da89024a4c13144Eaf41d is a BridgedStandardERC20 beacon proxy, auto-deployed by the L2NativeTokenVault on first deposit. The L1 vault locks wstGBP and the L2 vault mints/burns, so L2 supply is backed 1:1 by tokens locked in the L1 vault. originToken() on the L2 token resolves back to L1 wstGBP.

Contract (Ethereum L1)Address
Bridgehub (proxy; deposit entrypoint)0x303a465B659cBB0ab36eE643eA362c509EEb5213
L1AssetRouter0x8829AD80E425C646DAB305381ff105169FeEcE56
L1NativeTokenVault (locks wstGBP)0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6
L1Nullifier (finalizes withdrawals)0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB
Contract (zkSync Era, 324)Address
wstGBP bridged token (BridgedStandardERC20 beacon proxy)0xa84340Bee7aAA2E9aB0Da89024a4c13144Eaf41d
L2AssetRouter (predeploy)0x0000000000000000000000000000000000010003
L2NativeTokenVault (predeploy; mints/burns)0x0000000000000000000000000000000000010004

Deposit (L1 to Era): Bridgehub.requestL2TransactionTwoBridges(...) with the L1AssetRouter as the second bridge, a payable call that needs L2 gas params (l2GasLimit, l2GasPerPubdataByteLimit) plus an ERC-20 approval for the vault. The Portal UI  assembles the call and the approval. Arrives in a few minutes. Withdraw (Era to L1): initiate on L2 (the Portal calls the L2AssetRouter to burn), wait for the batch to be proven and executed on L1 (Era applies an execution delay, about 24 hours in practice), then finalize on L1 via the L1Nullifier/L1AssetRouter. The Portal UI assembles and submits the L1 claim, so prefer the UI for the exit.

Last updated on