> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whitechain.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Portal bridge

> Move USDC, USDT, WBT, and ETH between Ethereum, Tron, and Whitechain in minutes with the Portal, Whitechain's centralized bridge.

<Note>
  The Portal contracts, routes, and app are on Testnet (Ethereum Sepolia, Tron Nile, and Whitechain Sepolia). The app runs at [bridge.testnet.whitechain.io](https://bridge.testnet.whitechain.io). Mainnet routes and addresses are published at Mainnet launch.
</Note>

## Overview

The Portal is a centralized bridge operated by Whitechain. It moves a fixed set of assets, USDC, USDT, WBT, and ETH, between Ethereum, Tron, and Whitechain in minutes, and it is the only route that connects Tron to Whitechain. The bridge liquidity sits in Portal contracts that Whitechain administers, and a Whitechain-operated relayer signs each transfer, so you trade self-custody for speed.

This is the opposite tradeoff from the [OP Stack canonical bridge](/build/bridge/bridge-assets), which is trust-minimized but takes minimum 7 days to withdraw to Ethereum on mainnet. Use the Portal when you need a fast transfer, a Tron route, or a token the canonical bridge does not support. Use the canonical bridge when you want a trustless path and can wait out the dispute period.

## Portal compared to the canonical bridge

| Dimension | Portal | Canonical bridge |
| - | - | - |
| Trust model | Centralized: funds in transit sit in Portal contracts that Whitechain controls | Trustless: secured by OP Stack fault proofs |
| Speed | Minutes both ways | \~2 minutes to deposit; minimum 7 days to withdraw on mainnet |
| Networks | Ethereum, Tron, Whitechain | Ethereum, Whitechain |
| Assets | Fixed list: USDC, USDT, WBT, ETH | Any compatible ERC-20, plus L1-origin NFTs |
| Fees | WBT charged to cover Ethereum gas on Whitechain to Ethereum transfers; no bridging fee | Gas only |
| Recipient | Any address | Connected wallet |

For the trustless path and its withdrawal steps, see [OP Stack canonical bridge](/build/bridge/bridge-assets).

## Supported routes and assets

The Portal connects Ethereum and Tron to Whitechain in both directions. There is no direct Ethereum to Tron route; to move between them, bridge through Whitechain in two steps.

Tokens are a fixed list configured per route. A token deposited to Whitechain arrives as its bridged representation: USDC becomes USDC.e and USDT becomes USDT.e. WBT keeps its symbol and is the native gas token on Whitechain. ETH also keeps its symbol, and it arrives as a pegged ERC-20 minted against WETH locked on Ethereum.

| Route | Assets | Daily limit (testnet) |
| - | - | - |
| Ethereum to and from Whitechain | USDC (arrives as USDC.e), WBT, ETH | USDC 10,000 per day; WBT 1,000 per day; ETH TBD, published once the limit is confirmed |
| Tron to and from Whitechain | USDT (arrives as USDT.e), WBT | USDT 10,000 per day; WBT 1,000 per day |

Daily limits are per token and apply to the current testnet deployment. Values may change, and mainnet limits are set at launch.

ETH runs on the Ethereum leg only. There is no ETH route between Tron and Whitechain, where the assets stay USDT and WBT.

On the Ethereum side the route holds WETH, and the app wraps your native ETH for you. You supply ETH, so you never have to obtain WETH yourself. That is why the asset picker says ETH while the transaction details name WETH.

On Whitechain, ETH is a bridged ERC-20 with 18 decimals whose `remoteToken` is the Ethereum WETH contract. It is not the native asset of the network and it cannot pay gas. Gas on Whitechain is always WBT.

## How a transfer works

For the same flow screen by screen in the app, see [Use the Portal bridge](/build/bridge/use-the-portal).

1. Submit the transfer on the source network and sign one transaction. You can set a recipient address different from your own.
2. Wait for the source network to confirm. Confirmation takes about 12 minutes on Ethereum and about 1 minute on Whitechain.
3. The relayer checks that the destination network holds enough liquidity for the token. If liquidity is short, the transfer is rejected and you can retry later.
4. The relayer releases the funds on the destination network. A Whitechain to Ethereum transfer is executed by the Portal, which pays the Ethereum gas for you.

## Transaction statuses

The app tracks each transfer through three stages, then marks it complete.

| Status | Meaning |
| - | - |
| Submitting | The transaction is being sent on the source network, and your wallet is waiting for your confirmation. |
| Confirming | The source network is confirming the transaction. |
| Sending | The Portal has seen the deposit and is releasing the funds on the destination network. |
| Completed | The funds have been sent to the destination network. |

A transfer that runs past its expected time is labelled as delayed rather than failed. For the tracker screen, see [Use the Portal bridge](/build/bridge/use-the-portal#track-the-transfer).

## Timing

| Network | Confirmation time |
| - | - |
| Ethereum | \~12 minutes |
| Whitechain | \~1 minute |

A transfer completes within minutes once the source network confirms. This is the reason to choose the Portal over the canonical bridge for a fast exit to Ethereum.

## Fees and limits

The Portal charges no bridging fee today. You pay the source-network gas for your own transaction.

For a Whitechain to Ethereum transfer, the Portal pays the Ethereum gas and recovers it by charging you the equivalent in WBT. It reads the current Ethereum gas price, prices a typical token transfer, and converts that cost to WBT using WhiteBIT market rates.

Each token has a daily limit, listed in [Supported routes and assets](#supported-routes-and-assets). Transfers are also bounded by available liquidity on the destination network: a transfer larger than the pooled liquidity is rejected, and you can retry once liquidity is topped up.

## Trust model

The Portal is centralized. The liquidity sits in the Bridge contract on each network, a Whitechain-operated backend signs every transfer with a dedicated key, and each Bridge contract only accepts transfers authorized by that key. No balance moves into a Whitechain wallet, so what makes the Portal custodial is control rather than location: Whitechain administers those contracts and authorizes every release. This is what makes transfers fast, and it is the tradeoff against the canonical bridge, where a dispute game rather than an operator decides whether a withdrawal completes.

During maintenance the Portal can be paused. When it is paused, transfers stop until it resumes.

## Contract addresses

Addresses below are for the current testnet deployment: Ethereum Sepolia, Tron Nile, and Whitechain Sepolia (chain ID 1874). Mainnet addresses are published at launch. Verify every address against this page before sending.

### Bridge and Mapper contracts

The Bridge contract executes transfers. The Mapper defines which token pairs and directions are allowed. Both are proxy contracts.

| Contract | Network | Address |
| - | - | - |
| Bridge | Ethereum Sepolia | [`0xFFf55679D856F8AA2F9CAe81faE03AB1959D988f`](https://sepolia.etherscan.io/address/0xFFf55679D856F8AA2F9CAe81faE03AB1959D988f) |
| Mapper | Ethereum Sepolia | [`0x5a2AaeF4f2273F7034b3c1338F7AC3e74E19a266`](https://sepolia.etherscan.io/address/0x5a2AaeF4f2273F7034b3c1338F7AC3e74E19a266) |
| Bridge | Whitechain Sepolia | [`0x8F4D5bC9379beF9c209C895a1d6e7c26F64fE14F`](https://explorer.testnet.whitechain.io/address/0x8F4D5bC9379beF9c209C895a1d6e7c26F64fE14F) |
| Mapper | Whitechain Sepolia | [`0x8f3FF368cd820910cB1A62acee5548BC354599Bf`](https://explorer.testnet.whitechain.io/address/0x8f3FF368cd820910cB1A62acee5548BC354599Bf) |
| Bridge | Tron Nile | [`TVAqK9AC3oCeCBLzJCheXfLjtGs1Hxjj75`](https://nile.tronscan.org/#/address/TVAqK9AC3oCeCBLzJCheXfLjtGs1Hxjj75) |
| Mapper | Tron Nile | [`TD1YEQs8mooDV2KX5TWEAKyAP8xcCD81wd`](https://nile.tronscan.org/#/address/TD1YEQs8mooDV2KX5TWEAKyAP8xcCD81wd) |

### Token addresses

| Token | Network | Address |
| - | - | - |
| USDC | Ethereum Sepolia | [`0x91B2E38C9B9acf8eF2B2C549BF7f86Ff5B0108fD`](https://sepolia.etherscan.io/address/0x91B2E38C9B9acf8eF2B2C549BF7f86Ff5B0108fD) |
| WBT | Ethereum Sepolia | [`0x3C6bF6821d5CC721F6BF41490b0D2A6963D2B031`](https://sepolia.etherscan.io/address/0x3C6bF6821d5CC721F6BF41490b0D2A6963D2B031) |
| WETH | Ethereum Sepolia | [`0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9`](https://sepolia.etherscan.io/address/0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9) |
| USDT | Tron Nile | [`TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf`](https://nile.tronscan.org/#/address/TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf) |
| WBT | Tron Nile | [`TGa8yeUzkCmuajSedYoPiA9bA8YBnvXvEL`](https://nile.tronscan.org/#/address/TGa8yeUzkCmuajSedYoPiA9bA8YBnvXvEL) |
| WWBT | Whitechain Sepolia | [`0x4200000000000000000000000000000000000006`](https://explorer.testnet.whitechain.io/address/0x4200000000000000000000000000000000000006) |
| USDC.e | Whitechain Sepolia | [`0x5Eb541ba8A2DD841aF7864c3389162a23ddA8401`](https://explorer.testnet.whitechain.io/address/0x5Eb541ba8A2DD841aF7864c3389162a23ddA8401) |
| USDT.e | Whitechain Sepolia | [`0xaa7962d073935D387e8d442DA1D7149C81388f46`](https://explorer.testnet.whitechain.io/address/0xaa7962d073935D387e8d442DA1D7149C81388f46) |
| ETH | Whitechain Sepolia | [`0x1c7E0793c69838D1da9D5b98B5893866B977bA67`](https://explorer.testnet.whitechain.io/address/0x1c7E0793c69838D1da9D5b98B5893866B977bA67) |

Every address above is listed under the symbol its own contract reports. On Whitechain Sepolia the WBT routes appear as `WWBT`, Wrapped WhiteBIT Coin, the ERC-20 form of the gas token with 18 decimals, because native WBT has no contract address of its own. A Portal transfer into Whitechain still arrives as a native WBT balance. The same contract is listed as `WWBT` in the [Whitechain token list](/build/block-explorer/token-list).

## When to use the Portal

| Scenario | Use |
| - | - |
| Fast exit from Whitechain to Ethereum | Portal |
| Move assets between Tron and Whitechain | Portal (the only route) |
| Move ETH between Ethereum and Whitechain | Portal (the only route, because the canonical bridge cannot carry ETH) |
| Bridge a token on the Portal's fixed list | Portal |
| Want a trustless, self-custody path | [Canonical bridge](/build/bridge/bridge-assets) |
| Bridge an arbitrary ERC-20 that is not on the Portal list | [Canonical bridge](/build/bridge/bridge-assets) |
| Large amount where trust-minimization matters more than speed | [Canonical bridge](/build/bridge/bridge-assets) |

## Disclaimer

* Test with a small amount before bridging large balances.
* Verify every contract address against this page or the official Whitechain Explorer before submitting a transaction.
* The Portal is centralized: funds in transit sit in contracts the operator controls, not in a trustless protocol.

## Related

* [Use the Portal bridge](/build/bridge/use-the-portal)
* [OP Stack canonical bridge](/build/bridge/bridge-assets)
* [Faucet](/learn/get-started/get-testnet-wbt)
* [Network reference](/learn/network/reference)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.