Skip to main content
This guide uses an EIP-1559 transaction with Viem because it is the recommended transaction type. The API also supports signed legacy and EIP-2930 transactions.
Validity Transactions are experimental. base_sendRawTransactionValidity is currently available on Vibenet.

1. Create Predicates

Use balance or storage to wait for account or contract state. Use block_number and flashblock_index to constrain the candidate position. Every predicate must match.
Predicate setup
Omit mask to compare the full storage word. Use flashblock_index to target a position within a Flashblock.

2. Sign an EIP-1559 Transaction

Use the sender’s next nonce. The signed payload becomes the first RPC parameter.
Sign transaction

3. Submit the Transaction

Pass the signed transaction and validity as separate parameters.
Submit transaction

4. Check Inclusion

The RPC returns a transaction hash. Use eth_getTransactionReceipt to check for an onchain receipt. For field definitions, see Validity Transaction RPC.