Bridging Flow
This section explains how to use the SupraNova Bridge dApp in both directions: bridging ETH from Ethereum to supETH on Supra, and bridging assets from Supra back to Ethereum, with each technical stage explained clearly.
Ethereum to Supra
Connecting Your Wallets
Before initiating a bridge transaction, you must connect two wallets:
| Wallet | Purpose |
|---|---|
| MetaMask (Ethereum) | Send ETH and sign the bridge transaction |
| Supra Wallet (StarKey) | Receive supETH on Supra |
Getting Started:
- Open the SupraNova Bridge dApp.
- Click “Connect Wallet” on the top right corner.
- Approve the MetaMask pop-up to connect your Ethereum wallet.
- Choose your Supra Wallet (StarKey Wallet) or manually enter a recipient address using the “Type Recipient Address” toggle.

- The Supra Wallet is where your minted supETH will arrive after successful bridging. - Make sure the address is correct before proceeding.
Initiating the Bridge Transaction
After wallets are connected, follow these steps.
Under the Bridge tab, select:
- Source Chain: Ethereum
- Destination Chain: Supra
- Token: ETH → supETH
- Enter the amount of ETH you wish to bridge.
Review:
- Estimated bridge time
- Bridge fee breakdown (in ETH and $SUPRA)
Click “Confirm” to proceed.

This action calls the HyperNovaCore smart contract on Ethereum, locking your ETH and emitting a LOGX event signaling a bridge request.
MetaMask Transaction Confirmation
Upon clicking “Confirm”:
- MetaMask prompts you to confirm the transaction.
- Gas fees are shown (normal Ethereum fees apply).
- Approve and confirm the transaction

Event Capture and Proof Generation by Relayer
After the bridge event is emitted, The Event Listener captures the bridge event from the ethereum chain and stores it in a message queue. The Relayer Driver then consumes the event, detects the bridge event from the Ethereum chain.
It generates the following proofs:
- Sync Committee Proof – Block signed by the Sync Committee
- Receipt Proof – Proof that the transaction succeeded
- Ancestry Proof (if the block lacks enough signatures)
If required, Ancestry Proof connects the event’s block to a more recent, heavily signed block.
The technical flow is as follows:
Ethereum Event → Relayer captures → Builds Proof Bundle → Prepares Submission to Supra
Proof Submission and On-Chain Verification
Once proofs are generated:
- The Relayer submits the proof bundle to Supra’s HyperNovaCore verifier smart contract.
- The verifier checks:
- Validity of the block header signatures
- Correctness of transaction existence and execution
- Authenticity of the event data (right source, token, amount, recipient)
If all checks pass, the verifier marks the bridge request as valid.
Token Minting and Fund Receipt
Upon successful verification:
- The Token Bridge Service Contract is triggered.
- Supra Wrapped ETH (supETH) is minted on Supra in a 1:1 ratio to the locked ETH.
- The minted supETH is sent to your connected (or specified) Supra Wallet address.
You can now:
- View transaction history under Explorer > My Transactions.

