Fee Market — x/feemarket (EIP-1559 BaseFee)
EIP-1559–compatible base fee market for OKRW gas. Senders pay base fee + priority tip, both in aokrw.
Maroo's x/feemarket Cosmos SDK module implements an EIP-1559–compatible dynamic base fee for OKRW gas. The base fee adjusts each block based on how full the previous block was: above the target gas usage, the base fee rises; below it, the base fee falls. Senders submit transactions with maxFeePerGas and maxPriorityFeePerGas, exactly as on Ethereum mainnet — the only difference is the unit (aokrw instead of wei). Standard EVM tooling produces correct values without configuration.
How charging works
For each transaction PCL admits to a block:
1. Effective gas price =
2. Total fee charged =
3. The fee splits into two:
- Base fee portion (
- Priority tip portion (
Senders never pay more than
1. Effective gas price =
min(maxFeePerGas, baseFee + maxPriorityFeePerGas).2. Total fee charged =
effective gas price × gas used, in aokrw.3. The fee splits into two:
- Base fee portion (
baseFee × gas used) — burned. This permanently removes OKRW from supply, creating a deflationary pressure proportional to chain usage.- Priority tip portion (
(effective gas price - baseFee) × gas used) — paid to the proposer of the block. This rewards validators for including transactions and creates the same MEV-style incentives as on Ethereum.Senders never pay more than
maxFeePerGas × gas used; the chain refunds the unused portion.Tooling implications — Hardhat, Foundry, ethers.js
Because the fee market is EIP-1559–compatible, all standard EVM tooling works without modification:
Tools like Hardhat's
If you've previously read older Maroo docs that mentioned
eth_gasPricereturns a sensible legacy gas price (computed asbaseFee + suggested priority fee).eth_feeHistoryreturns the rolling window of recent base fees and reward percentiles, exactly as on Ethereum.eth_maxPriorityFeePerGasreturns the suggested priority tip.
Tools like Hardhat's
--network maroo, Foundry's forge create --rpc-url, and ethers.js's provider.getFeeData() will populate maxFeePerGas and maxPriorityFeePerGas correctly. You don't need a custom fee strategy.If you've previously read older Maroo docs that mentioned
NoBaseFee = true, that was an early prototype configuration that never shipped to the canonical chain. The active configuration uses x/feemarket with BaseFee enabled.Parameter visibility and tunability
x/feemarket exposes the standard EIP-1559 parameters as Cosmos SDK module params:base_fee— current base fee (inaokrw). Auto-adjusts per block; readable viaeth_gasPriceor via the module's gRPC/REST endpoints.min_gas_price— floor below which the base fee won't drop. Governance-controllable.elasticity_multiplierandbase_fee_change_denominator— control how aggressively the base fee adjusts to gas usage. Governance-controllable.
For day-to-day dapp work, you only need
base_fee (and the standard JSON-RPC will give it to you). The other parameters are knobs for chain operators tuning fee responsiveness.