Cryptospecting

FACTS // VERIFIED 2026-10-19

PulseChain bridge: fees, trust model and admin keys

Short answer

The official bridge at bridge.pulsechain.com locks tokens on one chain and mints or releases them on the other once 5 of its 8 bridge validators have signed. On 2026-10-17 it charged 0.30 % from PulseChain to Ethereum and 0 % from Ethereum to PulseChain. Besides the validators, single-key admin addresses can upgrade the contracts, redirect the mediators and change the validator set; on 2026-10-17 every such setting pointed to the bridge’s own contracts.

Prefer to see it move first? How the bridge works animates both directions.

What kind of bridge is it?

It is the OmniBridge + Arbitrary Message Bridge (AMB) design originally written by POA Network and Gnosis, deployed for PulseChain with its own validators and its own admin keys. The code still carries traces of that origin, such as special handling for Gnosis’s STAKE token. It is a lock-and-mint bridge with validator signatures — not a light-client or zero-knowledge bridge. The code calls PulseChain the “home” side and Ethereum the “foreign” side.

Which contracts make up the bridge?

Role Ethereum (foreign) PulseChain (home)
Token mediator — ERC-20 tokens, ETH/WETH 0x1715a3E4A142d8b698131108995174F37aEBA10D 0x4fD0aaa7506f3d9cB8274bdB946Ec42A1b8751Ef
PLS mediator — PLS ⇄ WPLS on Ethereum 0xe20E337DB2a00b1C37139c873B92a0AAd3F468bF 0x0e18d0d556b652794EF12Bf68B2dC857EF5f3996
Message layer (AMB) 0xd0764FAe29E0a6a96fF685f71CfC685456D5636c 0x6ef79FD6f9f840264332884240539Ed7A2dA8b2b
Validator list 0x2fa878ab3f87cc1c9737fc071108f904c0b0c95d 0x0fd542ff87cd22db5402c92decb13d2bdfb995b7
WPLS on Ethereum 0xA882606494D86804B5514E07e6Bd2D6a6eE6d68A —

The mediator and AMB addresses come from the official bridge build (pulsechain-bridge-server); the validator contracts are the ones each AMB reports in validatorContract(). Sources are verified on PulseScan and on Sourcify. All eight mediator, AMB and validator contracts are proxies — they hold the funds and settings, while the logic sits in a separate implementation contract that can be swapped (see who can change what). WPLS on Ethereum is minted and burned only by the Ethereum-side PLS mediator, which is its owner(). The bridge build also lists an older Ethereum-side WPLS, 0x97Ac4a2439A47c07ad535bb1188c989dae755341.

Proxy Implementation on 2026-10-17
Ethereum token mediator 0xb7df1e00ae030e966e635ede273625240546b873 (ForeignOmnibridge)
Ethereum PLS mediator 0xb825fd1e322061aac2ac8b3cde4ce18b93fae276 (ForeignOmnibridge)
Ethereum AMB 0xe98699957d3504acd57fff861e4b77b57eb02467 (ForeignAMB)
Ethereum validator list 0x95b303987a60c71504d99aa1b13b4da07b0790ab (BridgeValidators)
PulseChain token mediator 0xe64b29deb76616ff5a39e48ea33352dff62a72e4 (HomeOmnibridge)
PulseChain PLS mediator 0xe38a267501c29347b4b430e70e5b355fc1170faa (HomeOmnibridge)
PulseChain AMB 0xd346c53c659d9d1dae7a915dd2e6bfeab5cb50b8 (HomeAMB)
PulseChain validator list 0x708ca176559a8aa87badcad8bc6a72539d0e3cbb (BridgeValidators, same bytecode as the Ethereum one)

Two traps from the fork, explained on How PulseChain works: 0x1715a3E4A142d8b698131108995174F37aEBA10D is the bridge’s token mediator on Ethereum but the PulseX v1 factory on PulseChain, and 0x2fa878ab3f87cc1c9737fc071108f904c0b0c95d is the bridge’s validator list on Ethereum but the INC token on PulseChain.

