getAccountNonce
Returns the current nonce of the smart account for a specified key.
Usage
import { publicClient } from "./client.ts"
import { getAccountNonce } from "permissionless"
import { entryPoint07Address } from "viem/account-abstraction"
const nonce = await getAccountNonce(publicClient, {
address: "0x277F6C1D8d4faFA3d8DcC837489cd69d86c682BA",
entryPointAddress: entryPoint07Address,
key: 0n // optional
})
// 23n
Returns
- Type:
bigint
The current nonce of the smart account for the specified key (both the key and the sequence concatenated together into one uint256).
Parameters
address
- Type:
Address
The address of the smart account.
entryPoint
- Type:
Address
The entry point address.
key (optional)
- Type:
bigint
The key of the nonce. Defaults to 0n.
Instead of sequential nonce, ERC-4337 implements a nonce mechanism that uses a single uint256 nonce value in the UserOperation, but treats it as two values, a 192-bit “key”, and a 64-bit “sequence”. These values are represented on-chain in the EntryPoint contract. For each key the sequence is validated and incremented sequentially and monotonically by the EntryPoint for each UserOperation, however a new key can be introduced with an arbitrary value at any point.