Introduction / Fee Market

Fee Market

A base fee that burns, a priority tip that doesn't, and gas priced to reward small, composable contracts over monoliths.

6 min read

TL;DR. Every transaction pays a base fee — 100% burned on testnet — plus an optional priority tip to the proposer. Gas is priced in gwei, making AEV mildly deflationary under load. A service-node reward split is planned but not yet active.

Aevum runs an EIP-1559 fee market with a full base-fee burn. Every transaction pays a base fee — 100% burned on testnet — plus an optional priority tip to the proposer. Gas is priced in gwei (10⁻⁹ AEV), which makes the token mildly deflationary under real network load. A service-node reward split is planned but not active yet.

Base fee and burn

Every block sets a base fee that every transaction in it must pay, adjusted automatically from the previous block's fullness:

  • Above 50% capacity, the base fee rises — up to +12.5% per block
  • Below 50% capacity, it falls — up to -12.5% per block
  • The protocol is aiming for sustainable ~50% utilization over time

Base fees are burned outright, permanently reducing AEV supply. More network activity means more AEV burned.

Priority fee

Priority fees go straight to the validator that proposes the block, as a direct incentive on top of the block reward. A transaction with a zero tip still confirms — it just queues behind higher-tip transactions whenever the mempool is congested. Proposers pick transactions in descending tip order until the gas limit is hit.

Gas model

Gas is metered per transaction type, not per opcode:

  • Transfer — a flat base cost
  • Contract call — base cost, plus per-byte for arguments, plus per-write for storage changes
  • Contract deploy — base cost, plus per-byte for the source
  • Event emit — per-byte for the payload

There's no per-opcode metering. It's a deliberate lever toward small, modular contracts over monolithic ones.

Cold-load surcharge

The first time a contract loads within a block, it has to be parsed and evaluated into a fresh compartment — real work. Later calls to the same contract within that block reuse the cached result. A first-time call in a block pays a cold-load surcharge proportional to source length, which is another nudge toward composable, right-sized contracts over one giant one.

A worked example

Sending 10 AEV to a friend, with a 1 gwei base fee and a 0.5 gwei priority tip:

total_fee = gas_used × (base_fee + priority_fee) = 21000 × (1 + 0.5) gwei = 31500 gwei = 0.0000315 AEV burned = 21000 × 1 gwei = 21000 gwei (100% of base fee) to proposer = 21000 × 0.5 gwei = 10500 gwei (priority tip)

Total cost: about 0.00003 AEV — roughly 0.000021 AEV burned, 0.0000105 AEV to the proposer.

What this means for builders

  • Read recent base fees from eth_feeHistory instead of hardcoding a gas price
  • Split large contracts into smaller composable pieces to minimize cold-load cost
  • Prefer storage reads (free for view calls) over writes wherever you can
  • Emit events selectively, for what an indexer actually needs — not every state change