This guide connects three related components that move or manage native token value:
- Base fee redirect: redirects EIP-1559 base fees to a configured sink instead of burning them.
- FeeVault: a contract that accumulates native tokens and can split and bridge them.
- Native minting precompile: a privileged mint/burn interface for controlled supply changes.
These components are independent but commonly deployed together. The base fee redirect is a value transfer, not minting. Native minting is explicit supply change and should remain tightly controlled.
Purpose: Redirect the EIP-1559 base fee to a sink address (EOA or contract) instead of burning it.
Mechanics:
- The EVM handler credits
base_fee_per_gas * gas_usedto the configured sink. - The redirect only activates at or after
baseFeeRedirectActivationHeight. - If no sink is configured, base fee burns proceed as standard Ethereum behavior.
Chainspec configuration (inside config.evolve):
"evolve": {
"baseFeeSink": "0x00000000000000000000000000000000000000fe",
"baseFeeRedirectActivationHeight": 0
}See docs/adr/ADR-0001-base-fee-redirect.md for implementation details.
Purpose: Accumulate native tokens and split them between a bridge destination and a secondary recipient.
Mechanics:
- Receives base fees when
baseFeeSinkis set to the FeeVault address. - Anyone can trigger
sendToCelestia(or equivalent) once the minimum threshold is met. - Splits balance by
bridgeShareBps, sends the bridge share toHypNativeMinter, and transfers the remainder tootherRecipient.
Why it pairs with base fee redirect: the redirect funnels base fees into the FeeVault automatically, turning burned fees into recoverable value for treasury or bridging.
See docs/contracts/fee_vault.md for parameters and deployment details.
Purpose: Provide a privileged, auditable way to mint or burn the native token.
Mechanics:
- Precompile address:
0x000000000000000000000000000000000000f100. mintAdminmanages the allowlist; both admin and allowlisted accounts can callmintandburn.- Activation is gated by
mintPrecompileActivationHeight. - Setting
mintAdminto the zero address disables the precompile.
Chainspec configuration (inside config.evolve):
"evolve": {
"mintAdmin": "0x000000000000000000000000000000000000Ad00",
"mintPrecompileActivationHeight": 0
}See docs/adr/ADR-0002-native-minting-precompile.md for the full interface and security notes.
- Base fee redirect credits base fees to a sink address instead of burning them.
- FeeVault can be that sink, so base fees accumulate in a contract with deterministic split logic.
- Native minting is separate and optional; it is used for controlled supply changes (bootstrapping liquidity, treasury operations), not for redirecting fees.
In other words, base fee redirect and FeeVault are about re-routing existing value, while native minting explicitly changes total supply. Keep those responsibilities separate and limit minting access to minimize systemic risk.
- Set
baseFeeSinkto the FeeVault address. - Use
AdminProxyas themintAdminand FeeVault owner if you need a safe, upgradeable admin. - Activate both features at a planned height for existing networks.
References:
docs/contracts/admin_proxy.mddocs/contracts/fee_vault.mddocs/adr/ADR-0001-base-fee-redirect.mddocs/adr/ADR-0002-native-minting-precompile.md