Skip to Content
SupraNova (Bridge)Fee Structure in SupraNova

Fee Structure in SupraNova

SupraNova’s fee model is designed to sustain a permissionless, decentralized bridging ecosystem while incentivizing critical actors like relayers and committee updaters.

Fee Structure diagram

The same fee model applies in both directions. There is no separate reverse fee schedule: the Verification Fee is charged by the HyperNovaCore verifier on whichever chain performs the verification, and the Service Layer Fee is charged by the Token Bridge on whichever chain delivers the asset. For Ethereum to Supra that is Supra; for Supra to Ethereum that is Ethereum, where the verification fee is paid in ETH.

Fee Overview and Responsibilities

SupraNova applies two levels of fees internally but simplifies the user experience by exposing only the Service Layer Fee during transaction confirmation.

Verification Fee

An internal fee that compensates Committee Updaters for:

  • Proof generation
  • Signature validation
  • Validator public key updates

Paid by: Service Layer (not the user directly)


Service Layer Fee

Visible to users and deducted upon initiating a bridge transaction. It covers:

  • Operational costs
  • Treasury accumulation
  • Relayer and Committee Updater rewards

Then the system separates fees into two distinct layers:

Fee TypePurposeSource of Funding
Verification FeeCovers cryptographic proof verification on SupraFunded from service fee.
Service Layer FeeSpecific to the token bridge service, customizable by service providersPaid by bridging users

Message Passing Layer Fee

This fee is charged for:

  • Verifying Sync Committee proofs
  • Verifying ancestry and receipt proofs
  • Managing public key updates (Committee Updater work)
  • Safe validators committee handovers through public key updates.

Who Charges It?

  • The HyperNovaCore verifier contract charges this fee internally. Service-contracts calling the message-passing layer for validation pay this fee as part of the process.

Service Layer Fee (Token Bridge Specific)

This fee is charged by service-specific components like the Token Bridge and includes:

  • Operational Service costs.
  • Relayer rewards.

Who Sets It?

  • The Token Bridge smart contract service owner (typically the protocol team).

How is it Collected?

Testnet and Mainnet collect the fee the same way. A small cut is deducted on the source chain, out of the asset being bridged, at the time the bridge request is submitted — not on the destination chain at delivery time.

  • Bridging ETH or USDC from Ethereum, the cut comes out of the ETH or USDC being locked.
  • Bridging supETH or supUSDC back from Supra, the cut comes out of the wrapped asset being burned.
  • Bridging $SUPRA out of Supra, the cut comes out of the $SUPRA being locked.
The entire bridging fee is borne by the bridging users.

What Does It Fund?

  • Relayer incentives
  • Operational treasury buildup

Fee Breakdown Example During a Bridge Transaction

Suppose you are bridging 1 ETH:
Fee ComponentExample
Message Passing Verification Fee0.001 $SUPRA equivalent
Service Layer Fee (token bridge)Tiered percentage of the bridged amount
Relayer Reward (from service fee)Paid out within the relayer’s own proof-submission transaction
Committee Updater RewardPaid out within the Committee Updater’s own committee-update transaction
  • The net amount received on the destination chain will be slightly less than the amount sent, after fees.
  • All fees are transparent and visible during the bridge confirmation step.
  • Quote the exact figure from the contract before relying on it: inboundTokenFee on the Ethereum Token Bridge, get_fee_for_amount on the Supra Token Bridge module.

Incentivizing Liveness

Both relayers and committee updaters are permissionless roles that ensure network liveness and decentralization.

They are incentivized through fee rewards:

ActorTaskIncentive SourceWhen it is paid
RelayerSubmit proof bundlesService Layer FeeIn the same transaction that submits the proof
CommitteeUpdaterPublish the source chain’s new keysVerification FeeIn the same transaction that registers the new committee

There is no periodic treasury disbursal. Both rewards are settled atomically inside the relayer’s or Committee Updater’s own transaction, so an operator is paid by the same transaction that does the work and never has to wait on an off-chain payout cycle.

Without sufficient rewards:

  • Relayers may delay proof submissions
  • Committee updates may lapse, compromising security

SupraNova’s modular fee and reward system ensures both roles remain sustainably incentivized.

Testnet Fee Settings - Some fees (especially the Verification Fee) are reduced or set to zero for testing purposes. - The full fee model will be enforced at Mainnet launch.


Fee Model for the SupraNova Bridge Protocol

This protocol involves a Token Bridge Service and a Message Passing Layer. The model details various fees and rewards, including:

  • Service Fee (S)
  • Relayer Rewards (RR)
  • Committee Updater Rewards (CUR)
  • Relayer Expense (RG)
  • Committee Updater Expense (CUG)
  • Verification Fee (V)