How does a transfer from Ethereum to PulseChain work?

  1. You send the token to the Ethereum-side mediator (the bridge interface does this for you). The mediator locks it, checks the per-token limits and hands a message to the Ethereum AMB.
  2. The bridge validators watch Ethereum and wait 65 block confirmations. Each of them then confirms the message on PulseChain; once the number of distinct confirmations reaches the required count (5), the message is executed.
  3. The PulseChain-side mediator deducts the Ethereum → PulseChain fee, if one is set, and mints the bridged token to your address. The first time a token crosses, the mediator creates its PulseChain contract, named “… from Ethereum”.

How does a transfer back to Ethereum work?

  1. You send the bridged token to the PulseChain-side mediator. It is burned (or, for PulseChain-native assets such as PLS, locked), and the PulseChain → Ethereum fee is taken if one is set.
  2. After 65 PulseChain block confirmations, each validator signs the message on PulseChain; when enough signatures are collected, the contract publishes them.
  3. Someone — normally you, through the bridge interface, paying Ethereum gas — submits the message with the signatures to the Ethereum AMB.
  4. The Ethereum AMB checks that at least the required number of distinct current validators signed, with no duplicates. Only then does the Ethereum-side mediator release the locked tokens, within its daily execution limits.

What does a transfer look like in practice?

To PulseChain: open bridge.pulsechain.com from a bookmark and connect your wallet on Ethereum — you need ETH for Ethereum gas. Pick the token and amount; for an ERC-20 token your wallet usually asks for an approval transaction before the transfer itself. Then wait: 65 Ethereum blocks take about 13 minutes at Ethereum’s 12-second slots, plus the time the validators need. The tokens arrive as “… from Ethereum”; add them to your wallet by the addresses listed on System copies vs bridged tokens.

Back to Ethereum: you need PLS for gas on PulseChain and ETH for the last step. After the transfer on PulseChain and 65 PulseChain blocks (about 11 minutes at 10-second slots), the validators sign; the interface then asks you to send the claim transaction on Ethereum. Until that transaction is made, the tokens are not released. The 0.30 % fee is taken on the PulseChain side.

What does the bridge charge?

Mediator and fee manager Tokens checked PulseChain → Ethereum Ethereum → PulseChain
Token mediator, fee manager 0xba86ca0aeca30247f9e2fd8736879997bcd01dc4 Default (any token without its own setting) 0.30 % 0 %
same WETH, USDC, DAI, USDT and HEX from Ethereum 0.30 % 0 %
PLS mediator, fee manager 0x91fd47afcd18b1cc574e7a4bc9997beab11e6911 Default and WPLS 0.30 % 0 %

Read with the fee managers’ getFee() and calculateFee() at PulseChain block 27,819,014 (2026-10-17 08:04:35 UTC). In other words: bringing tokens to PulseChain cost no bridge fee, taking them back to Ethereum cost 0.30 % of the amount, and gas on both chains comes on top. The fees go to eight reward addresses, which are not the validators’ signing keys. Fees are mutable settings — the code accepts any value below 100 % — and the most recent transactions of the PulseChain-side owner were fee settings on 2023-12-13 and 2024-03-10; re-check before a large transfer.

Who can change what?

