Concepts
Fee Market
EIP-1559 with a burn · Estimated read time: 6 minutes
TL;DR
Asentum uses an EIP-1559 fee market with a full base-fee burn. Every transaction pays a base fee (100% burned on the current testnet) plus an optional priority tip (to the proposer). Gas costs one Asentum-native gas unit priced in gwei (10-9 ASE). Making ASE deflationary under load. A service-node reward split (redirecting a portion of the base fee pre-burn) is on the roadmap but is not live today.
Base fee & burn
Every block has a base fee that every transaction in that block must pay. The base fee adjusts automatically every block based on how full the previous block was:
- Block more than 50% full → base fee goes up (up to +12.5% per block).
- Block less than 50% full → base fee goes down (up to -12.5% per block).
- The target is sustainable 50% utilization over time.
Base fees are burned, permanently removing ASE from circulation. The more the chain is used, the more scarce ASE gets.
Priority fee
On top of the base fee, you can tip a priority fee directly to the block proposer. Tip zero and your tx still lands — just behind anything tipping more, when the mempool is full.
Priority fees are the validator's direct incentive beyond the base block reward. The proposer picks mempool txs in descending tip order until the block gas limit is hit.
Gas model
Asentum meters gas per transaction kind rather than per opcode. The per-tx base costs are fixed placeholders pending real-data tuning; the per-byte and per-storage-op costs are what actually moves with your workload.
- Transfer — flat base cost.
- Contract call — base + per-byte for argument payload + per-write for storage mutations.
- Contract deploy — base + per-byte for source code (large contracts are expensive).
- Event emit — per-byte for the event payload.
Per-opcode gas metering is on the parking lot. The current model rewards small modular contracts without the implementation complexity of EVM-style opcode metering.
Cold-load surcharge
The first time a contract is loaded in a block, its full source is parsed and evaluated into a Compartment — that's slow. Subsequent calls in the same block hit the cache. To reflect this, every contract pays a cold-load surcharge proportional to source length the first time it's called.
The pricing signal is deliberate: small modular contracts are cheaper than one giant contract. This pushes the ecosystem toward composable primitives.
A worked example
You send 10 ASE to a friend. The base fee for the current block is 1 gwei and you tip 0.5 gwei. The transfer uses the flat 21,000 gas base cost.
total_fee = gas_used × (base_fee + priority_fee)
= 21000 × (1 + 0.5) gwei
= 31500 gwei
= 0.0000315 ASE
burned = 21000 × 1 gwei = 21000 gwei (100% of base fee)
to proposer = 21000 × 0.5 gwei = 10500 gwei (priority tip)You spend ~0.00003 ASE. ~0.000021 ASE is permanently burned. ~0.0000105 ASE flows to the proposer as a tip.
What this means for builders
- Use
eth_feeHistory. Don't hardcode gas prices — read the recent base fee from the RPC and add a sensible tip. - Keep contracts small. The cold-load surcharge is a real cost. Split big contracts into composable pieces and use cross-contract calls.
- Favour storage reads over writes. Reads are free (view calls); writes cost per-op. Cache what you can in memory during a call.
- Events are cheap but not free. Emit what indexers need, not every state change.
Read next