Key points of the model:

  • Users pay a Service Fee (S) and gas costs when initiating a bridge request.
  • Relayers are compensated with Relayer Rewards (RR) that cover their expenses (RG).
  • Committee Updaters (CU) are rewarded (CUR) for keeping the source chain’s consensus keys current on the destination chain, covering their expenses (CUG). For Ethereum to Supra this is the Ethereum Sync Committee keys published to Supra; for Supra to Ethereum it is the Supra committee threshold keys published to Ethereum.
  • RG and CUG are treated as constants determined by the Admin.

The same formulas apply in both directions, with the destination chain’s Committee Updater and verification costs substituted into the CUR, CUG and V terms.

Fee Derivation Formulas

Given traffic estimate X, and gross margins SM, VM, CUM, RM:

  • CUR = CUG / (1 - CUM)
  • V = (CUR / X) / (1 - VM)
  • RR = (V + RG) / (1 - RM)
  • S = RR / (1 - SM)

Tiered Service Fee Structure

To accommodate varying bridge volumes, SupraNova applies a tiered service fee model based on the value bridged in USDT:

TierBridged Value RangeService Fee Rate
Micro< $5,0000.5%
Standard$5,000 – $1,000,0000.3%
Whale> $1,000,0000.2%

Current On-Chain Fee Parameters

These are the values configured on the live deployments. Rates are expressed in basis points against a percentage base of 10000.

ParameterRaw ValueValue
rg (relayer gas expense)2750000000000000.000275 ETH
rm (relayer margin)400040%
sm (service margin)100010%
microTierThresholdInUsdt5000000000$5,000
whaleTierThresholdInUsdt1000000000000$1,000,000
microTierFeePercentage500.5%
standardTierFeePercentage300.3%
whaleTierFeePercentage200.2%

The tiered rates above are the configuration on the Supra fee operator, which is what prices a Supra to Ethereum transfer. On the Ethereum fee operator the service fee and relayer reward for Ethereum to Supra transfers are currently configured to zero, so that leg costs only Ethereum gas today. Both are service-owner settings and can change; quote the fee from the contract (inboundTokenFee on Ethereum, get_fee_for_amount on Supra) rather than assuming a rate.


SupraNova Address Details

The same deployments serve both bridging directions. On Ethereum the contracts are proxies; on Supra the bridge is a set of Move modules.

Ethereum Mainnet

Contract NameAddress
HypernovaProxy0x96AbCABA0236eCC166c8aDf2b5797ad3D32f5367
TokenBridgeProxy0x4ef3DE5d92C9d5D49205C3Ee16F84A1F538e70f5
TokenVaultProxy0x4A4B47c6296b20790daF30B529469a46d48C51Ad
FeeOperatorProxy0x017bE40790A232651Af8C5ac08439280d412EeE2
WrappedTokenFactoryProxy0x1108470109E12345626B29be71751a1c9F7e12b0
Supra Token (ERC20)0xDC7404100A092c898E93708EF73F3322A7acc213

Supra Mainnet Move Modules

All six bridge modules are published under a single account, 0xda20f7d0ec813c751926f06004a10bc6ee1eefc96798f6a1aa31447ee146f932. Address a module as <account>::<module>, for example 0xda20f7d0ec813c751926f06004a10bc6ee1eefc96798f6a1aa31447ee146f932::token_bridge_service.

ModuleLayerRole
hypernova_coreMessage passingVerifies Ethereum events on Supra: Sync Committee, receipt and ancestry proofs
hypernova_core_from_supraMessage passingEmits the MessagePosted event that the Ethereum-side verifier consumes
token_bridge_serviceServiceThe Token Bridge itself: mints, burns, and locks on the Supra side
token_vaultServiceCustody for Supra-native assets, with per-token lock and release limits
fee_operatorServiceFee configuration, fee collection and reward payout
wrapped_token_deployerServiceDeploys the wrapped FA for each bridged asset and holds its mint capability

token_bridge_codec and the hypernova_core support modules (eth_types, message_types, proof_verifier, merkle_tree, helpers) are published at the same account as internal libraries.

Supra Testnet Move Modules

ModuleAccount
hypernova_core, hypernova_core_from_supra0x3ab1136a5dbb76b923d2b02f95b042f5d80b70218a0395755eafb63d4eefc340
token_bridge_service, token_bridge_codec0x76b38ad503118cb7749a835d965b023a2fe4801dba736bfa66e18d1f0339695c

Addresses change as contracts and modules are redeployed. Confirm current values against the SupraNova Explorer  before integrating.


Asset Details

Each row is a bridging pair. Going Ethereum to Supra, the Ethereum-side asset is locked and the Supra-side asset is minted; going Supra to Ethereum, the same pair runs in reverse. Burning supETH can deliver either native ETH or WETH, depending on the destination token you select; both settle from the same vault against the same supETH balance.

Testnet

