Skip to main content
A regular EOA has a single nonce, so transactions strictly serialize. ERC-7579 smart accounts have a two-dimensional nonce: a nonceKey (the lane) and a nonce (the position inside that lane). Different lanes are independent, so you can send UserOperations on different lanes in parallel.

When to use parallel lanes

Mental model

Within a lane, UserOperations are still ordered. Across lanes, they are independent.

Read a lane nonce

Send two UserOperations in parallel

Pass each lane’s nonce when calling sendUserOperation. Do not await the calls back to back; fire them together so the bundler sees both at once.
If you fire many UserOperations on a single lane, the bundler will queue them strictly in order; one stuck UserOp blocks the rest of the lane. Use lanes whenever ordering between two flows does not matter.

Pick lane keys deliberately

The key is a uint192 packed into the nonce, which leaves plenty of room for application-defined schemes: The lane key is opaque to the EntryPoint; pick whatever scheme keeps your flows from colliding.

Caveats

  • Lanes are per smart account. Two different smart accounts already have independent nonces; you only need lanes within a single account.
  • Lane state lives onchain. Bumping key does not cost gas, but the first UserOp on a brand-new lane still pays whatever gas the EntryPoint charges for storage initialisation.
  • The paymaster does not care about lanes; sponsored and ERC-20 paymaster flows work the same way on any lane.

Next steps

Contract interactions

Combine batched calls inside a single UserOperation with parallel UserOperations across lanes.

Smart sessions

Run scoped session UserOperations on dedicated lanes.

Sponsored paymaster

Sponsor every UserOperation across all lanes.

EIP-7702

Use lane nonces on a delegated EOA-as-smart-account.