Power Held by What the code allows Setting read on 2026-10-17, unchanged on 2026-10-19
Approve cross-chain messages 8 bridge validators A message executes only with enough signatures from distinct current validators; each AMB waits 65 block confirmations on its own chain 5 of 8 required on both chains; 65 confirmations on both
Change the validator set and the threshold owner of each validator contract — one key per chain addValidator, removeValidator, setRequiredSignatures 8 validators, 5 required, on both chains
Redirect a mediator owner of each mediator — one key per chain setBridgeContract and setMediatorContractOnOtherSide: the mediator then accepts release and mint instructions from whatever message contract and counterpart they name, with no validator involved All four mediators point to the official AMBs and to each other
Move locked tokens into an interest module owner of the Ethereum token mediator initializeInterest names an external contract per token; after that anyone can call invest(), which moves the locked balance above a minimum into it No module set for USDC, DAI, USDT, WETH, HEX or WBTC
Change limits, fees and gas settings owner of the mediators and AMBs Daily and per-transaction limits; fees below 100 %; gas price, block confirmations, maximum gas Limits shown below
Replace the contract logic upgradeabilityOwner of each proxy An upgrade can change any rule, in any of the eight contracts The PulseChain-side token mediator’s upgrade key has never been used for an upgrade
Recover tokens upgradeabilityOwner claimTokens only for tokens never registered with the bridge and for native coins; fixMediatorBalance bridges the part of a registered token’s balance that arrived without a bridge transfer to a chosen receiver; claimTokensFromTokenContract withdraws what is stuck inside a bridged token contract —
Contract Chain owner() upgradeabilityOwner()
Token mediator and PLS mediator PulseChain 0x4792865c793a2Db4DEbDB30fCb8E38C45B09e7dF 0xF3BEC23E2f9F9a6ED63191e9dB5EAdDBF97555C9
AMB PulseChain 0x415f4919f96c1843af730d8293e02b42a160d838 0x75225bd35a4d2d897b6c5044e2cb6e9840da32e9
Validator list PulseChain 0x6abe2f53bf2a6abaae791055ee0238dc919f4165 0x75225bd35a4d2d897b6c5044e2cb6e9840da32e9
Token mediator and PLS mediator Ethereum 0x610094ab29d1bf683719d2ce3495d8635a47bfc6 0x13a9594a2696d3c35f9d6e4be6b332f699c57801
AMB Ethereum 0x0fb17adb94627eea37bb7ef12f85ab4590e3805f 0xdf5d165a7eb95d26355c56d53799b7da1240e585
Validator list Ethereum 0x3ea02ef8a3956f69d23b5b30327e0f5e352e513f 0xdf5d165a7eb95d26355c56d53799b7da1240e585

Read with eth_call on 2026-10-17 around 14:00 UTC (PulseChain blocks 27,821,033–27,821,051, Ethereum block 26,212,716) and again on 2026-10-19 around 12:20 UTC (PulseChain block 27,837,201, Ethereum block 26,226,567), with the same results. All ten distinct role holders are plain addresses: eth_getCode returns no code, so each is a single private key rather than an on-chain multisig or timelock. Whether those keys are protected off-chain — hardware wallets, multi-party computation — cannot be seen from the chain. The PulseChain-side upgrade key of the token mediator has never sent a transaction (nonce 0 at PulseChain block 27,837,201, 2026-10-19); its only transaction is an incoming one on 2023-05-11. The validator-list functions were read from the verified BridgeValidators source on Sourcify, where all three are owner-only; the PulseChain implementation has byte-identical code.

How much do the daily limits cap?

Token (Ethereum original) Locked in the Ethereum token mediator Daily limit, each direction Per-transaction limit
USDC 11,892,903.50698 1,000,000,000,000 500,000,000,000
DAI 10,889,338.663935987308937777 1,000,000,000,000 500,000,000,000
USDT 4,157,320.065819 1,000,000,000,000 500,000,000,000
WETH 3,939.980193929388965155 1,000,000,000,000 500,000,000,000
HEX 11,634,493,814.82845606 1,000,000,000,000 500,000,000,000
WBTC 14.68953236 1,000,000,000,000 500,000,000,000

Amounts in whole tokens, read at Ethereum block 26,226,567 (2026-10-19) with mediatorBalance(), dailyLimit(), executionDailyLimit(), maxPerTx() and executionMaxPerTx(). Every limit is a trillion units per day — far above what the bridge holds for each token — so in practice the limits do not cap how much could leave in one day. The default limit for newly bridged tokens is the same on both sides.

What does this mean for my tokens?

  • Two kinds of trust. Tokens locked on Ethereum stay locked as long as fewer than 5 of the 8 validator keys are compromised and none of the single-key admin addresses above is misused or stolen. Three kinds of admin role can each bypass the validators on their own: a mediator owner by redirecting the mediator, a validator-list owner by replacing validators or lowering the threshold, an upgrade owner by replacing the code.
  • Today’s settings are the expected ones. On 2026-10-17 the mediators pointed to the official message bridges and to each other, no interest module was set, and both validator lists held 8 validators with 5 required.
  • The limits do not cap outflows at today’s values, as the table above shows.
  • Design versus deployment. Validator signatures are the standard design of the OmniBridge code, also used by the Gnosis Chain bridge. How the admin keys are held — single keys, no on-chain multisig or timelock — is specific to this deployment.

