How It Works
Submit a signed raw transaction and a non-emptyvalidity 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
Useblock_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.