> ## Documentation Index
> Fetch the complete documentation index at: https://base-a060aa97-docs-sync-code-change-3820cf0.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Fees, Ordering, and Lifecycle

> Understand fees, expiry, and replacement for validity transactions.

## Fees

Transactions use the normal fee rules for their type. For EIP-1559 transactions, set `maxFeePerGas` and `maxPriorityFeePerGas` on the signed transaction.

A transaction that is not included does not pay onchain execution fees. An included transaction pays normal execution fees, even if it reverts.

## Ordering

A transaction competes for inclusion only after every predicate matches. A matching predicate does not reserve block space.

## Expiry

Every validity transaction must include a `block_number` predicate that sets an upper bound, using `<`, `<=`, or `=`. The bound must be within 60 seconds of submission. This is a time-based limit, not a fixed block count; the equivalent number of blocks depends on block cadence.

Combine the predicate with `flashblock_index` to tighten the expiry bound to a position within that block's Flashblocks. Valid Flashblock indexes range from `1` through `10`, inclusive.

## Replacement

A later transaction with the same sender and nonce can replace a pending transaction. If the RPC returns an underpriced-replacement error, increase the fee fields, sign again, and retry.