Practical consequences: bridge what you need, check the token address you receive, and use the official domain only — look-alike bridge sites are a common scam (see Security).

Has the bridge been audited?

The upstream code family has public audits:

Audit Scope Date Result
ChainSecurity Upstream OmniBridge (POA Network) 2021-04-27 Code assessment, 20 pages
ChainSecurity Upstream OmniBridge v6.0 2021-09-07 0 critical, 1 high (partially corrected), 3 medium, 13 low
Quantstamp Upstream TokenBridge 5.4.1, including the AMB message layer 2020-11-06 22 issues, 0 high, 0 medium

These reports cover the code PulseChain’s bridge is built on, not the PulseChain deployment or its key management. No audit of the deployment itself was found as of 2026-10-17, and which upstream release it corresponds to is not established (the deployed contracts report interface versions 3.3.0 for the mediator and 6.2.0 for the AMB).

Can I run the bridge interface myself?

Yes. The official pulsechain-bridge-server repository publishes the bridge front end as a Go wrapper with the compiled web app, so you can run the interface locally against the same contracts — useful if the website is unreachable or you want to rule out a tampered copy.

Frequently asked questions

Does the 0.30 % fee apply to every token?

On 2026-10-17 it applied to every token checked — the default setting plus WETH, USDC, DAI, USDT, HEX and WPLS — in the PulseChain → Ethereum direction; the Ethereum → PulseChain direction was 0 % for all of them. Fees are settings the bridge owner can change, so read them again before a large transfer. Gas on both chains comes on top.

Can the bridge's admin keys move locked tokens without the validators?

The code allows it. The owner of a mediator can point it at a different message contract or counterpart, the owner of a validator contract can replace validators or lower the threshold, and an upgrade owner can replace the code. Each of these roles is a single key. On 2026-10-17 none of them had been used that way: the mediators pointed to the official message bridges and to each other, and both validator contracts listed 8 validators with 5 required.

Is a bridged token the same as the token PulseChain copied at the fork?

No. A bridged token (for example “USD Coin from Ethereum”, often called eUSDC) is minted against a token locked on Ethereum and can be sent back. A fork copy (pUSDC) has the same address as on Ethereum but nothing behind it. See System copies vs bridged tokens.

Has the PulseChain bridge been audited?

The upstream OmniBridge and TokenBridge code it is built on was audited by ChainSecurity (April and September 2021) and Quantstamp (November 2020). No audit of the PulseChain deployment itself was found as of 2026-10-17.

Sources // last verified 2026-10-19

  1. T2 · Official Official bridge interface
  2. T1 · Primary pulsechain-bridge-server — self-hostable bridge build, source of the contract addresses
  3. T1 · Primary PulseChain-side token mediator, verified source on PulseScan
  4. T1 · Primary PulseChain-side message bridge (AMB), verified source on PulseScan
  5. T1 · Primary Ethereum-side token mediator, full match on Sourcify (setBridgeContract, interest module, recovery functions)
  6. T1 · Primary Ethereum-side message bridge (AMB), full match on Sourcify
  7. T1 · Primary BridgeValidators implementation, match on Sourcify — owner-only addValidator, removeValidator, setRequiredSignatures
  8. T1 · Primary PulseChain RPC — fees at block 27,819,014; owners, routing, validators at block 27,821,033
  9. T1 · Primary Ethereum RPC — owners, routing, limits at block 26,212,716; re-read and balances at block 26,226,567 (2026-10-19)
  10. T1 · Primary ChainSecurity audit of upstream OmniBridge, 2021-04-27
  11. T2 · Official Gnosis Chain list of upstream bridge audits (OmniBridge v6.0, TokenBridge 5.4.1)

Source tiers are explained in Sources & methodology.