Asset NameEthereum AddressAsset NameSupra Address
WETH0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14supETH0x1a57888bfcd31ef82a8e3dac93db14335b36f9228d5f050b722151ae2a77153a
USDC0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238supUSDC0x3ca17a5b04d826f9be112c319e003b3a79b2682c40613876023758dbb0d03e96
USDT0xaA8E23Fb1079EA71e0a56F48a2aA51851D8433D0supUSDT0x02946e0f1a942ab8eb6f763f19da3d7540609aba8b00fb54e680cac5e048f8d0
SolvBTC0xE33109766662932a26d978123383ff9E7bdeF346supSolvBTC0x420c8751a043b5b216cf02a011b0d563f3638eb082f91f0d879254e388f2b53a
WBTC0x29f2D40B0605204364af54EC677bD022dA425d03supBTC0x7ca33bcce4f4bb7904ac7b46e3613b6b62dae55cc89923706aac1ad1c244e3e6
SUPRA0xDC7404100A092c898E93708EF73F3322A7acc213SUPRA0x000000000000000000000000000000000000000000000000000000000000000a

Mainnet

Asset NameEthereum AddressAsset NameSupra Address
WETH0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2supETH0xe4af154ade9551e7f58a23b8f727ae2dca050f1b74582bb518ba361c889d246d
USDC0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48supUSDC0xf90b4b9d4a9d87c39fb3140513e52edc3ead5eaddcb9881b02becdeb63c5793d
USDT0xdAC17F958D2ee523a2206206994597C13D831ec7supUSDT0x07b6463ca7a54ee37e113c8333db9c0af49de39555ee1cb44837db4c085f8964
SolvBTC0x7A56E1C57C7475CCf742a1832B028F0456652F97supSolvBTC0x224bee573e0ae84ba7f1eee4f7063a945ad7a268bea7ab9e004f6890177a480b
WBTC0x2260fac5e5542a773aa44fbcfedf7c193bc2c599supBTC0x348b1a4fa68803cbda3b50326a90e59b21e80c3ced93588b20950b5c0697a67e
SUPRA0xDC7404100A092c898E93708EF73F3322A7acc213SUPRA0x000000000000000000000000000000000000000000000000000000000000000a

Asset Transaction Limits

Every bridged asset carries three configured caps, enforced on-chain by the vault that holds it:

  • Global Cap – the total value the vault will hold in that asset.
  • Per-Request Lock Limit – the most that can be locked in a single outbound request.
  • Per-Request Release Limit – the most that can be released in a single inbound settlement.

A request outside these bounds is rejected up front, so the transfer cannot be started for an over-limit amount.

Ethereum Vault (Mainnet)

These caps apply to assets custodied on Ethereum: locked when bridging Ethereum to Supra, released when bridging Supra to Ethereum. The minimum is 1 base unit for every asset in both directions.

AssetPer-Request Lock LimitGlobal CapPer-Request Release Limit
WETH3.888 WETH (3888000000000000000)19.44 WETH (19440000000000000000)3.888 WETH (3888000000000000000)
USDC9,000 USDC (9000000000)45,000 USDC (45000000000)9,000 USDC (9000000000)
USDT3,800 USDT (3800000000)19,000 USDT (19000000000)3,800 USDT (3800000000)
WBTC0.00166 WBTC (166000)0.0083 WBTC (830000)0.00166 WBTC (166000)
SolvBTC0.00166 SolvBTC (1660000000000000)0.0083 SolvBTC (8300000000000000)0.00166 SolvBTC (1660000000000000)

Native ETH is wrapped on the way in, so ETH transfers are bound by the WETH row.

Supra Vault (Mainnet) — $SUPRA

$SUPRA is native to Supra, so it is custodied by the Supra-side vault rather than the Ethereum vault. Its caps are configured on that vault through set_lock_limits and set_release_limits, and the Ethereum vault’s limits above never apply to it. $SUPRA amounts are denominated in quants (8 decimals).

AssetPer-Request Lock LimitGlobal CapPer-Request Release Limit
$SUPRA4,000,000 SUPRA (400000000000000)200,000,000 SUPRA (20000000000000000)4,000,000 SUPRA (400000000000000)

The lock limit applies when $SUPRA leaves Supra for Ethereum; the release limit applies when it comes back. See Token Bridging Models for how the path works.

Reference Prices Used to Size the Caps

The caps above are value-normalised. These are the reference prices they were derived from, not live prices:

AssetReference Price
USDC$1
USDT$1
WETH$1,800
WBTC$60,000
SolvBTC$60,000
$SUPRA$0.00025

Caps are retuned as the bridge builds up operating history. Read the exact base-unit values from the vault contract (lockLimits / releaseLimits on Ethereum, lock_limits / release_limits on Supra) before integrating.

Last updated on