Fee Structure
Withdrawal Fees
Relayers charge a fee for processing withdrawals. The fee is set by each relayer individually.
How Fees Work
- Relayer fee — The relayer keeps 100% of the ETH fee charged to the user (covers gas + profit)
- Protocol fee — The protocol charges 0.3% of the withdrawal amount in OFF tokens, deducted from the relayer's stake. The ETH→OFF conversion uses PriceOracleV2, which reads the spot price directly from the Uniswap V4 pool.
- Protocol fee distribution — The OFF from step 2 goes to the Staking contract and is distributed to all stakers immediately via
addReward()
Example
For a 0.1 ETH withdrawal:
- Protocol fee: 0.3% × 0.1 ETH = 0.0003 ETH equivalent in OFF
- At a rate of 50,000 OFF/ETH → ~15 OFF deducted from relayer stake → sent to stakers
For a 1 ETH withdrawal with a 3.3% relayer fee:
- Relayer ETH fee: 0.033 ETH (100% to relayer)
- Protocol fee: 0.3% × 1 ETH = 0.003 ETH equivalent in OFF (deducted from relayer stake)
- User receives: 0.967 ETH
Why This Model?
- Relayers are fully compensated for gas and operations
- Protocol sustainability through usage-based revenue
- Stakers earn real yield from protocol activity, not inflation
- Governance can adjust the 0.3% rate (up to 5% maximum)
Minimum Withdrawal
The minimum withdrawal amount is 0.1 ETH to ensure relayer operations remain economically viable.
Gas Considerations
- Full withdrawal: ~400K gas
- Partial withdrawal: ~7M gas (due to Merkle tree re-insertion of change)
Partial withdrawals are significantly more expensive due to the on-chain Poseidon hashing required to re-insert the change into the Merkle tree.