Transaction Lifecycle Summary (Ethereum to Supra)
| Stage | System Action | User Action |
|---|---|---|
| Wallet Connection | Connect MetaMask and Supra Wallet | Click Connect Wallet |
| Initiate Bridge | Lock ETH on Ethereum | Enter Amount, Confirm |
| Event Emission | Emit bridge request log | Wait |
| Relayer Proofs | Generate Sync, Receipt, Ancestry proofs | Wait |
| Supra Verification | Validate proofs on-chain | Monitor Explorer |
| Token Mint | Mint supETH to recipient wallet | Receive tokens |
During Bridging these are the in-built safeguards:
- Relayer Failure: Another permissionless relayer can submit the proof.
- Committee Key Rotation: Permissionless Committee Updater updates Sync Committee validator keys at every change, which is every ~27 hours.
Supra to Ethereum
Connecting Your Wallets
Before initiating a bridge transaction back to Ethereum, you must connect two wallets:
| Wallet | Purpose |
|---|---|
| Supra Wallet (StarKey) | Send the asset from Supra and sign the bridge-out transaction |
| MetaMask (Ethereum) or any destination wallet | Receive the asset delivered on Ethereum |
Getting Started:
- Open the SupraNova Bridge dApp.
- Click “Connect Wallet” on the top right corner.
- Approve the StarKey pop-up to connect your Supra wallet.
- Choose your Ethereum wallet or manually enter a recipient address using the “Type Recipient Address” toggle.
- The Ethereum wallet is where your asset will arrive after successful bridging.
- Make sure the address is a valid Ethereum address before proceeding. The Supra-side action is final once confirmed.
Initiating the Bridge Transaction
After wallets are connected, follow these steps.
Under the Bridge tab, select:
- Source Chain: Supra
- Destination Chain: Ethereum
- Token: supETH → ETH, or any other supported pair, including $SUPRA
- Enter the amount you wish to bridge back.
Review:
- Estimated bridge time
- Service fee breakdown
Click “Confirm” to proceed.
This action calls send_tokens() on the Token Bridge module on Supra and emits a bridge-out event. The module burns
the balance if the asset is a wrapped FA that originated on Ethereum, or locks it in the Supra-side vault if the asset
is native to Supra, such as $SUPRA.
StarKey Transaction Confirmation
Upon clicking “Confirm”:
- StarKey prompts you to confirm the transaction.
- Gas fees are shown (normal Supra network fees apply).
- Approve and confirm the transaction. Once confirmed, the burn or lock is final.
Event Capture and Proof Generation by Relayer
After the bridge-out event is emitted, the Event Listener captures it from the Supra chain and stores it in a message queue. The Relayer Driver then consumes the event.
It generates the following proofs:
- Move Event – the raw
MessagePostedevent emitted by the bridge-out transaction - Event Merkle Proof – proof that the event was emitted by that transaction
- Transaction Merkle Proof – proof that the transaction executed in the claimed Supra block
- Transactions Inclusion Certificate – the committee’s threshold signature over that block
The technical flow is as follows:
Supra Bridge-Out Event → Relayer captures → Builds Proof Bundle → Prepares Submission to Ethereum
Proof Submission and On-Chain Verification
Once proofs are generated:
- The Relayer submits the proof bundle to Ethereum’s HyperNovaCore verifier smart contract.
- The verifier checks:
- Validity of the committee’s threshold signature over the certified block
- Inclusion of the bridge-out event and its transaction via the Merkle accumulator proofs
- Authenticity of the event data (right source module, caller, destination chain, and that the message has not already been processed)
If all checks pass, the verifier marks the bridge request as valid.
Asset Delivery and Fund Receipt
Upon successful verification:
- The Token Bridge Service Contract on Ethereum is triggered.
- The Ethereum-side asset is delivered 1:1 against the amount burned or locked on Supra, either released from the Ethereum vault or issued by the bridge, depending on the destination token.
- The asset is sent to your connected (or specified) Ethereum wallet address.
You can now:
- View transaction history under Explorer > My Transactions.
Transaction Lifecycle Summary (Supra to Ethereum)
| Stage | System Action | User Action |
|---|---|---|
| Wallet Connection | Connect Supra Wallet and MetaMask | Click Connect Wallet |
| Initiate Bridge | Burn the wrapped FA, or lock the Supra-native asset | Enter Amount, Confirm |
| Event Emission | Emit bridge-out request log | Wait |
| Relayer Proofs | Generate Merkle proofs, fetch inclusion certificate | Wait |
| Ethereum Verification | Validate proofs on-chain | Monitor Explorer |
| Asset Delivery | Deliver the asset to the recipient wallet | Receive tokens |
During Bridging these are the in-built safeguards:
- Relayer Failure: Another permissionless relayer can submit the proof.
- Committee Rotation: When the Supra committee rotates at an epoch boundary, the permissionless Committee Updater registers the new committee’s threshold keys on Ethereum (epoch rotation currently occurs every 2 hours).