Skip to main content
Validity Transactions let you submit a signed transaction with conditions on Base state. The API supports legacy, EIP-2930, and EIP-1559 transactions; EIP-1559 is recommended. Use them for conditional swaps, withdrawals, and other state-dependent actions.
Validity Transactions are experimental. base_sendRawTransactionValidity is currently available on Vibenet. Mainnet and Base Sepolia availability are not yet confirmed.

How It Works

Submit a signed raw transaction and a non-empty validity array. The current API supports balance, storage, block-number, and Flashblock-index predicates. A transaction is eligible only when every predicate matches. Base checks predicates before inclusion. A pending transaction can become eligible after an earlier transaction changes the state it watches. EIP-1559 Validity Transactions use normal fee fields. Eligibility does not reserve block space or guarantee inclusion.

Lifetime and Privacy

Use block_number or flashblock_index predicates to constrain when a transaction can be included. Use the sender’s nonce when replacing a pending transaction. Validity criteria are sent separately from the signed transaction. They do not appear in the resulting onchain transaction. Do not include secrets in calldata or predicate values.

Next Steps

Build a Validity Transaction

Sign and submit a transaction with Viem.

Validity Transaction RPC

Review the request format.

Fees, Ordering, and Lifecycle

Understand fees, expiry, and replacement.

Predicates and Safety

Learn predicate rules and safety limits.

Troubleshooting

Diagnose submission and inclusion issues.