<!--
Sitemap:
- [Why Viem](/docs/introduction): A brief preamble on why we built Viem
- [Installation](/docs/installation)
- [Getting Started](/docs/getting-started): Get started with viem in just a few lines of code.
- [Platform Compatibility](/docs/compatibility): Platforms compatible with Viem
- [Frequently Asked Questions](/docs/faq)
- [Migration Guide](/docs/migration-guide)
- [Ethers v5 → viem Migration Guide](/docs/ethers-migration): Migrate from Ethers v5 to viem
- [TypeScript](/docs/typescript): TypeScript support for Viem
- [Error Handling](/docs/error-handling)
- [EIP-7702 Overview](/docs/eip7702): An Overview of EIP-7702
- [Contract Writes with EIP-7702](/docs/eip7702/contract-writes)
- [Sending Transactions with EIP-7702](/docs/eip7702/sending-transactions)
- [Blob Transactions](/docs/guides/blob-transactions): Sending your first Blob Transaction with Viem.
- [Introduction to Clients & Transports](/docs/clients/intro): A brief introduction to Clients & Transports.
- [Public Client](/docs/clients/public): A function to create a Public Client
- [Wallet Client](/docs/clients/wallet): A function to create a Wallet Client.
- [Test Client](/docs/clients/test): A function to create a Test Client
- [Build your own Client](/docs/clients/custom)
- [HTTP Transport](/docs/clients/transports/http): A function to create a HTTP Transport for a Client
- [WebSocket Transport](/docs/clients/transports/websocket): A function to create a WebSocket Transport for a Client
- [Custom Transport](/docs/clients/transports/custom): A function to create a Custom Transport for a Client
- [IPC Transport](/docs/clients/transports/ipc): A function to create an IPC Transport for a Client
- [Fallback Transport](/docs/clients/transports/fallback): A function to create a Fallback Transport for a Client
- [Introduction to Public Actions](/docs/actions/public/introduction): A brief introduction on what Public Actions are in viem.
- [createAccessList](/docs/actions/public/createAccessList)
- [getBalance](/docs/actions/public/getBalance): Returns the balance of an address in wei.
- [getTransactionCount](/docs/actions/public/getTransactionCount): Returns the number of Transactions an Account has sent.
- [getBlock](/docs/actions/public/getBlock): Returns information about a block at a block number, hash or tag.
- [getBlockReceipts](/docs/actions/public/getBlockReceipts): Returns the transaction receipts of a block at a block number, hash or tag.
- [getBlockNumber](/docs/actions/public/getBlockNumber): Returns the number of the most recent block seen.
- [getBlockTransactionCount](/docs/actions/public/getBlockTransactionCount): Returns the number of Transactions at a block number, hash or tag.
- [simulateBlocks](/docs/actions/public/simulateBlocks): Simulates a set of calls on block(s).
- [watchBlockNumber](/docs/actions/public/watchBlockNumber): Watches and returns incoming block numbers.
- [watchBlocks](/docs/actions/public/watchBlocks): Watches and returns information for incoming blocks.
- [call](/docs/actions/public/call): An Action for executing a new message call.
- [simulateCalls](/docs/actions/public/simulateCalls): Simulates a set of calls on block(s).
- [getChainId](/docs/actions/public/getChainId): Returns the chain ID associated with the current network
- [getEip712Domain](/docs/actions/public/getEip712Domain): Reads the EIP-712 domain from a contract.
- [estimateFeesPerGas](/docs/actions/public/estimateFeesPerGas): Returns an estimate for the fees per gas (in wei) for a transaction to be likely included in the next block.
- [estimateGas](/docs/actions/public/estimateGas): An Action for estimating gas for a transaction.
- [estimateMaxPriorityFeePerGas](/docs/actions/public/estimateMaxPriorityFeePerGas): Returns an estimate for the max priority fee per gas (in wei) for a transaction to be likely included in the next block.
- [getBlobBaseFee](/docs/actions/public/getBlobBaseFee): Returns the current blob base fee (in wei).
- [getFeeHistory](/docs/actions/public/getFeeHistory): Returns a collection of historical gas information.
- [getGasPrice](/docs/actions/public/getGasPrice): Returns the current price of gas (in wei).
- [createBlockFilter](/docs/actions/public/createBlockFilter): An Action for creating a new Block Filter.
- [createEventFilter](/docs/actions/public/createEventFilter): An Action for creating a new Event Filter.
- [createPendingTransactionFilter](/docs/actions/public/createPendingTransactionFilter): An Action for creating a new pending transaction filter.
- [getFilterChanges](/docs/actions/public/getFilterChanges): Returns a list of logs or hashes based on a Filter.
- [getFilterLogs](/docs/actions/public/getFilterLogs): Returns a list of event logs since the filter was created.
- [getLogs](/docs/actions/public/getLogs): Returns a list of event logs matching the provided parameters.
- [watchEvent](/docs/actions/public/watchEvent): Watches and returns emitted Event Logs.
- [uninstallFilter](/docs/actions/public/uninstallFilter): Destroys a Filter.
- [getProof](/docs/actions/public/getProof): Returns the account and storage values of the specified account including the Merkle-proof.
- [verifyMessage](/docs/actions/public/verifyMessage): Verifies if a signed message was generated by the provided address.
- [verifyTypedData](/docs/actions/public/verifyTypedData): Verifies a typed data signature
- [prepareTransactionRequest](/docs/actions/wallet/prepareTransactionRequest): Prepares a transaction request for signing.
- [getTransaction](/docs/actions/public/getTransaction): Returns information about a transaction given a hash or block identifier.
- [getTransactionConfirmations](/docs/actions/public/getTransactionConfirmations): Returns the number of blocks passed (confirmations) since the transaction was processed on a block.
- [getTransactionReceipt](/docs/actions/public/getTransactionReceipt): Returns the transaction receipt given a transaction hash.
- [sendRawTransaction](/docs/actions/wallet/sendRawTransaction): Sends a signed transaction to the network
- [waitForTransactionReceipt](/docs/actions/public/waitForTransactionReceipt): Retrieves a Transaction Receipt for a given Transaction hash.
- [watchPendingTransactions](/docs/actions/public/watchPendingTransactions): Watches and returns pending transaction hashes.
- [Introduction to Wallet Actions](/docs/actions/wallet/introduction): A brief introduction to Wallet Actions in viem.
- [getAddresses](/docs/actions/wallet/getAddresses): Returns a list of addresses owned by the wallet or client.
- [requestAddresses](/docs/actions/wallet/requestAddresses): Requests a list of accounts managed by a wallet.
- [watchAsset](/docs/actions/wallet/watchAsset): Requests that the user tracks the token in their wallet.
- [getCallsStatus](/docs/actions/wallet/getCallsStatus): Returns the status of a call batch.
- [getCapabilities](/docs/actions/wallet/getCapabilities): Extract capabilities that a connected wallet supports.
- [sendCalls](/docs/actions/wallet/sendCalls): Sign and broadcast a batch of calls to the network.
- [sendCallsSync](/docs/actions/wallet/sendCallsSync): Sign and broadcast a batch of calls to the network, and waits for the calls to be included in a block.
- [showCallsStatus](/docs/actions/wallet/showCallsStatus): Requests for the wallet to show information about a call batch.
- [waitForCallsStatus](/docs/actions/wallet/waitForCallsStatus): Waits for a call batch to be confirmed & included on a Block.
- [addChain](/docs/actions/wallet/addChain): Adds an EVM chain to the wallet.
- [switchChain](/docs/actions/wallet/switchChain): Switch the target chain in a wallet.
- [signMessage](/docs/actions/wallet/signMessage): Signs a message with the Account's private key.
- [signTypedData](/docs/actions/wallet/signTypedData): Signs typed data with the Account's private key.
- [getPermissions](/docs/actions/wallet/getPermissions): Gets the wallets current permissions.
- [requestPermissions](/docs/actions/wallet/requestPermissions): Requests permissions for a wallet.
- [sendRawTransactionSync](/docs/actions/wallet/sendRawTransactionSync): Sends a signed transaction to the network synchronously
- [sendTransaction](/docs/actions/wallet/sendTransaction): Creates, signs, and sends a new transaction to the network.
- [sendTransactionSync](/docs/actions/wallet/sendTransactionSync): Creates, signs, and sends a new transaction to the network synchronously.
- [signTransaction](/docs/actions/wallet/signTransaction): Signs a transaction.
- [Introduction to Test Actions](/docs/actions/test/introduction): A brief introduction on what Test Actions are in viem.
- [impersonateAccount](/docs/actions/test/impersonateAccount): Impersonate an account or contract address.
- [setBalance](/docs/actions/test/setBalance): Modifies the balance of an account.
- [setCode](/docs/actions/test/setCode): Modifies the bytecode stored at an account's address.
- [setNonce](/docs/actions/test/setNonce): Modifies (overrides) the nonce of an account.
- [setStorageAt](/docs/actions/test/setStorageAt): Writes to a slot of an account's storage.
- [stopImpersonatingAccount](/docs/actions/test/stopImpersonatingAccount): Stop impersonating an account after having previously used impersonateAccount.
- [getAutomine](/docs/actions/test/getAutomine): Returns the automatic mining status of the node.
- [increaseTime](/docs/actions/test/increaseTime): Jump forward in time by the given amount of time, in seconds.
- [mine](/docs/actions/test/mine): Mine a specified number of blocks.
- [removeBlockTimestampInterval](/docs/actions/test/removeBlockTimestampInterval): Removes setBlockTimestampInterval if it exists.
- [setAutomine](/docs/actions/test/setAutomine): Enables or disables the automatic mining of new blocks with each new transaction submitted to the network.
- [setIntervalMining](/docs/actions/test/setIntervalMining): Sets the automatic mining interval (in seconds) of blocks.
- [setBlockTimestampInterval](/docs/actions/test/setBlockTimestampInterval): Sets the block's timestamp interval.
- [setBlockGasLimit](/docs/actions/test/setBlockGasLimit): Sets the block's gas limit.
- [setNextBlockBaseFeePerGas](/docs/actions/test/setNextBlockBaseFeePerGas): Sets the next block's base fee per gas.
- [setNextBlockTimestamp](/docs/actions/test/setNextBlockTimestamp): Sets the next block's timestamp.
- [setCoinbase](/docs/actions/test/setCoinbase): Sets the coinbase address to be used in new blocks.
- [setMinGasPrice](/docs/actions/test/setMinGasPrice): Change the minimum gas price accepted by the network (in wei).
- [reset](/docs/actions/test/reset): Resets the fork back to its original state.
- [setLoggingEnabled](/docs/actions/test/setLoggingEnabled): Enable or disable logging on the test node network.
- [setRpcUrl](/docs/actions/test/setRpcUrl): Sets the backend RPC URL.
- [dumpState](/docs/actions/test/dumpState): Serializes the current state into a savable data blob.
- [loadState](/docs/actions/test/loadState): Adds state previously dumped to the current chain.
- [revert](/docs/actions/test/revert): Revert the state of the blockchain at the current block.
- [snapshot](/docs/actions/test/snapshot): Snapshot the state of the blockchain at the current block.
- [dropTransaction](/docs/actions/test/dropTransaction): Removes a transaction from the mempool.
- [getTxpoolContent](/docs/actions/test/getTxpoolContent): Returns the details of all transactions currently pending for inclusion in the next block(s).
- [getTxpoolStatus](/docs/actions/test/getTxpoolStatus): Returns a summary of all the transactions currently pending for inclusion in the next block(s).
- [inspectTxpool](/docs/actions/test/inspectTxpool): Returns a summary of all the transactions currently pending for inclusion in the next block(s).
- [sendUnsignedTransaction](/docs/actions/test/sendUnsignedTransaction): Executes a transaction regardless of the signature.
- [JSON-RPC Account](/docs/accounts/jsonRpc): A function to create a JSON-RPC Account.
- [Local Accounts (Private Key, Mnemonic, etc)](/docs/accounts/local)
- [privateKeyToAccount](/docs/accounts/local/privateKeyToAccount): A function to create a Private Key Account.
- [mnemonicToAccount](/docs/accounts/local/mnemonicToAccount): A function to create a Mnemonic Account.
- [hdKeyToAccount](/docs/accounts/local/hdKeyToAccount): A function to create a Hierarchical Deterministic (HD) Account.
- [toAccount](/docs/accounts/local/toAccount): A function to create a Custom Account.
- [createNonceManager](/docs/accounts/local/createNonceManager): Creates a Nonce Manager for automatic nonce generation
- [signMessage (Local Account)](/docs/accounts/local/signMessage): Signs a message with the Account's private key.
- [signTransaction (Local Account)](/docs/accounts/local/signTransaction): Signs a transaction with the Account's private key.
- [signTypedData (Local Account)](/docs/accounts/local/signTypedData): Signs typed data with the Account's private key.
- [Chains](/docs/chains/introduction)
- [Fees](/docs/chains/fees): Configure chain-based fee data in Viem
- [Formatters](/docs/chains/formatters): Configure chain-based formatters in Viem
- [Serializers](/docs/chains/serializers): Configure chain-based serializers in Viem
- [Celo](/docs/chains/celo): Integrating with Celo in Viem
- [Getting Started with OP Stack](/op-stack): Getting started with the OP Stack in Viem
- [Getting Started with ZKsync](/zksync): Getting started with the ZKsync in Viem
- [Contract Instances](/docs/contract/getContract): A Contract Instance is a type-safe interface for performing contract-related actions with a specific ABI and address, created by the getContract function.
- [createContractEventFilter](/docs/contract/createContractEventFilter): Creates a Filter to retrieve contract event logs.
- [deployContract](/docs/contract/deployContract): Deploys a contract to the network, given bytecode & constructor arguments.
- [estimateContractGas](/docs/contract/estimateContractGas): Estimates the gas required to successfully execute a contract write function call.
- [getCode](/docs/contract/getCode): Retrieves the bytecode at an address.
- [getContractEvents](/docs/contract/getContractEvents): Returns a list of event logs matching the provided parameters.
- [getStorageAt](/docs/contract/getStorageAt): Returns the value from a storage slot at a given address.
- [multicall](/docs/contract/multicall): Batches up multiple functions on a contract in a single call.
- [readContract](/docs/contract/readContract): Calls a read-only function on a contract, and returns the response.
- [simulateContract](/docs/contract/simulateContract): Simulates & validates a contract interaction.
- [writeContract](/docs/contract/writeContract): Executes a write function on a contract.
- [writeContractSync](/docs/contract/writeContractSync): Executes a write function on a contract synchronously.
- [watchContractEvent](/docs/contract/watchContractEvent): Watches and returns emitted contract event logs.
- [decodeDeployData](/docs/contract/decodeDeployData): Decodes ABI encoded deploy data (bytecode & arguments).
- [decodeErrorResult](/docs/contract/decodeErrorResult): Decodes reverted error from a contract function call.
- [decodeEventLog](/docs/contract/decodeEventLog): Decodes ABI encoded event topics & data.
- [decodeFunctionData](/docs/contract/decodeFunctionData): Decodes ABI encoded data (4 byte selector & arguments) into a function name and arguments.
- [decodeFunctionResult](/docs/contract/decodeFunctionResult): Decodes the result of a function call on a contract.
- [encodeDeployData](/docs/contract/encodeDeployData): Encodes deploy data (bytecode & constructor args) into an ABI encoded value.
- [encodeErrorResult](/docs/contract/encodeErrorResult): Encodes a reverted error from a function call.
- [encodeEventTopics](/docs/contract/encodeEventTopics): Encodes an event (with optional arguments) into filter topics.
- [encodeFunctionData](/docs/contract/encodeFunctionData): Encodes the function name and parameters into an ABI encoded value (4 byte selector & arguments).
- [encodeFunctionResult](/docs/contract/encodeFunctionResult): Encodes structured return data into ABI encoded data.
- [parseEventLogs](/docs/contract/parseEventLogs): Extracts & decodes logs from a set of opaque logs.
- [getEnsAddress](/docs/ens/actions/getEnsAddress): Gets address for ENS name.
- [getEnsAvatar](/docs/ens/actions/getEnsAvatar): Gets the avatar of an ENS name.
- [getEnsName](/docs/ens/actions/getEnsName): Gets primary name for specified address.
- [getEnsResolver](/docs/ens/actions/getEnsResolver): Gets resolver for ENS name.
- [getEnsText](/docs/ens/actions/getEnsText): Gets a text record for specified ENS name.
- [labelhash](/docs/ens/utilities/labelhash): Hashes ENS label.
- [namehash](/docs/ens/utilities/namehash): Hashes ENS name.
- [normalize](/docs/ens/utilities/normalize): Normalizes ENS name to UTS46.
- [verifySiweMessage](/docs/siwe/actions/verifySiweMessage): Verifies EIP-4361 formatted message was signed.
- [createSiweMessage](/docs/siwe/utilities/createSiweMessage): Creates EIP-4361 formatted message.
- [generateSiweNonce](/docs/siwe/utilities/generateSiweNonce): Generates random EIP-4361 nonce.
- [parseSiweMessage](/docs/siwe/utilities/parseSiweMessage): Parses EIP-4361 formatted message into message fields object.
- [validateSiweMessage](/docs/siwe/utilities/validateSiweMessage): Validates EIP-4361 message.
- [decodeAbiParameters](/docs/abi/decodeAbiParameters): Decodes ABI encoded data.
- [encodeAbiParameters](/docs/abi/encodeAbiParameters): Generates ABI encoded data.
- [encodePacked](/docs/abi/encodePacked): Generates ABI encoded data.
- [getAbiItem](/docs/abi/getAbiItem): Retrieves an item from the ABI array.
- [parseAbi](/docs/abi/parseAbi): Parses human-readable ABI into JSON.
- [parseAbiItem](/docs/abi/parseAbiItem): Parses human-readable ABI item (e.g. error, event, function) into ABI item.
- [parseAbiParameter](/docs/abi/parseAbiParameter): Parses human-readable ABI parameter into ABI parameter.
- [parseAbiParameters](/docs/abi/parseAbiParameters): Parses human-readable ABI parameters into ABI parameters.
- [getDelegation](/docs/eip7702/getDelegation): Returns the address an account has delegated to via EIP-7702.
- [prepareAuthorization](/docs/eip7702/prepareAuthorization): Prepares an EIP-7702 Authorization for signing.
- [signAuthorization](/docs/eip7702/signAuthorization): Signs an EIP-7702 Authorization object.
- [hashAuthorization](/docs/eip7702/hashAuthorization): Calculates an Authorization object hash in EIP-7702 format.
- [recoverAuthorizationAddress](/docs/eip7702/recoverAuthorizationAddress): Recovers the original signing address from a signed Authorization object.
- [verifyAuthorization](/docs/eip7702/verifyAuthorization): Verifies that an Authorization object was signed by the provided address.
- [getAddress](/docs/utilities/getAddress): Converts an address into an address that is checksum encoded.
- [getContractAddress](/docs/utilities/getContractAddress): Retrieves a contract address.
- [isAddress](/docs/utilities/isAddress): Checks if the address is valid.
- [isAddressEqual](/docs/utilities/isAddressEqual): Checks if the given addresses (checksummed) are equal.
- [blobsToProofs](/docs/utilities/blobsToProofs): Compute the proofs for a list of blobs and their commitments.
- [blobsToCommitments](/docs/utilities/blobsToCommitments): Compute commitments from a list of blobs.
- [commitmentsToVersionedHashes](/docs/utilities/commitmentsToVersionedHashes): Transform a list of commitments to their versioned hashes.
- [commitmentToVersionedHash](/docs/utilities/commitmentToVersionedHash): Transform a commitment to it's versioned hash.
- [fromBlobs](/docs/utilities/fromBlobs): Transforms blobs into the originating data.
- [sidecarsToVersionedHashes](/docs/utilities/sidecarsToVersionedHashes): Transforms a list of sidecars to their versioned hashes.
- [toBlobs](/docs/utilities/toBlobs): Transforms arbitrary data into blobs.
- [toBlobSidecars](/docs/utilities/toBlobSidecars): Transforms arbitrary data into blob sidecars.
- [extractChain](/docs/utilities/extractChain)
- [concat](/docs/utilities/concat): Concatenates a set of hex values or byte arrays.
- [isBytes](/docs/utilities/isBytes): Checks whether the value is a byte array or not.
- [isHex](/docs/utilities/isHex): Checks whether the value is a hex value or not.
- [pad](/docs/utilities/pad): Pads a hex value or byte array with leading or trailing zeros.
- [slice](/docs/utilities/slice): Returns a section of the hex or byte array given a start/end bytes offset.
- [size](/docs/utilities/size): Retrieves the size of the value (in bytes).
- [trim](/docs/utilities/trim): Trims the leading or trailing zero byte data from a hex value or byte array.
- [fromBytes](/docs/utilities/fromBytes): Decodes a byte array to a string, hex value, boolean or number.
- [fromHex](/docs/utilities/fromHex): Decodes a hex value to a string, number or byte array.
- [fromRlp](/docs/utilities/fromRlp): Decodes a RLP value into a decoded hex value or byte array.
- [toBytes](/docs/utilities/toBytes): Encodes a string, hex value, number or boolean to a byte array.
- [toHex](/docs/utilities/toHex): Encodes a string, number, boolean or byte array to a hex value.
- [toRlp](/docs/utilities/toRlp): Encodes a hex value or byte array into a RLP encoded value.
- [isHash](/docs/utilities/isHash): Checks if a string is a valid 32-byte hex hash.
- [keccak256](/docs/utilities/keccak256): Calculates the Keccak256 hash of a byte array.
- [ripemd160](/docs/utilities/ripemd160): Calculates the Ripemd160 hash of a byte array.
- [sha256](/docs/utilities/sha256): Calculates the Sha256 hash of a byte array.
- [toEventHash](/docs/utilities/toEventHash): Returns the hash (of the event signature) for a given event definition.
- [toEventSelector](/docs/utilities/toEventSelector): Returns the event selector for a given event definition.
- [toEventSignature](/docs/utilities/toEventSignature): Returns the signature for a given event or event definition.
- [toFunctionHash](/docs/utilities/toFunctionHash): Returns the hash (of the function signature) for a given function definition.
- [toFunctionSelector](/docs/utilities/toFunctionSelector): Returns the function selector (4 byte encoding) for a given function definition.
- [toFunctionSignature](/docs/utilities/toFunctionSignature): Returns the signature for a given function definition.
- [setupKzg](/docs/utilities/setupKzg): Sets up and returns a KZG interface.
- [compactSignatureToSignature](/docs/utilities/compactSignatureToSignature): Parses a compact signature into signature format.
- [hashMessage](/docs/utilities/hashMessage): Hashes a message in EIP-191 format.
- [hashTypedData](/docs/utilities/hashTypedData): Hashes EIP-712 typed data.
- [isErc6492Signature](/docs/utilities/isErc6492Signature): Checks whether the signature is in ERC-6492 format.
- [parseCompactSignature](/docs/utilities/parseCompactSignature): Parses a hex formatted compact signature into a structured compact signature.
- [parseErc6492Signature](/docs/utilities/parseErc6492Signature): Parses a hex-formatted ERC-6492 flavoured signature.
- [parseSignature](/docs/utilities/parseSignature): Parses a hex formatted signature into a structured signature.
- [recoverAddress](/docs/utilities/recoverAddress): Recovers the signing address from a hash & signature.
- [recoverMessageAddress](/docs/utilities/recoverMessageAddress): Recovers the signing address from a message & signature.
- [recoverPublicKey](/docs/utilities/recoverPublicKey): Recovers the signing public key from a hash & signature.
- [recoverTransactionAddress](/docs/utilities/recoverTransactionAddress): Recovers the signing address from a transaction & signature.
- [recoverTypedDataAddress](/docs/utilities/recoverTypedDataAddress): Recovers the signing address from EIP-712 typed data & signature.
- [serializeCompactSignature](/docs/utilities/serializeCompactSignature): Serializes a compact signature into hex format.
- [serializeErc6492Signature](/docs/utilities/serializeErc6492Signature): Serializes a ERC-6492 flavoured signature into hex format.
- [serializeSignature](/docs/utilities/serializeSignature): Serializes a structured signature into hex format.
- [signatureToCompactSignature](/docs/utilities/signatureToCompactSignature): Parses a signature into a compact signature.
- [verifyMessage](/docs/utilities/verifyMessage): Verifies if a signed message was generated by the provided address.
- [verifyTypedData](/docs/utilities/verifyTypedData): Verifies a typed data signature
- [parseTransaction](/docs/utilities/parseTransaction): Converts a serialized transaction to a structured transaction.
- [serializeTransaction](/docs/utilities/serializeTransaction): Serializes a transaction object.
- [formatEther](/docs/utilities/formatEther): Converts numerical wei to a string representation of ether.
- [formatGwei](/docs/utilities/formatGwei): Converts numerical wei to a string representation of gwei.
- [formatUnits](/docs/utilities/formatUnits): Divides a number by a given exponent of base 10, and formats it into a string representation of the number.
- [parseEther](/docs/utilities/parseEther): Converts a string representation of ether to numerical wei.
- [parseGwei](/docs/utilities/parseGwei): Converts a string representation of gwei to numerical wei.
- [parseUnits](/docs/utilities/parseUnits): Multiplies a string representation of a number by a given exponent of base 10.
- [Terms](/docs/glossary/terms): Glossary of Terms in viem.
- [Types](/docs/glossary/types): Glossary of Types in viem.
- [Errors](/docs/glossary/errors): Glossary of Errors in viem.
- [Getting Started with Account Abstraction](/account-abstraction): Getting Started with Account Abstraction in Viem
- [Sending User Operations](/account-abstraction/guides/sending-user-operations)
- [Bundler Client](/account-abstraction/clients/bundler): A function to create a Bundler Client.
- [Paymaster Client](/account-abstraction/clients/paymaster): A function to create a Paymaster Client.
- [Smart Accounts](/account-abstraction/accounts/smart)
- [Coinbase Smart Wallet](/account-abstraction/accounts/smart/toCoinbaseSmartAccount)
- [MetaMask Smart Account](/account-abstraction/accounts/smart/toMetaMaskSmartAccount)
- [Thirdweb Smart Account](/account-abstraction/accounts/smart/toThirdwebSmartAccount)
- [Nexus Smart Account](/account-abstraction/accounts/smart/toNexusSmartAccount)
- [Light Smart Account](/account-abstraction/accounts/smart/toLightSmartAccount)
- [Kernel (ZeroDev) Smart Account](/account-abstraction/accounts/smart/toEcdsaKernelSmartAccount)
- [Safe Smart Account](/account-abstraction/accounts/smart/toSafeSmartAccount)
- [Simple Smart Account](/account-abstraction/accounts/smart/toSimpleSmartAccount)
- [Solady Smart Account](/account-abstraction/accounts/smart/toSoladySmartAccount)
- [Trust Smart Account](/account-abstraction/accounts/smart/toTrustSmartAccount)
- [toSmartAccount](/account-abstraction/accounts/smart/toSmartAccount): Creates a Smart Account with a provided Account Implementation.
- [signMessage (Smart Account)](/account-abstraction/accounts/smart/signMessage)
- [signTypedData (Smart Account)](/account-abstraction/accounts/smart/signTypedData)
- [signUserOperation (Smart Account)](/account-abstraction/accounts/smart/signUserOperation)
- [WebAuthn Account](/account-abstraction/accounts/webauthn)
- [toWebAuthnAccount](/account-abstraction/accounts/webauthn/toWebAuthnAccount)
- [createWebAuthnCredential](/account-abstraction/accounts/webauthn/createWebAuthnCredential)
- [estimateUserOperationGas](/account-abstraction/actions/bundler/estimateUserOperationGas): Estimates the gas values for a User Operation to be executed successfully.
- [getChainId](/account-abstraction/actions/bundler/getChainId): Returns the chain ID associated with the bundler
- [getSupportedEntryPoints](/account-abstraction/actions/bundler/getSupportedEntryPoints): Returns the EntryPoints that the bundler supports.
- [getUserOperation](/account-abstraction/actions/bundler/getUserOperation): Retrieves information about a User Operation given a hash.
- [getUserOperationReceipt](/account-abstraction/actions/bundler/getUserOperationReceipt): Returns the User Operation receipt given a User Operation hash.
- [prepareUserOperation](/account-abstraction/actions/bundler/prepareUserOperation): Prepares a User Operation for execution and fills in missing properties.
- [sendUserOperation](/account-abstraction/actions/bundler/sendUserOperation): Broadcasts a User Operation to the Bundler.
- [waitForUserOperationReceipt](/account-abstraction/actions/bundler/waitForUserOperationReceipt): Waits for the User Operation to be included on a Block, and then returns the User Operation receipt.
- [getPaymasterData](/account-abstraction/actions/paymaster/getPaymasterData): Retrieves paymaster-related properties to be used for the User Operation.
- [getPaymasterStubData](/account-abstraction/actions/paymaster/getPaymasterStubData): Retrieves paymaster-related properties to be used for the User Operation.
- [Getting Started](/experimental): Getting started with experimental features in Viem
- [Extending Client with ERC-7715](/experimental/erc7715/client): Setting up your Viem Client
- [grantPermissions](/experimental/erc7715/grantPermissions): Request permissions from a wallet to perform actions on behalf of a user.
- [Extending Client with ERC-7739 Actions](/experimental/erc7739/client): Setting up your Viem Client
- [signMessage](/experimental/erc7739/signMessage): Signs a personal sign message via Solady's ERC-1271 format.
- [signTypedData](/experimental/erc7739/signTypedData): Signs typed data via Solady's ERC-1271 format.
- [hashMessage](/experimental/erc7739/hashMessage): Hashes an EIP-191 message via ERC-7739 format.
- [hashTypedData](/experimental/erc7739/hashTypedData): Hashes EIP-712 typed data via Solady's ERC-1271 format.
- [wrapTypedDataSignature](/experimental/erc7739/wrapTypedDataSignature)
- [Extending Client with ERC-7811 Actions](/experimental/erc7811/client): Setting up your Viem Client
- [getAssets](/experimental/erc7811/getAssets): Requests to get assets for an account from a Wallet.
- [Extending Client with ERC-7821 Actions](/experimental/erc7821/client): Setting up your Viem Client
- [execute](/experimental/erc7821/execute): Executes call(s) using the `execute` function on an ERC-7821-compatible contract.
- [executeBatches](/experimental/erc7821/executeBatches): Executes batches of call(s) on an ERC-7821-compatible contract.
- [supportsExecutionMode](/experimental/erc7821/supportsExecutionMode): Checks if the contract supports the ERC-7821 execution mode.
- [Extending Client with ERC-7846 Actions](/experimental/erc7846/client): Setting up your Viem Client
- [connect](/experimental/erc7846/connect): Requests to connect Account(s).
- [disconnect](/experimental/erc7846/disconnect): Requests to disconnect account(s).
- [Extending Client with ERC-7895 Actions](/experimental/erc7895/client): Setting up your Viem Client
- [addSubAccount](/experimental/erc7895/addSubAccount): Requests to add a Sub Account.
- [Client](/op-stack/client): Setting up your Viem Client with the OP Stack
- [Chains](/op-stack/chains)
- [Deposits](/op-stack/guides/deposits)
- [Withdrawals](/op-stack/guides/withdrawals)
- [buildDepositTransaction](/op-stack/actions/buildDepositTransaction): Builds & prepares parameters for a deposit transaction to be initiated on an L1 and executed on the L2.
- [buildProveWithdrawal](/op-stack/actions/buildProveWithdrawal): Builds the transaction that proves a withdrawal was initiated on an L2.
- [estimateContractL1Fee](/op-stack/actions/estimateContractL1Fee): Estimates the L1 fee to execute an L2 contract write.
- [estimateContractL1Gas](/op-stack/actions/estimateContractL1Gas): Estimates the L1 gas to execute an L2 contract write.
- [estimateContractTotalFee](/op-stack/actions/estimateContractTotalFee): Estimates the total (L1 + L2) fee to execute an L2 contract write.
- [estimateContractTotalGas](/op-stack/actions/estimateContractTotalGas): Estimates the total (L1 + L2) gas to execute an L2 contract write.
- [estimateInitiateWithdrawalGas](/op-stack/actions/estimateInitiateWithdrawalGas): Estimates gas required to initiate a withdrawal on an L2 to the L1.
- [estimateL1Fee](/op-stack/actions/estimateL1Fee): Estimates the L1 fee to execute an L2 transaction.
- [estimateL1Gas](/op-stack/actions/estimateL1Gas): Estimates the amount of L1 gas required to execute an L2 transaction
- [estimateOperatorFee](/op-stack/actions/estimateOperatorFee): Estimates the operator fee to execute an L2 transaction.
- [estimateTotalFee](/op-stack/actions/estimateTotalFee): Estimates the L1 + L2 + operator fee to execute an L2 transaction.
- [estimateTotalGas](/op-stack/actions/estimateTotalGas): Estimates the amount of L1 + L2 gas required to execute an L2 transaction
- [initiateWithdrawal](/op-stack/actions/initiateWithdrawal): Initiates a withdrawal on an L2 to the L1.
- [buildInitiateWithdrawal](/op-stack/actions/buildInitiateWithdrawal): Builds & prepares parameters for a withdrawal to be initiated on an L2.
- [estimateDepositTransactionGas](/op-stack/actions/estimateDepositTransactionGas): Estimates gas to initiate a deposit transaction on an L1, which executes a transaction on an L2.
- [estimateFinalizeWithdrawalGas](/op-stack/actions/estimateFinalizeWithdrawalGas): Estimates gas required to finalize a withdrawal that occurred on an L2.
- [estimateProveWithdrawalGas](/op-stack/actions/estimateProveWithdrawalGas): Estimates gas required to prove a withdrawal that occurred on an L2.
- [getGame](/op-stack/actions/getGame): Retrieves a valid dispute game on an L2 that occurred after a provided L2 block number.
- [getGames](/op-stack/actions/getGames): Retrieves dispute games for an L2.
- [getL2Output](/op-stack/actions/getL2Output): Retrieves the first L2 output proposal that occurred after a provided block number.
- [getTimeToFinalize](/op-stack/actions/getTimeToFinalize): Returns the time until the withdrawal transaction can be finalized.
- [getTimeToNextGame](/op-stack/actions/getTimeToNextGame): Returns the time until the next L2 dispute game is submitted.
- [getTimeToNextL2Output](/op-stack/actions/getTimeToNextL2Output): Builds & prepares parameters for a withdrawal to be initiated on an L2.
- [getTimeToProve](/op-stack/actions/getTimeToProve): Gets time until the L2 withdrawal transaction is ready to be proved.
- [getWithdrawalStatus](/op-stack/actions/getWithdrawalStatus): Returns the current status of a withdrawal.
- [waitForNextGame](/op-stack/actions/waitForNextGame): Waits for the next dispute game to be submitted.
- [waitForNextL2Output](/op-stack/actions/waitForNextL2Output): Waits for the next L2 output (after the provided block number) to be submitted.
- [waitToFinalize](/op-stack/actions/waitToFinalize): Waits until the withdrawal transaction can be finalized.
- [waitToProve](/op-stack/actions/waitToProve): Waits until the L2 withdrawal transaction is ready to be proved.
- [depositTransaction](/op-stack/actions/depositTransaction): Initiates a deposit transaction on an L1, which executes a transaction on an L2.
- [finalizeWithdrawal](/op-stack/actions/finalizeWithdrawal): Finalizes a withdrawal that occurred on an L2.
- [proveWithdrawal](/op-stack/actions/proveWithdrawal): Proves a withdrawal that occurred on an L2.
- [extractTransactionDepositedLogs](/op-stack/utilities/extractTransactionDepositedLogs): Extracts "TransactionDeposited" logs from an opaque array of logs.
- [extractWithdrawalMessageLogs](/op-stack/utilities/extractWithdrawalMessageLogs): Extracts "MessagePassed" logs from a withdrawal initialization from an opaque array of logs.
- [getL2TransactionHash](/op-stack/utilities/getL2TransactionHash): Computes the L2 transaction hash from an L1 "TransactionDeposited" log.
- [getL2TransactionHashes](/op-stack/utilities/getL2TransactionHashes): Computes the L2 transaction hashes from an array of L1 "TransactionDeposited" logs.
- [getWithdrawals](/op-stack/utilities/getWithdrawals): Gets the messages from a withdrawal initialization.
- [getSourceHash](/op-stack/utilities/getSourceHash): Computes source hash of a deposit transaction.
- [opaqueDataToDepositData](/op-stack/utilities/opaqueDataToDepositData): Converts opaque data into a structured deposit data format.
- [getWithdrawalHashStorageSlot](/op-stack/utilities/getWithdrawalHashStorageSlot): Computes the withdrawal hash storage slot to be used when proving a withdrawal.
- [parseTransaction (OP Stack)](/op-stack/utilities/parseTransaction): Converts a serialized transaction to a structured transaction, with support for OP Stack.
- [serializeTransaction (OP Stack)](/op-stack/utilities/serializeTransaction): Serializes a transaction object, with support for OP Stack.
- [USDC (Circle)](/circle-usdc)
- [Integrating USDC into Your Application](/circle-usdc/guides/integrating)
- [Cross-Chain USDC Transfers](/circle-usdc/guides/cross-chain)
- [Cross Chain USDC Transfers with Bridge Kit](/circle-usdc/guides/bridge-kit)
- [Cross Chain USDC Transfers (CCTP Integration)](/circle-usdc/guides/manual-cctp)
- [Gasless USDC Transfers with Circle Paymaster](/circle-usdc/guides/paymaster)
- [Circle Smart Account](/circle-usdc/guides/smart-account)
- [Getting Started](/tempo/)
- [Chains](/tempo/chains)
- [Guides](/tempo/guides/): Task-oriented guides for building common Tempo features with Viem.
- [Create an Account](/tempo/guides/accounts/create): Create a Tempo Account from a private key, passkey, or device-bound key, and use it with a Viem client.
- [Sign In with a Passkey](/tempo/guides/accounts/passkeys): Create and restore WebAuthn passkey accounts for non-custodial browser sign-in on Tempo.
- [Use the Tempo Accounts SDK](/tempo/guides/accounts/accounts-sdk): Connect a Tempo account with the Tempo Accounts SDK and drive it with Viem and Tempo Actions.
- [Tempo Transactions](/tempo/transactions): Send your first Tempo Transaction with Viem, and discover the payment-native features they unlock.
- [Batch Calls](/tempo/guides/batch-calls): Bundle multiple operations into a single atomic Tempo Transaction.
- [Concurrent Transactions](/tempo/guides/concurrent-transactions): Send multiple Tempo Transactions in parallel using concurrent nonces.
- [Scheduled Transactions](/tempo/guides/scheduled-transactions): Sign a Tempo Transaction now and define when it can execute onchain.
- [Pay Fees in a Stablecoin](/tempo/guides/pay-fees): Pay Tempo transaction fees in any USD-denominated TIP-20 stablecoin.
- [Sponsor User Fees](/tempo/guides/sponsor-fees): Sponsor transaction fees on behalf of your users for a gasless experience on Tempo.
- [Multisig Transactions](/tempo/guides/multisig-transactions): Send a Tempo Transaction from a native multisig account by collecting owner approvals.
- [Create a TIP-20 Token](/tempo/guides/create-token): Deploy a TIP-20 stablecoin on Tempo and read its onchain metadata.
- [Mint & Burn Tokens](/tempo/guides/manage-token-balances): Mint and burn TIP-20 token supply on Tempo.
- [Transfer Tokens](/tempo/guides/transfer-tokens): Transfer TIP-20 tokens, authorize spenders, and read balances on Tempo.
- [Manage Token Roles & Supply](/tempo/guides/manage-token-roles): Grant and revoke TIP-20 roles, cap supply, and pause transfers on Tempo.
- [Configure Transfer Policies](/tempo/guides/transfer-policies): Restrict which accounts can send or receive a TIP-20 token with a transfer policy.
- [Distribute Token Rewards](/tempo/guides/token-rewards): Distribute rewards to TIP-20 holders and let them claim their share on Tempo.
- [Access Keys](/tempo/guides/access-keys/): Delegate signing to a secondary key with access keys, with spending limits, scopes, admin keys, and signature verification.
- [Authorize Access Keys](/tempo/guides/access-keys/authorize): Authorize an access key to sign transactions on behalf of an account, and defer authorization to a transaction.
- [Set Permissions & Limits](/tempo/guides/access-keys/permissions): Restrict an access key with an expiry, per-token spending limits, recurring limits, and call scopes.
- [Manage Access Keys](/tempo/guides/access-keys/manage): Update spending limits, revoke access keys, and inspect their onchain metadata and remaining limits.
- [Admin Access Keys](/tempo/guides/access-keys/admin): Authorize unrestricted admin access keys that can manage an account's other keys, and check admin status.
- [Witnesses](/tempo/guides/access-keys/witnesses): Bind a witness to a key authorization and burn it to revoke signed-but-not-yet-submitted authorizations.
- [Verify Signatures](/tempo/guides/access-keys/verify): Verify that a keychain signature was produced by an active access key for the expected account.
- [Stablecoin Exchange](/tempo/guides/stablecoin-exchange/): Trade stablecoins on Tempo's enshrined DEX, manage orders and balances, create trading pairs, and provide Fee AMM liquidity.
- [Swap Stablecoins](/tempo/guides/stablecoin-exchange/swap): Quote and swap one USD-denominated TIP-20 stablecoin for another on Tempo's enshrined DEX.
- [Place & Manage Orders](/tempo/guides/stablecoin-exchange/orders): Place limit and flip orders on Tempo's Stablecoin DEX, then read, inspect, and cancel them.
- [Manage Exchange Balances](/tempo/guides/stablecoin-exchange/balances): Read your internal Stablecoin DEX balances and withdraw them back to your Tempo wallet.
- [Create a Trading Pair](/tempo/guides/stablecoin-exchange/create-pair): Create a new trading pair on Tempo's Stablecoin DEX and configure a token's quote token.
- [Provide Fee AMM Liquidity](/tempo/guides/stablecoin-exchange/fee-amm-liquidity): Add and remove liquidity in Tempo's Fee AMM so stablecoin fee conversions can settle.
- [Virtual Addresses](/tempo/guides/virtual-addresses/): Register a master address and accept TIP-20 deposits at unlimited virtual addresses that forward to you without sweeps.
- [Register a Master Address](/tempo/guides/virtual-addresses/register): Mine a TIP-1022 proof-of-work salt and register a master address for virtual-address deposit forwarding.
- [Resolve & Accept Payments](/tempo/guides/virtual-addresses/resolve): Derive per-customer virtual deposit addresses offchain and resolve them to your master wallet.
- [Receive Policies](/tempo/guides/receive-policies/): Control who can pay you on Tempo with receive policies, validate inbound transfers, and recover blocked funds.
- [Set a Receive Policy](/tempo/guides/receive-policies/set): Set and read an account's receive policy to control which senders and tokens it accepts.
- [Validate Transfers](/tempo/guides/receive-policies/validate): Check whether a TIP-20 transfer would be accepted by a recipient's receive policy before sending it.
- [Handle Blocked Funds](/tempo/guides/receive-policies/blocked): Read, claim, and burn TIP-20 funds that a receive policy blocked from being credited.
- [Payment Channels](/tempo/guides/payment-channels/): Open funded TIP-20 channels on Tempo, stream off-chain vouchers, and settle or close to move funds onchain.
- [Open & Fund a Channel](/tempo/guides/payment-channels/open): Open and fund a TIP-20 payment channel on Tempo, top it up, and read its onchain state.
- [Send & Settle Vouchers](/tempo/guides/payment-channels/vouchers): Sign off-chain TIP-20 channel vouchers as the payer and settle them onchain as the payee.
- [Close & Withdraw](/tempo/guides/payment-channels/close): Close a TIP-20 payment channel from either side and withdraw the remaining deposit on Tempo.
- [Private Zones](/tempo/guides/zones/): Connect to private Tempo Zones, deposit funds into them, and withdraw back to Tempo Mainnet.
- [Connect to a Zone](/tempo/guides/zones/connect): Connect a Viem client to a private Tempo Zone and authenticate with an authorization token.
- [Deposit to a Zone](/tempo/guides/zones/deposit): Deposit TIP-20 stablecoins from Tempo Mainnet into a private Tempo Zone.
- [Withdraw from a Zone](/tempo/guides/zones/withdraw): Withdraw TIP-20 stablecoins from a private Tempo Zone back to Tempo Mainnet.
- [Accounts](/tempo/accounts/)
- [Account.fromSecp256k1](/tempo/accounts/account.fromSecp256k1)
- [Account.fromP256](/tempo/accounts/account.fromP256)
- [Account.fromWebAuthnP256](/tempo/accounts/account.fromWebAuthnP256)
- [Account.fromWebCryptoP256](/tempo/accounts/account.fromWebCryptoP256)
- [Account.fromMultisig](/tempo/accounts/account.fromMultisig)
- [Overview](/tempo/actions/)
- [accessKey.authorize](/tempo/actions/accessKey.authorize)
- [accessKey.burnWitness](/tempo/actions/accessKey.burnWitness)
- [accessKey.getMetadata](/tempo/actions/accessKey.getMetadata)
- [accessKey.getRemainingLimit](/tempo/actions/accessKey.getRemainingLimit)
- [accessKey.isAdmin](/tempo/actions/accessKey.isAdmin)
- [accessKey.isWitnessBurned](/tempo/actions/accessKey.isWitnessBurned)
- [accessKey.revoke](/tempo/actions/accessKey.revoke)
- [accessKey.signAuthorization](/tempo/actions/accessKey.signAuthorization)
- [accessKey.updateLimit](/tempo/actions/accessKey.updateLimit)
- [accessKey.verifyHash](/tempo/actions/accessKey.verifyHash)
- [accessKey.watchAdminAuthorized](/tempo/actions/accessKey.watchAdminAuthorized)
- [accessKey.watchWitness](/tempo/actions/accessKey.watchWitness)
- [accessKey.watchWitnessBurned](/tempo/actions/accessKey.watchWitnessBurned)
- [amm.burn](/tempo/actions/amm.burn)
- [amm.getLiquidityBalance](/tempo/actions/amm.getLiquidityBalance)
- [amm.getPool](/tempo/actions/amm.getPool)
- [amm.mint](/tempo/actions/amm.mint)
- [amm.rebalanceSwap](/tempo/actions/amm.rebalanceSwap)
- [amm.watchBurn](/tempo/actions/amm.watchBurn)
- [amm.watchMint](/tempo/actions/amm.watchMint)
- [amm.watchRebalanceSwap](/tempo/actions/amm.watchRebalanceSwap)
- [channel.close](/tempo/actions/channel.close)
- [channel.getStates](/tempo/actions/channel.getStates)
- [channel.open](/tempo/actions/channel.open)
- [channel.requestClose](/tempo/actions/channel.requestClose)
- [channel.settle](/tempo/actions/channel.settle)
- [channel.signVoucher](/tempo/actions/channel.signVoucher)
- [channel.topUp](/tempo/actions/channel.topUp)
- [channel.withdraw](/tempo/actions/channel.withdraw)
- [fee.getUserToken](/tempo/actions/fee.getUserToken)
- [fee.setUserToken](/tempo/actions/fee.setUserToken)
- [fee.watchSetUserToken](/tempo/actions/fee.watchSetUserToken)
- [nonce.getNonce](/tempo/actions/nonce.getNonce)
- [nonce.watchNonceIncremented](/tempo/actions/nonce.watchNonceIncremented)
- [policy.create](/tempo/actions/policy.create)
- [policy.getData](/tempo/actions/policy.getData)
- [policy.isAuthorized](/tempo/actions/policy.isAuthorized)
- [policy.modifyBlacklist](/tempo/actions/policy.modifyBlacklist)
- [policy.modifyWhitelist](/tempo/actions/policy.modifyWhitelist)
- [policy.setAdmin](/tempo/actions/policy.setAdmin)
- [policy.watchAdminUpdated](/tempo/actions/policy.watchAdminUpdated)
- [policy.watchBlacklistUpdated](/tempo/actions/policy.watchBlacklistUpdated)
- [policy.watchCreate](/tempo/actions/policy.watchCreate)
- [policy.watchWhitelistUpdated](/tempo/actions/policy.watchWhitelistUpdated)
- [receivePolicy.burn](/tempo/actions/receivePolicy.burn)
- [receivePolicy.claim](/tempo/actions/receivePolicy.claim)
- [receivePolicy.get](/tempo/actions/receivePolicy.get)
- [receivePolicy.getBlockedBalance](/tempo/actions/receivePolicy.getBlockedBalance)
- [receivePolicy.set](/tempo/actions/receivePolicy.set)
- [receivePolicy.validate](/tempo/actions/receivePolicy.validate)
- [receivePolicy.watchBlocked](/tempo/actions/receivePolicy.watchBlocked)
- [receivePolicy.watchBurned](/tempo/actions/receivePolicy.watchBurned)
- [receivePolicy.watchClaimed](/tempo/actions/receivePolicy.watchClaimed)
- [receivePolicy.watchUpdated](/tempo/actions/receivePolicy.watchUpdated)
- [faucet.fund](/tempo/actions/faucet.fund)
- [reward.claim](/tempo/actions/reward.claim)
- [reward.distribute](/tempo/actions/reward.distribute)
- [reward.getGlobalRewardPerToken](/tempo/actions/reward.getGlobalRewardPerToken)
- [reward.getPendingRewards](/tempo/actions/reward.getPendingRewards)
- [reward.getUserRewardInfo](/tempo/actions/reward.getUserRewardInfo)
- [reward.setRecipient](/tempo/actions/reward.setRecipient)
- [reward.watchRewardDistributed](/tempo/actions/reward.watchRewardDistributed)
- [reward.watchRewardRecipientSet](/tempo/actions/reward.watchRewardRecipientSet)
- [simulate.simulateBlocks](/tempo/actions/simulate.simulateBlocks)
- [simulate.simulateCalls](/tempo/actions/simulate.simulateCalls)
- [dex.buy](/tempo/actions/dex.buy)
- [dex.cancel](/tempo/actions/dex.cancel)
- [dex.cancelStale](/tempo/actions/dex.cancelStale)
- [dex.createPair](/tempo/actions/dex.createPair)
- [dex.getBalance](/tempo/actions/dex.getBalance)
- [dex.getBuyQuote](/tempo/actions/dex.getBuyQuote)
- [dex.getOrder](/tempo/actions/dex.getOrder)
- [dex.getTickLevel](/tempo/actions/dex.getTickLevel)
- [dex.getSellQuote](/tempo/actions/dex.getSellQuote)
- [dex.place](/tempo/actions/dex.place)
- [dex.placeFlip](/tempo/actions/dex.placeFlip)
- [dex.sell](/tempo/actions/dex.sell)
- [dex.watchFlipOrderPlaced](/tempo/actions/dex.watchFlipOrderPlaced)
- [dex.watchOrderCancelled](/tempo/actions/dex.watchOrderCancelled)
- [dex.watchOrderFilled](/tempo/actions/dex.watchOrderFilled)
- [dex.watchOrderPlaced](/tempo/actions/dex.watchOrderPlaced)
- [dex.withdraw](/tempo/actions/dex.withdraw)
- [token.approve](/tempo/actions/token.approve)
- [token.burn](/tempo/actions/token.burn)
- [token.burnBlocked](/tempo/actions/token.burnBlocked)
- [token.changeTransferPolicy](/tempo/actions/token.changeTransferPolicy)
- [token.create](/tempo/actions/token.create)
- [token.getAllowance](/tempo/actions/token.getAllowance)
- [token.getBalance](/tempo/actions/token.getBalance)
- [token.getMetadata](/tempo/actions/token.getMetadata)
- [token.grantRoles](/tempo/actions/token.grantRoles)
- [token.hasRole](/tempo/actions/token.hasRole)
- [token.mint](/tempo/actions/token.mint)
- [token.pause](/tempo/actions/token.pause)
- [token.renounceRoles](/tempo/actions/token.renounceRoles)
- [token.revokeRoles](/tempo/actions/token.revokeRoles)
- [token.setRoleAdmin](/tempo/actions/token.setRoleAdmin)
- [token.setSupplyCap](/tempo/actions/token.setSupplyCap)
- [token.transfer](/tempo/actions/token.transfer)
- [token.unpause](/tempo/actions/token.unpause)
- [token.watchAdminRole](/tempo/actions/token.watchAdminRole)
- [token.watchApprove](/tempo/actions/token.watchApprove)
- [token.watchBurn](/tempo/actions/token.watchBurn)
- [token.watchCreate](/tempo/actions/token.watchCreate)
- [token.watchMint](/tempo/actions/token.watchMint)
- [token.watchRole](/tempo/actions/token.watchRole)
- [token.watchTransfer](/tempo/actions/token.watchTransfer)
- [validator.add](/tempo/actions/validator.add)
- [validator.changeOwner](/tempo/actions/validator.changeOwner)
- [validator.changeStatus](/tempo/actions/validator.changeStatus)
- [validator.get](/tempo/actions/validator.get)
- [validator.getByIndex](/tempo/actions/validator.getByIndex)
- [validator.getCount](/tempo/actions/validator.getCount)
- [validator.getNextFullDkgCeremony](/tempo/actions/validator.getNextFullDkgCeremony)
- [validator.getOwner](/tempo/actions/validator.getOwner)
- [validator.list](/tempo/actions/validator.list)
- [validator.setNextFullDkgCeremony](/tempo/actions/validator.setNextFullDkgCeremony)
- [validator.update](/tempo/actions/validator.update)
- [virtualAddress.getMasterAddress](/tempo/actions/virtualAddress.getMasterAddress)
- [virtualAddress.registerMaster](/tempo/actions/virtualAddress.registerMaster)
- [virtualAddress.resolve](/tempo/actions/virtualAddress.resolve)
- [wallet.deposit](/tempo/actions/wallet.deposit)
- [wallet.transfer](/tempo/actions/wallet.transfer)
- [wallet.swap](/tempo/actions/wallet.swap)
- [zone.deposit](/tempo/actions/zone.deposit)
- [zone.encryptedDeposit](/tempo/actions/zone.encryptedDeposit)
- [zone.getAuthorizationTokenInfo](/tempo/actions/zone.getAuthorizationTokenInfo)
- [zone.getDepositStatus](/tempo/actions/zone.getDepositStatus)
- [zone.getWithdrawalFee](/tempo/actions/zone.getWithdrawalFee)
- [zone.getZoneInfo](/tempo/actions/zone.getZoneInfo)
- [zone.requestVerifiableWithdrawal](/tempo/actions/zone.requestVerifiableWithdrawal)
- [zone.requestWithdrawal](/tempo/actions/zone.requestWithdrawal)
- [zone.signAuthorizationToken](/tempo/actions/zone.signAuthorizationToken)
- [withRelay](/tempo/transports/withRelay)
- [TempoAddress.format](/tempo/utilities/TempoAddress.format)
- [TempoAddress.parse](/tempo/utilities/TempoAddress.parse)
- [TempoAddress.validate](/tempo/utilities/TempoAddress.validate)
- [Storage.defaultStorage](/tempo/utilities/Storage.defaultStorage)
- [Storage.from](/tempo/utilities/Storage.from)
- [Storage.memory](/tempo/utilities/Storage.memory)
- [Storage.session](/tempo/utilities/Storage.session)
- [Client](/zksync/client): Setting up your ZKsync Viem Client
- [Chains](/zksync/chains)
- [toSinglesigSmartAccount (ZKsync)](/zksync/accounts/toSinglesigSmartAccount): Creates a single-signature ZKsync Smart Account
- [toMultisigSmartAccount (ZKsync)](/zksync/accounts/toMultisigSmartAccount): Creates a multi-signature ZKsync Smart Account
- [toSmartAccount (ZKsync)](/zksync/accounts/toSmartAccount): Creates a ZKsync Smart Account
- [deployContract](/zksync/actions/deployContract): Deploys a contract to the network, given bytecode & constructor arguments by using EIP712 transaction.
- [sendTransaction](/zksync/actions/sendTransaction): Creates, signs, and sends a new transaction to the network, with EIP712 transaction support.
- [signTransaction](/zksync/actions/signTransaction): Signs a transaction, with EIP712 transaction support.
- [writeContract](/zksync/actions/writeContract): Executes a write function on a contract, with EIP712 transaction support.
- [estimateGasL1ToL2](/zksync/actions/estimateGasL1ToL2): Returns an estimated gas for L1 to L2 execution.
- [getBlockDetails](/zksync/actions/getBlockDetails): Returns additional ZKsync-specific information about the L2 block.
- [getBridgehubContractAddress](/zksync/actions/getBridgehubContractAddress): Returns the Bridgehub smart contract address.
- [getDefaultBridgeAddresses](/zksync/actions/getDefaultBridgeAddress): Returns the addresses of the default ZKsync Era bridge contracts on both L1 and L2.
- [getGasPerPubData](/zksync/actions/getGasPerPubData): Returns the scaled gas per pubdata limit for the currently open batch.
- [getL1BatchDetails](/zksync/actions/getL1BatchDetails): Returns data pertaining to a given batch.
- [getL1BatchBlockRange](/zksync/actions/getL1BatchBlockRange): Returns the range of blocks contained within a batch given by batch number.
- [getL1BatchNumber](/zksync/actions/getL1BatchNumber): Returns the latest L1 batch number.
- [getL1TokenAddress](/zksync/actions/getL1TokenAddress): Returns the L1 token address equivalent for a L2 token address as they are not equal.
- [getL2TokenAddress](/zksync/actions/getL2TokenAddress): Returns the L2 token address equivalent for a L1 token address as they are not equal.
- [getLogProof](/zksync/actions/getLogProof): Given a transaction hash, and an index of the L2 to L1 log produced within the transaction, it returns the proof for the corresponding L2 to L1 log.
- [getTransactionDetails](/zksync/actions/getTransactionDetails): Returns data from a specific transaction given by the transaction hash.
- [estimateFee](/zksync/actions/estimateFee): Returns an estimated Fee for requested transaction.
- [getAllBalances](/zksync/actions/getAllBalances): Returns all known balances for a given account.
- [getBaseTokenL1Address](/zksync/actions/getBaseTokenL1Address): Returns the base token L1 address.
- [getL1ChainId](/zksync/actions/getL1ChainId): Returns the Chain Id of underlying L1 network.
- [getMainContractAddress](/zksync/actions/getMainContractAddress): Returns the address of a Main ZKsync Contract.
- [getRawBlockTransaction](/zksync/actions/getRawBlockTransactions): Returns data of transactions in a block.
- [getTestnetPaymasterAddress (depreated)](/zksync/actions/getTestnetPaymasterAddress): Returns the address of a Paymaster on a Testnet.
- [getL1Allowance](/zksync/actions/getL1Allowance): Determines the amount of approved tokens for a specific L1 bridge.
- [getL1Balance](/zksync/actions/getL1Balance): Returns the amount of the token held by the account on the L1 network.
- [getL1TokenBalance](/zksync/actions/getL1TokenBalance): Retrieve the token balance held by the contract on L1.
- [isWithdrawalFinalized](/zksync/actions/isWithdrawalFinalized): Returns whether the withdrawal transaction is finalized on the L1 network.
- [withdraw](/zksync/actions/withdraw): Initiates the withdrawal process which withdraws ETH or any ERC20 token from the associated account on L2 network to the target account on L1 network.
- [requestExecute](/zksync/actions/requestExecute): Requests execution of a L2 transaction from L1.
- [finalizeWithdrawal](/zksync/actions/finalizeWithdrawal): Proves the inclusion of the `L2->L1` withdrawal message.
- [deposit](/zksync/actions/deposit): Transfers the specified token from the associated account on the L1 network to the target account on the L2 network.
- [claimFailedDeposit](/zksync/actions/claimFailedDeposit): Withdraws funds from the initiated deposit, which failed when finalizing on L2.
- [getApprovalBasedPaymasterInput](/zksync/utilities/paymaster/getApprovalBasedPaymasterInput): Returns encoded formatted approval-based paymaster params.
- [getGeneralPaymasterInput](/zksync/utilities/paymaster/getGeneralPaymasterInput): Returns encoded formatted general-based paymaster params.
- [getL2HashFromPriorityOp](/zksync/utilities/bridge/getL2HashFromPriorityOp): Returns the hash of the L2 priority operation from a given L1 transaction receipt.
- [parseEip712Transaction](/zksync/utilities/parseEip712Transaction): Parse EIP712 transaction.
- [Viem · TypeScript Interface for Ethereum](/index)
- [Client](/experimental/client): Setting up your Viem Client
- [ZKsync](/docs/chains/zksync): Integrating with ZKsync in Viem
- [defineKzg](/docs/utilities/defineKzg): Defines a KZG interface.
- [fromBase58](/docs/utilities/fromBase58)
- [fromBase64](/docs/utilities/fromBase64)
- [toBase58](/docs/utilities/toBase58)
- [toBase64](/docs/utilities/toBase64)
- [opaqueDataToDepositData](/op-stack/utilities/fromOpaqueData): Decodes opaque deposit data found in the "TransactionDeposited" event log.
- [fee.validateToken](/tempo/actions/fee.validateToken)
- [Setup](/tempo/actions/setup)
- [withFeePayer](/tempo/transports/withFeePayer)
- [TODO](/account-abstraction/actions/bundler/introduction)
- [verifyHash](/docs/actions/public/verifyHash): Verifies if a signed hash was generated by the provided address.
-->

# estimateUserOperationGas

Estimates the gas values for a User Operation to be executed successfully.

## Usage

:::code-group

```ts twoslash [example.ts]
// @twoslash-cache: {"v":2,"hash":"c1ca59aa957321e93a166f3d20b72446410d9141e10a6855356afebeeedd2418","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'

const gas = await bundlerClient.estimateUserOperationGas({ // [!code focus:7]
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }]
})
```

```ts twoslash [config.ts] filename="config.ts"
// @twoslash-cache: {"v":2,"hash":"45645e60b76c76fc06b4ef3e14c20a9b907e24b8518bcb857624b5e721f35cc1","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvEaRjMaABUEAjDiIDCHGGDQAeNKWZg4WCKTS86NMFDi8AKoeOnzFafmbspV7bd7qPL14AH15hWH4vGCheAF4wmxhIsGi3ZhERCGE0AHlSAEEoKFk4Ox8bO3yMrJ0Q3kLi+DtQ8KSomPjW5NTeUiwRAGURfBgAW2ZLel87ACV+oZHxuq72uISI9oA+RixmQ1GYGlI4RF4lVXYNLR11SUiAc30nEzM0N2HPMDTq7LyGkrgbj6g2GY2Ym24p3Oak07G0egMRherncnzcCj2cBgVUy2V06VxOj+RQBmyB81B402AB0wOxRi4LDI5IoVDDrgwqFAICIEIgQOpZPJ4LwJtDLv4ObwAO7sND4UW8e7sEhSZCOJGMgC6jHwaDQWBOAHojUQ4aMAHRwfBG7m8o0iDlwI1eAwQPiZMAPQSyGL8MyK5ABT46vUG42m81Wm1252OuE6OOBYzcC202kAWl4ABEeSdeGHDYgTWaxtHbXmHU6jVg2Zd02B8mc6yJJQmLOw7EZeK6yPx0jBeGgILxqSBaxcRGPeMgAFIDHIAOQzMwU6nqCgAkqH9UWTYcRrJBJazPcjdpbTASKwIDhjhX7cwsJ2jQArOCSDPAo18A7y6B2HAgjDKKdiyAYcJmmA9y8KoPIANa8GAx7KGQgJDs86TiJI6FClAXgwfwpAQKMvBwOM5jSJIiJiOhhytvKxGCPcCrIOKrZVNhxg6g+zpYRIxg1i2Lo6MRUDAVxqaUNQzD3HyyDIOOezMKM0meg8vBZsAAACHBgIh7GwvCtxeuw9wAL4gFqFCKeBPrGNJTbsW28IWrwOl6QZLZGTolnWYpdAqVgrC4FQ9KMu50hCqyk4+W8Ba7rw5kCMRpEAOSlqMaW0uFryReMXgpBYyVESRvAZeaDrJnA2VgLSnpwEyUrxMywqGRyjDALSvCol4pwFWARUUN1GGaq8pyFow3DDWA5ncFZ1kgI1ewMIgACcVAhdB8pIAAjAAHFQaB7Pchx4K1MXsu20l6bgiAAAxUB8hhiGQSBreZFDoNgd0EMQb1HVYTBsJwPACMIYgCQlBq6MCCxgpM1h+HMIKLBMLSJN0HTrG0KRQECzDSoj0ywRAEAhd28T9qwWLbD6rAAPynI1pAEcsmPtO8dxmUzvAABK7hqzivCZDywxSaME9KEKnALBpC8iehw5SzBSzSdIMnlhbScdclIApICwHAMjsFgXHSYKLIihMfP2PYCijcLlHyvIVGDTAtFDiOEzzkuK5rhum4WgtVDLeYSAAEwbSAW33DtiAACxHSdZ38trm1REgj0gM9WFvYgUefd9OB4IQJDkID9DAxwXB8EIohcVFVsAELhCFpBxU8Y2UeUfgK4y7zJsTFT+EPGMbHjawrHj3yEhYvd2AMFFoDiNQWOPuPRFPHMz9IUoLy5tQb1j28Tz0yto8PyMSwjx+rJ0O/RNsuz7IcaGnK3Njt3FotmV3TvxQ+F4Wea93gcnJKjMEMteCfygN/Dk/9FaDzRKKH4OgwHtggfDKkOVNaUQujAWB8DrpcjzHgS2wouwwLbmQQ+FhZTykVMqVUM5+6vB3OGYskYyzWl4lWdszpXTEQ9Nze4Pot7+lIIGYMXgOF7m4ZaXhsZ+HwiTJ8HgaY6pgCzLmXkE1dwRkyuWAka8MzMGUCzfikgVGJiNMoGhFcZJ6xQIpF+Kk1KiM0u5XSXhEJELID/URfkbIgDsqQByVAmz+KkXFNyHlfHUK/gEjkwSAq0CCiFaSuVKLACbm1by4DoZYCSilMqFUxi1WyRYXJBDolxRKaVdKmUjQmOyGYixNEuKVLwdU3gA0ioNNSuVZpQDjC1XqjhJq7Y1gEPau2TqI1Rn9U+ENEaiIAH6INFNGac0GwNQsPYpJHdmp5JoHUjqXUpB70wWs54jJNlYEYGlQsEYJxqAtM+UYagIAWgkKaCORpdpGmBGlaatI5ohyWsdcOiAACsAB2Ta2g474D2tHaFp1Vo52ioQhxcUbqZ0QLtJ6HgXpHHekXagP1S7/UcTQKu/IWA1zBvXSGkgva3C8MoLgMAl4rVXtkHYyk/zvwcBATlYBuVYj5eYAVOgMSvyODwKEqVOwwF0PYcVEAuU8plSvNBaAZiHHsvYH66sqkcu1ZK3Vy85WcicfJRSRsTZmwEhbHFioJVSsHHq+oBrg7+SUvsaSbiRXHC8fE/SYqvU2v5QahVKk37HFSaE414SEBUBjViXgvq7VxJ8VGzVWbeW2oNUatAJqfopsCgyTJYUemRWHMWvVdrBllOaa0nQ7TLFsrAN0iKuSsCsyIMKAA0jADAmrW0lSGeU0YLSDU1VwQO658I23pQtDYtAFp3zjNEJM1Bc81hNqtd6ltBqFlXPjPCGaPUIDShSMcU4yAh0qjHROqdF60r3VoBaP9oLrIjXLnAASpw0q7QtLtNKOz5pakWmHVa8LDox2RfHCOEdk6kExXgE9OrpWlrngSlIe0SXKVeuQRAABme6lLMAlzTrSnWQNGUg1ruDBuUNX0jpoOOydEA7U7GHe+jAss6BuFvFxOAvMFBCZ4x+/jBqciupwpCM4smYC8btcuvKXHhOfsI8nZxBtnWs2U2Ad1VsuxSFbY0xUumaC8HghOgNISwkRJAE5dTvBeN+rngG+D0LVq7QTknFD21UVEvRSnLF9mNPybtURu6GGc6krzhRj6X0qX0b+uXJjDKQBMtBiI4wFh+mHFOJcnqPU4IiHggAUVoMFMworKtVba3hSQrAMC8AiMwQQrA0AVZGm1kbvQ5DcjAF1pCibThjjq/KNCIgjBjgANzDdG1Vjrk3uv01mwQAxXCDyLaML8iAq31sbbG8wCbU2nzsAAKqkFYHtl5XC7sWiO8cJbYBTstOfOdq5o3zJrcB0lEHbWavwXsPSGApxdoR3uoj8HVXPSdPzK10bW2pvaDgPdukwG2BGo/KwcuQ3QeXax9167jRSh7Z/TABnjOGfBagPCg6IgI7KATvCqAa01oR0o7Acxu1KOUdhTAYLCcmcA8u+18bnXuuQ4oTQKApwBf3X2rCrX+1kdA91yNynfT+viCW6wVglGyey82/L7booSRNDp7QJbu1drKFgPdWFa14XwuUJRgAbJRl3fv4X3QjvtfafvOcwAjswXa8LKNe79873aMurdXZu4rm8tXlfRDhwnMX/v7q7X1214H62y+g5x/YVgtheaG5ZgRZAWp2ZnygPr9gqveDF/W2AGbo4QDzcPDAY8qeeq9/ECQdQPpZCiBE+5C71vrsK+mwcPbg+yCj4NzbqbcAMCjGUOTNf9g+ab7l0v23sARD0jYPmA6+uK9tb/W5Xa90+nNd4E//X5d2D8AwHzLg+AvMMiYAAAamQD/n/gAQAGJSB3x4wg7mTaaURlb2oIZop+5IrhZICIoyRYapwgAoGJZICUakZkr5wZbFy/RlwAzUDMY5wHrXo6CW5VadqDY4xYz67cpoDDC8wY4jajDG6XBsCMynAH7kxyCwFqaHDiC/66AACyghpurAzc8gwwSmkmmwLem8be5eWhHB62S2oI0Oq+SEKEZA+uGQpsRq12vM1M2aoQfBcuAAjoIPAGgLzEKoqqKuoFflgEai4W4QmmGmDLEJoTJiRGqroD4VYTAAEY1OWpWjgJsPfnoe0BYcmMwaNpDg1k1rIE+vPuThtobr1sbpkWnj1Ibr3iYXNgtl9stiACXmnobrtv3q9vuLUcbCdhIKfk0dvlTs+I9s9q0QdiaO9p9p0T9n8ndj0Xrgvj1A/htk/l3n7m/rIB/n+o0T1N/r/v/taEAcmGAazDsdAZIdPNEPfvrksX7vtKsYOJ/utr3KcLoPsqurUAfI4VVvcaDslAAGS8ANZYQKriBsC6BP6bDbD8BgCnCMCMFsGdxgl8ChGvFoCImaHwl/rJHgrSRoEFyUbJaxzxwYG4HYb8iwlEFwqkFpZIB+60bUoMa5aVxYqFZsazIFLti6ByxYBsLmC6BnH4wCA34wBkgFEQ5Z71aNY3h5Ho5zHp7L4lEDZlEU59Er6w797r51F1QNEyln4Z5hBPYvYjHngdHfanYzFb7n63YDH6nDGcKjHPgfbGldEQB/bsBmkLHzGcFinGGqnw6I73QWHURkrSmFEVHKk4544qhoSE7wDkyk4im9EWlU726079705M6M4s5s77Qc5c48584C5C7KAi5i4S4hbS5akhnmm6lK44qd7q6a7a6bFg4ymG4CEDZCFm4W7xlW6G7U4AiO7J5u4wAe5e4+7+6B67TB6h7h6R6oQx5x4J7wpJ6x4p4VnlGG41lWyd7BYF5+5F5NnunNmV7GDV616nD14QTQRN6pHwHrYd5w765VGqk1FD4j5rlVbj6RlT6kAz4iBz4fE9RfGl6XF/pd6v6jDv5AVVbbGQF7GnDAGHEQG7H4AwE3nnHgpuB8mYWPxQDPzCpJrBmP4bHgqqZ8FfGIEawRSsmxQcjSSxjkI4pULOT1IMIKgTDMLaCsJ3LsK6iGlGJKKViwmCKiTuhuzei+gCABgTBBjJhyKGJRgCX2hCVVTqKpgNg6J5gPLyU8IxiCXVhvL1haJOQth0I9hWY9g6B9gDhez94GVTggAzi+zLirjrj5BbhyWHa1HD4nhYbnhgCXjXi3hoR8J3bOjvifjfi/gHgARkTARsVgSHCsxXhsyQ6mH75oRuDrJwBWLGBAjjZsy2bkQrRuxo5uD0RDj4BMQsQzjOScQCRwA8TKI5XOh2UiRujiS9pSSGaOpBruJPSeJaQFpeQ0Xti/wWRWSuZprubGWTh0L5qeTNgjXwjVrpK1qhQgAWo1I4pzI3pFLrrDLmj9p5S5IoH7VzoqVeBLpaIvGwkzLbVsnwiXo9RLJ9IrKHC3qOyKwPLbIkWQo4kRwJzEphYop7TIYYr4HUVXTwjkmwqUnkZ7Swq0nZbUF0p0GCZBXmAYAejJj7GfB1B8HZESnNb5EAWykX5JB9YKndmy6VF94vnHaalNk6nL4tFjhtFGmHgTGmnvk9nKl3aDEGm2kukOmc0mlTH/Y80jaHmHmQ7elw4I5I4GGBlYSEVFFhnGARkE6sBE6xlkCKlq2Jl24075hjhpnpmlms7s6c7c68786C5yBFmi7i6S7llM2L7Vlik551nUYNmwo64ymHnM225tkm7CFdmk1B23bJkm0gA/qDnu6e7e6+4B5B4h5h4R5R7znx6J7J5mmR2Z4IRe1567n7kB0XEPEnk15SbnnKkN5XnN5wHoWg73ld6Pl00D5eVvlt0T4wDfm/n/ktnKlPlr61Fmn1574H5DFzbH5j3KmX7X40xw7+3fEgXP7gWQXEWg4wXIW41eCIXHHWioWN06GzRoVQB0VkL8jAGSVSILbInByhyBaRx+6hYEkRaw3EkQ3JjklEm5zw0FxI1UGMaMnVxFZuyNSvWFTlbU2E25EtaD2G3ylsER3u3L7D1qmOmM3amoO26s37ZC3jFi1naS1KmG383Wls2GljGYO/bTEkNVbS2ekIRy1d4K3+lK2iQq362hmG3hn45Rna0xkk563U2kO6l9kO6pm0Dm3M4JyW3ZnW15l22FnFnO1lmM5504NTabnCje0a5a5+0HlNmtmKFh3cNVnL4SMpmm1O4rlDkjlJ3jmp3TkZ1zmx7Z1Lm530OY7Kk6Mq7F2wqF7d6VmMMV1wCnnV1k076Xn3DXnH3t7blt3VEd2vmjCb6fmT7T7aB/nmO03JPqmz2G27776H5qkz3eNRPdbz3jCL1d7L3AXrZLEv63HrEWhf7gEH2AHwUHEdOwUoWnE4UIFIGlZvWoFP0Fxs6YEg2IA4Hg1YqEEZzEaIC/2pb/0UFZZAMMm0H5bo13iYB8BZX3L8yCzcU8lYUCk0xCkX28h4D2AjC8AuWfWMjYnjNh74moYRZRZ4FYqHOvDkk4F/3koAOZZ0abM0H0pMmsZgyFi8k4VuB2FCmMD0y8x10wTH1cymT3C8ycncloBjWwut7wuCnQI4unN6DnMIvmoNrpwOr6xOrwAurmyZqMWKi2z2xPN5QuxMiSApCezDiKhOX+yuVbj+aP0rSRxrQkHA3xyhZzOly7j/Nw1Asi6AM0pbMQvnQHqsGnBFqnqxqyplpTWmolxiswqB44Fv3YGYYkkgCsHkkv5Kv5wqsgt0k5bgto1QsHNap4YlpxpzyeGJpKo6vevWr4Z+trxBEEWqbhGjCRG6s+vnpzwJHhLGtCnDOWoJsEZrw6yyQ9UmamxMsCgeoTDFo5rLy+ZrwuauLCohr4VKoRpDXRp6thsGtzyRtKoppuYZoCjNs+rlt5reILXxuhu+uttrzJtgCpsrUZLrWbUZsjuJtrxnUdoGrdqdICRHU5K8Cxa8b6ZLszrtqVSsFXVzu3UHsbpbo7pXUTIlaHpLvxC4YLtZuCqtawkfX3qPr5gvrqa7sKb+vfq/r/rcCAZXLAagblQQZQYwZ/XjOi5SuWsFzJZyv8iPtnrPs6D2vZyAv5yFwuvI3APbNMlDoY37PInwUIK4tuDX3ovU1WP5j/BNCPmSAiAwByFGCyRkC8yLjMesfsenRSLxPrYgb3BgAeEBvBHmMeDWiywAH36olqYRFYgcl0AQhn1n367CeNiCD/iswABe8gAkYnoaBFpw+Q2nhAenBnkg/hrhjU8nMbkRAwZkWnOn7A+nXEE7qbqnx96nQnznchTQHH0JJ1gXp0SU5jBwpQQXOazn5iIUAXUXp0cncQYRqqSnfMKnq9vACcLTUFPUoLe2WebAAOyUoQs4H4YAKMrax9mwLz4rVGe5UzhJ1rENtFizd0LujrFGEcqr9J7rOzxHezWNvAH7oqhujAAABj+gACTACovmQTd1A5ApA5D8C6B8F0emfR1MeiC8e978dcc8dsf7e0KCeg6adGd1vwOVlSf4AyfWjJdIkOfpcqd8A+dndtaadmeufueGfQnicmf1DmdmBudWeVexG2cokpcKextKdOciffcWeg8edGtmpvfsGrAfdVaacJfZWnTBd9KheDjmQRdE+nDw+96qCsdE+PepeKfqoZe0CYmg5LE5cQVrF5dDg/SFc8jFcVmle8AADqMAygiPjYBqEITedXZrIeTXEWRJyHIAo3xw9ryW2H3XvXbrqNOznr27P78WF6O7E6omtA4mZmkTMmb6cmfGdq6h9V0b+vGAWmlFOmjve72QObRm9LxspmhbOe5lNmQyEwsWjmzmE1tkU13bnmVvg4PmeaMH9XlG8K0cCHu0XzNrRvNvBqqvXXe0u0mvKNeWRHxEQ3fAYHkge2kH04oQY4q50vq0gN7zWBMzLXWK5f5m7Xe0Ur6vkcBfBHGrpJB6hycCyS7YH8eKCCpL3c5LcLFztM2FhLGPu8G3BqpwfJnBqhXTojVWIdHZIhpM4h3YoQMm0hEB8hpjZuKh3B+AdvOEmhWP8xvnoOhhIwLDyE6VpAFhvh1hUAthgp+Ng9OIu4WhLGcg2/gb/hD0CJXdjg9nNLuqmiJ+FIB8RVHkkRSIP9eoUJbftVjFI5FJS13dcnPQpqlEsBNNIeu3XVITFNGPjQ2ng3ZqEMnSVAixrbnIZT18G8iahqLSdIulGBgdBhk2SaYrF2edxTepdm3oAFd6oBXpshSPpL8m6DTFnqBWuK5cRBVWR4rwGeIMF94UwEeKTU56/F/i6SMQECU4CsBQSGJCEpgJhIchyO7JBEtD1hLyd0SFoZnp9FkG4V6+SAELB/VT5StFew/YhNDU75EoVmZGZVpRj77qsPWzKD0DinOTskp+ACAltoSJaXNhS5zc5ivznhr9Bm62LgjwQi4X99+YhCmJIRP76gz+ChdskoSv5qFze9/NwWgIaEGF0gr/GHKcHf6oRP+BhCATYVOAIsABlZWQEAI8KgDvCEAoAe2zQiwD6eURcYZD085mpGh6/AwhkRIGwM8BJNbBjw11JINzGYjNBuQMwaMD86epVgXQJobdEKm+w5gVaTOFUN7S9AyYs6ToZu0PSZdGUgIOUFtMZSYguCqPE+D70+mMg5YSvUaaKCbiQg1pvrjUHPEOQFg6ErCRsHwgzBzg+Tg4Oh5OCXBC/bQnhS8L5E4hxkURCiOgQEidAxI9NrUgn4kJDYl9ItpZkVDRJTKrFJhJGTVC4sPKJYBSrpSUrVghEoldSGZHER+gpKM4YAhyIUTlhlEylUZBonUo5hNKRSbSoohtCsE12ZKASFumdD+DwWubOlr1VUj9VMWDbBaqSLxZBJw+qaCtOmkciJIR+MSDkPNQSSmjp2a1LJA2i2pWwdq6CPauewOoVJ02Ho4UKaOXZHtV25iHtF0gDGQN3YxUUpE0kqgyi90N1E5JDUuBxQnqGA5ZFAzeC3Jp+31MFLNG4B7Ih+VItdC1FiGlidAGYt9rmI2RFInk7NOyh8npDfJfsRAAFEChBQFiIUcGU1g3z9xA1U+6fCGhWKOT4oghk5XPgXHWags1W/XYviR2G6wkgCUoBwutm1ZNDQceQrfqTV35KFeYxQiQnUDKEyEMA5/KocIRqE386hT/UvLeJRwtCYAb/Mwl0Of49Df+fQ//muMGFIDgBvAAHmAIQE2coBeIkInT1h7wC5hbhBYagN0LoCXqpNdYcTVVq81EGRAqmig2oG6l0G9NDUscK0Y7YKGbAiMI8O5qvCmBlpB7ERPZocCGatDCWuRN4FvDKynwyEZzzay/Ct+CFKQScXvHMSiKbkJQWxJUE9QYRyY6ZO8Q+EiSSkfxAEkYJWgmDiR8I/8YiLoTEi0RHIRwQgjBIIEz61zPkAKClBctt2VqNAHYH5bdgGsHsbTlDEeb3YZgAAGQfpQp6uCcTXHL2pKt9zobXGOISjjxTieueHMFtrwXGl8OW5gWWCc2n5JCsYKQ2mPpNub3NHmvzcOH2M8FrRvBHzd6F5JQ5kt7WyGHvsC0oJziQpoDNjDCwpbEskWT2FFjEzPoYsHg2LKKQAnxaVTUhqmBIYrBimcw5+abF3pRBpa6w82DLX3m6mZb0ibYdsB2ClIsDGTPQvLMyTZR9gLhnKAcNykHAT4wpYU90Ikgh1lbRZ5WBofKVOJVaLRMgsAPAKe3upLVvRhYEMf6P6m9JKRY4wpKh31b6oj0vo86qqPDHrtJAm7XpJn3d61AvpK7OeCe3dHRiBkoMhMdVCTGaDpk5Yz0Q9SrGvtVhKBD6jNPzEkUGwdAKilqwNRrBCYngWaSGzQ7hsX2iycBCNGV5fsgZf7NeE8h/RP4AMH1dvmBkg7QYcZWiPGXlBeLajjkiM05LihenzJX21Mq5FjPrHPJDSTYz5K2L+TtjAUwKfoKCl+pUA/wzAJAKAHKAgZJAOGBAOZHMhAA=="}
import { createPublicClient, http } from 'viem'
import { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'
import { privateKeyToAccount } from 'viem/accounts'
import { mainnet } from 'viem/chains'

const client = createPublicClient({
  chain: mainnet,
  transport: http()
})

export const account = await toCoinbaseSmartAccount({
  client,
  owners: [privateKeyToAccount('0x...')],
  version: '1.1',
})

export const bundlerClient = createBundlerClient({
  client,
  transport: http('https://public.pimlico.io/v2/1/rpc')
})
```

:::

:::info
The Bundler URL above is a public endpoint. Please do not use it in production as you will likely be rate-limited. Consider using [Pimlico's Bundler](https://www.pimlico.io), [Biconomy's Bundler](https://www.biconomy.io), or another Bundler service.
:::

### Account Hoisting

If you do not wish to pass an `account` to every `estimateUserOperationGas`, you can also hoist the Account on the Bundler Client (see `config.ts`).

[Learn more](/docs/clients/wallet#account).

:::code-group

```ts twoslash [example.ts]
// @twoslash-cache: {"v":2,"hash":"50c9b2dc531fb4fcf10930d4e620d9321138d568b532cbbdcde82fa300cd4719","data":"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"}
import { parseEther } from 'viem'
import { bundlerClient } from './config'

const gas = await bundlerClient.estimateUserOperationGas({ // [!code focus:7]
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }]
})
```

```ts twoslash [config.ts]
// @twoslash-cache: {"v":2,"hash":"b44093d08fd931e8a0f54d0834cf45588e1f7702b3f78d7082037ebc59f4f8bc","data":"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="}
import { createPublicClient, http } from 'viem'
import { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'
import { privateKeyToAccount } from 'viem/accounts'
import { mainnet } from 'viem/chains'

const client = createPublicClient({
  chain: mainnet,
  transport: http()
})

export const account = await toCoinbaseSmartAccount({
  client,
  owners: [privateKeyToAccount('0x...')],
  version: '1.1',
})

export const bundlerClient = createBundlerClient({
  account, // [!code ++]
  client,
  transport: http('https://public.pimlico.io/v2/1/rpc')
})
```

:::

### Contract Calls

The `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.

:::code-group

```ts twoslash [example.ts]
// @twoslash-cache: {"v":2,"hash":"4ba296ce5fb6c129922f6e210e599e315ab2f949929d503e38c4b27c2e2562e7","data":"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"}
import { parseEther } from 'viem'
import { bundlerClient, publicClient } from './config'
import { wagmiAbi } from './abi' // [!code focus]

const gas = await bundlerClient.estimateUserOperationGas({ // [!code focus:7]
  calls: [{
    abi: wagmiAbi,
    functionName: 'mint',
    to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
  }],
})
```

```ts twoslash [abi.ts] filename="abi.ts"
// @twoslash-cache: {"v":2,"hash":"0331bad54efeb88dc285ebcaa9da4b7f6792f61eff26555c5f51ee6eaac07994","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808BjCMONAAgHcBDAcwFsAlgEEARoMTtSMblBYAbDO1QAdMOw1SZcsIvaCwWAK5o4k6bIVLkAXQDcazVsu6lYbvxiSVIIWDQ+DuqaFjp6ECbGpubaVsr2jiGxruxs3DQAsibc4vKCmN7gLFjcGDnyMIGJGqFxmDiFAGZGYIxogixVYAC+NpQgaaQMiACMAMxUFWC8aPhIABxUaNykvDDDIDwCIuL9eWC4iAAMVIz4K9xtZEjj3RTo2IcExNdLdBsAFFikEDhDGABKfSGExmZxhax9KiDYYAFgmICmMzmiAAbEsVmsNgYoghJgZDgizhcruRELC7g8cHhCCRyG96Hgvj8/pgge5PIU/AEQP0YUgAKwATkmMGmsyQsIxq3WeA5uHxB0lp3OpEuNDJFPu1EeNJe9Oo7yZ31+ZDZ7AiaFxMRcelsfOWQyQAHZnaLxSi3dRMbLECBLbi9gTBSqSRrJZSddS/bTXobGX7mab/kC0plsrl8hhCpBDKVypVedDHcMhVLEWLkTcBdKsXg0zAsstM5gg0q0aG1aSI9r6k9YwaaAmQEnWYD2H2mi02h0wD4HSthiMAEwiise5XemUbPttw5e4ld8PkyO7mP6/pDnePdjMVgcAC84LiqmCNWSehxoJtEPiQSctQpPKXIGDy/5JLaSgBt+z4pLY4HvpBqTLOmzaCHkBTsD4uYlGUogVF0AEfkok5YSAzStO0nQgEEvQLk6oyoui65VogNZbnWfp3mwe43CcICHuq1xsb0pzQE8dBYBAQy3iwbBcHwQhiII7BPsgiQAPQaewAB0emJMA1TAta8QUEZwFkdyPhmW+FqRDBtg2U4DZNjk6FZjmxT5vhhZOZopE+BRM7UX5dyadpek6WoNjsNwcCyfedj9J4yxIKA7xinAs54KYIDdN0QA=="}
export const wagmiAbi = [
  // ...
  {
    inputs: [],
    name: "mint",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  // ...
] as const;
```

```ts twoslash [config.ts]
// @twoslash-cache: {"v":2,"hash":"b6d564b0760d328d4213849f592462985486601bfceda31847a0a9ddbaa8dc2b","data":"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"}
import { createPublicClient, http } from 'viem'
import { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'
import { privateKeyToAccount } from 'viem/accounts'
import { mainnet } from 'viem/chains'

const client = createPublicClient({
  chain: mainnet,
  transport: http()
})

export const account = await toCoinbaseSmartAccount({
  client,
  owners: [privateKeyToAccount('0x...')],
  version: '1.1',
})

export const bundlerClient = createBundlerClient({
  account,
  client,
  transport: http('https://public.pimlico.io/v2/1/rpc')
})
```

:::

## Returns

```ts
{
  callGasLimit: bigint;
  preVerificationGas: bigint;
  verificationGasLimit: bigint;
  paymasterVerificationGasLimit: bigint | undefined;
  paymasterPostOpGasLimit: bigint | undefined;
}
```

The estimated gas values.

## Parameters

### account

* **Type:** `SmartAccount`

The Account to use for User Operation execution.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"ce6abbc86cd11d78367f4549d2d4f2912c53223de84030e48dff2f0a837b6d0c","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account, // [!code focus]
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }]
})
```

### calls

* **Type:** `{ data: Hex, to: Address, value: bigint }[]`

The calls to execute in the User Operation.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"a6c32e22962c8784bb4232bc743b0b58023c5f2bf70ed4730db96adb802785e8","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{ // [!code focus]
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]
    value: parseEther('1') // [!code focus]
  }] // [!code focus]
})
```

:::tip
You can also pass raw call data via the `callData` property:

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"c25c6429b81a9a725a9ac4ecc9a34930a1392ca19c476755b23f57642b3f28c3","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808BjCMONAAgHMBDORd4AB0w7UeyykYANTIBLAGazG3NLJYBxXvwBGszrLBoA3MLHsSpBUpVqwmuABlZAW1lodeg8dNjlAGz97J1d3dl19QxMwAF9KEDZuUgZEADYqPxgwTjR8JABmKjREzhhkkB4EdINcRAAGKkZ8RO5GGnJU6Ip0bBqCYjI4mno8AApuP1leAEp2ZlYObQBXMCgM0gBhCczQgCFl1bJN2W2AHgAJNDQsABVSblYsCCST/ZhFMBgoCnZ5cbgYAB831e70+3yEIjE3F0/Ek3CgLD8GHYqB8ZlEcIRYCR7AMWEWaD47ExiORyAAulF0WISdjkQkaABZAnQ2QTTD8QTgFhYbgYaEZLlU6nEmDw0nsTA4TkgOZsUiLVpPIVo9idASqsy0nF4glE7VkiEi9EG9hgbjOGAyiAAdw+pBVkONGLFWJxUqt7C52gwNDgjuN0Upmpprol5stMoAgn5MRgAPJ2sgBkWmj0ysikZUgYWidVG1Nhum4sD4wmwos4im5k2V5ERz1cgCSYDckwmAC9PinqWmehnSFmHTnVfmQy7xcXdeXRZOqwXnbO3fWLY2QLb7T3nX3pV6QD6/VuzEGa1q62bVzKW0RxrIoABRHJkGCLZxRqBQSRwOCJzcjp21nOyLpnumbZjWY4AWeQElmW+rnqiUGFjBDYygA1jAGBHshy6Sv2e6LF4ABMACsKTYXmwZIROuGoXu163lAAByLCMDAADSmEUUuEogVyYHDhB3wAHSiewAAstTsM4TwwOwonCeC47yaJEFUWYCnsAAjAAnNJskqcJNZ8fEziJGgjrROwAA+GoAQpUSQRpqnCOqILVFAALCC4jxJGE+xrEc2xxAkSRIFpAAc6SZNkuSIFpBTUMUpR4EsKyBVshhxBMHxIPUspNHcrQDPFEWdN0OB4IQFiDHQZQjBIEA4EkGAzPAqhmTQACq/ykPGzU2BoWjsCcprLGhkB2hSSkAayFYwYhxqmtO8ELepOESgyMDMkUujshgMqQKWfICjA3E7mucpoAqSqCaOM1LeeK3zbhi2LjxxZ0VyG7Jv+70fe6+Her68DcSeymml9IAxnGv6/aeoYwSZAlbk5G1TqWeovRK1YQ+eUMtm2t5dlA53nsjg7gfddmPTBz0A4aynQbRl57j9d3UYBuEmQeoN/SK4Oc5DrPNmAN4TA+T6SK+76fvAP5JhztPc0DIAo/zeYPejOqYzOppvYuwuRnuGFYRr27k6rhGGKR5Hm8e629vjIsgAxEssWAbGcWbCM0bxqvq0JhkSVJMmSIZWvUg5o6O8Hun6eH0cASZcBmUklk2TTYhJ9EAINc0lptES95sC4KgwD1ZD9WQg12LwAAKBelGQcAnApAIzAAvAC7D11mrj/G3okAnECKMAgiAgAASqUiykKw7D3Ow7VlzQ7AQPIXC8OY4yLPAZowGx36JMBEDL7Qh8EnJT7sJXpDsNXdyqCwwnCMIAC07AACIQOP/D4JcLAfAAD0wCiDHGcMJOA+BgEtGfqwYBaUDikGASvTqFdeqP1rvYQY3BOAT2QMgEAvI7jODiIwTKHBP5BUMJKM+ix/ggHJBQIhJCLRxDYYXFu7BP7AAAAI5TQuwEuHVy53ywfA+wjdSHN1IHAWIzCiGSDQHPVgcRrj4DkhUZepd0HsBGAYdgNoYCyCmMJAQAiDBCJEavDBVcBqSN4DPFR89rg9AUSwtWtALRYAyHEHyTwODAFmHCGgex0qHEod8ABVxvgkP+I+TR98rLyH7uwAA5OAmAzh0neWcL5IJ0luAGA+BwFJaTMkQOAY0YprBcmtnyYEgQdCADKac0BRkYMwZYZSfgVKyc4WBXSIA9LgPU4QV1F7DJ6ewTui8bTFI4GgCAbTzKdO6YYEYwTNLRCmG/T2LA2D+QiRsShsyQlijCQFSJxxNkFhqQYfgZkSmlAoD4a69w4AFP/oAkYUw3kxD2WACZhyODiz3nAc53AFluGOcgmhaBhJoLEZghxth7BbJ8C0DZaAAWiH8H4IkqA6H8HSbUWgCl0nfHBZ6eJMBElkBGOkrS6SZhBgBbsphzD4hFDCogPIRFopZByEgIi4lCjJTKMi7qqKa6OMqCAHKNR8o1KKm0fIRFyrUB6FVfo5BCh1VGI1ZqmAZjYpGYYAA/PwBci8YQMxRLa5mEp6b61js64sW0dqsn2odHkJ1tCCntojFWu4uRXRusspWYg0ZOzprrVar0nXaxXMbb6ituIesBmG/cIN/TBsor7B1UMYaugTBmgtDqKZDlRpHLmLqE3Y2LLjIWzs02u1bKoYm3ZK0XQHDW82sb60Yzgk2+cTMQ3hhduzTNk7iw8zzWDd1c6cQEzFoxBl0s3wfi/ArP8Ra+2gUptGzWWc424VdQhZN56p3ttNrOv286rbETIkug9ba1xuzvB7L2XFe2WxzYHammlJIJzkgpOtzkjIxxrJpeOYdwMuWTqrVO5kM62VtTnTOqykjrItRwWy7kPhQBCry5IKQtJCtikgAA7BK0gJQyjmp6dlao4UGiFTgSVTVXRtWVUntVAYBrhiTwalmE1rVZjjD8F/FQ3AZTktgPCbQMA3hclI+ZWjgrFUxRFYgKKSUGMpUngS2TRRWO5UQNp1VXH2iau5cwWATBQVb0hXM6Fiy4UZVuYi6Vdi+poqGnATFkJmOGDxVJgIZn5MZMU66FTbwqXsFASiAAhI5uS8hf4MPJK5KYcRC7cCQKAOqmQ4C2DwISEA0RohAA"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  callData: '0xdeadbeef', // [!code focus]
})
```

:::

### callGasLimit (optional)

* **Type:** `bigint`

The amount of gas to allocate the main execution call.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"024254097d0e21484eccf5f6da8bf4b00f038f5275e9f880db7be1787a191043","data":"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="}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  callGasLimit: 69420n, // [!code focus]
})
```

### factory (optional)

* **Type:** `Address`

Account Factory address.

:::warning
This property should only be populated when the Smart Account has not been deployed yet.
:::

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"15c01689393880814d5bdbe3a6fe4dba115aa5e16c7ac18428dfe238bc311025","data":"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="}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  factory: '0x1234567890123456789012345678901234567890', // [!code focus]
  factoryData: '0xdeadbeef',
})
```

### factoryData (optional)

* **Type:** `Hex`

Call data to execute on the Account Factory to deploy a Smart Account.

:::warning
This property should only be populated when the Smart Account has not been deployed yet.
:::

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"84f978e095d9f464c7c5fe84a94811d398b23d9dfb2ae820b4314401699d33e8","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  factory: '0x1234567890123456789012345678901234567890',
  factoryData: '0xdeadbeef', // [!code focus]
})
```

### maxFeePerGas (optional)

* **Type:** `bigint`

Maximum fee per gas for User Operation execution.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"edee1d8acbde3bd11f42270657a23dbaa4b070dd730381a76838b6a6fdf01e71","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  maxFeePerGas: 420n, // [!code focus]
})
```

### maxPriorityFeePerGas (optional)

* **Type:** `bigint`

Maximum priority fee per gas for User Operation execution.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"3dd980a9df63cd5f3a04d8f8778c4298692579eeacf9a0d1621b956000545c83","data":"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="}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  maxPriorityFeePerGas: 420n, 
  maxFeePerGas: 10n, // [!code focus]
})
```

### nonce (optional)

* **Type:** `bigint`

Nonce for the User Operation.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"305f665bbc4569f64c07d8f805295dd9234434c970adf9034e3f94db2dde354d","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  nonce: 10n, // [!code focus]
})
```

### paymaster (optional)

* **Type:** `Address | true | PaymasterClient | PaymasterActions`

Sets Paymaster configuration for the User Operation.

* If `paymaster: Address`, it will use the provided Paymaster contract address for sponsorship.
* If `paymaster: PaymasterClient`, it will use the provided [Paymaster Client](/account-abstraction/clients/paymaster) for sponsorship.
* If `paymaster: true`, it will be assumed that the Bundler Client also supports Paymaster RPC methods (e.g. `pm_getPaymasterData`), and use them for sponsorship.
* If [custom functions](/account-abstraction/clients/bundler#paymastergetpaymasterdata-optional) are provided to `paymaster`, it will use them for sponsorship.

#### Using a Paymaster Contract Address

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"e4b8c482a321e5a8f47cdf464b9977059c1e62dc71d1275aaa4252176d2d2b41","data":"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"}
import { account, bundlerClient } from './config'
// ---cut---
const hash = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  paymaster: '0x942fD5017c0F60575930D8574Eaca13BEcD6e1bB', // [!code focus]
  paymasterData: '0xdeadbeef',
})
```

#### Using a Paymaster Client

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"d96a12f34e3b215b8eca9f606a41ee931a798e6a949e23125206bd007b31c958","data":"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"}
import { account, bundlerClient } from './config'
// ---cut---
import { http, parseEther } from 'viem'
import { createPaymasterClient } from 'viem/account-abstraction'

const paymasterClient = createPaymasterClient({ // [!code focus]
  transport: http('https://api.pimlico.io/v2/1/rpc?apikey={API_KEY}') // [!code focus]
}) // [!code focus]

const hash = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  paymaster: paymasterClient, // [!code focus]
})
```

#### Using the Bundler Client as Paymaster

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"5508844f5a62196f23fc866cbd81b7ddec944ad59ae342a52621fe6e0e32659a","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808BjCMONAAnwEM59F3gAHTDtR7LKRgA1MgEsAZrMZc0slgHEe/AEayA5rLBoA3MLHsSpBUpVqwmuABlZAW1lod+wybNjlAG38HZzcPdl0DI1MwAF9KEDYuUgZEADYqfxgwPTR8JAAWKjQkvRgUgh48jMNcRAAGKkZuUi5GGnI0mIp0bFqCYjJ4mno8AAouf1keAEp2ZlYObQBXMChM0gBhSaywgCEVtbIt2R2AHgAJNDQsABUW1iwIZNODmEUwGCgKdnkJuBgAHzfV7vT7fIQiMRcXT8SRcKAsfwYdioXzmURwhFgJHsQxYJZoOCwmDwxHI5AAXWi6LEmLJ7ESNAAsgTobJJph+IJwCwsFwMNDMtzqTT2HTscjMDguSB5mxSEs2k9hWj2F0BKrzOKcXiCUSxSSsTjUZDRbTDfSwFwXDAZRAAO4fUgq01mg2kiXsKW29jc7QYGhwF1mmJUzXmj04q02mUAQX8mIwAHlHWRg6LtZLejKyKRlSARaJ1RCzZncWB8YTiZHyWHXVqLZ7oz7uQBJMDuKaTABen3TNLL3pzpDzzoLquL4YxjZ1Fb11aN5JLbunNfYzbtqbHhbdg+zvpA/sD/fRoZ3DbXG4P7aIE1kUAAorkyDAli5Y1AoJI4HAU06Txei5evu3K5vmO6TvWEZAbqVbukBJorquQFXtyADWMAYABGYzlm0oHks3gAEwAKypNhRZ1qWuHrtaLYgDed5QAAciwjAwAA0phFHwfSQ4HmB24Tt8AB0YnsPkdTsC4TwwOwYkieCU7yWJEFUWICnsAAjAAnNJskqSJO78dycAuEkaAujE7AAD4aq6CnRJB5iOcI6ogjUUAAsIriPMk4QHOsxw7PEiTJEgukZFkOR5IgWkAMxFCUZR4MsqxBdsRjxJMHxIA0srNK07QRTpXQ9DgeCEJYQx0OUowSBAODJBgszwKo5k0AAqv8pBJk1tgaFo7CnIh0F8RAMp1LQADsdQ6Tp00LXUjAkVpAAcWlEVAjDxVwdRact01QPt2gkXUMB1FAWlHYwi2MGtJ5lre/hLD6XBgBgTkUkprpsgu9KjQONGwfqZaUueY2eoyMAssUugchgMqQBW/KCjAPF7vh3JymgCpKkJrrOTha4g/9nqA7uNGoSADr/uOUFA2uJmHgG8A8WeylltT8aJn+ab09RTMgSAgknkTjMwXOcFg+pEuWnRMrtp2d69lAGM0czosC2I4vomWpO8eTy4rlzCsHrT/MQ3LnrM0ebPazSHMM4bUZm22YDPfeT74C+b4fl+8C/lu6tC1jIsjuBwn2YLkuVqDNEUzH8sxgeGFYQ7lOh/RhFGKR5EZ+YTtJ02bsMR7TGsWA7FcenVsu3h9FaxBoniZJ+mSIZP1mq5hOy4Z2l6TJHc9+YzNmRZVm2dHGmqW5AL1UkdHtPqD5sK4KgwN1ZB9WQA32DwAAKi82svpwKQCswALwAuwB95m4/xn2JALxAijAIIgIAAEplEspCsOwd67A2rrxoOwCA8h2B6B4BYCYr04DrhgOxH8SRJQQGAbQJBBI5LPnYFvUg7Ad4tFUCwESwhhAAFp2AABEIDv34PgK4WAiQAHoWFEBOC4ESvAWFFTsHAFhaVDikBYSAjqm8epEL3g4IYXA9Af2QMgEAfIWguHiIwTKHAqHBSMF6dBSx/ggG+kolR1p4imJPmQBBVDgAAAEcpoXYKvdqG98FSJIfvOAR9VFlCsXEYxIBJBoD/qweINwfZQJgWIje7BRiGHYPaGAshpgiQEPYwwjjnGgIkdvfqHiHA/2Cf/G4vR/EUCUXQa0WBMjxF8k8DgwA5hwhoPsdKRxNHfEYdcb4Kj/jezIGqH4992AAHIOEwBcCMnyLg/INOklwQwHwODWXkMMsZnCWFNAWawKZHYZn1IEHogAyuZZIsZGDMBWMsoZEAXCjPGS4XhFyIBXLgLs4QONAHPKuewS+gD7QLI4GgCAJyLLnMuUYUYjTNIxGmOQquLA2ABTaZsTRvymkkhaYFdpJxIXLi2YYfg5lFllAoL4XG704CzIYUw0Y0wyWxDhWAD5iKODPXgeirgAL3DIuETotAIloldUkXkuwDgoW+FaBCtADLRABH8PqVAej+AjKmgpEZ3x2U+l6TAfppBRgjK0iM2YoYGWwqMd9BIxRwqIHiolEAmRsi5CQERQo1BkrlCFTk3qorBoIGqLleojRCptEGLa+KZVqC9EqgMcgRRapjAak1TAswpUvKMAAfn4MbQBMJ64ohzYBekBsZZ1zLNDWGbIEZI15KjbQQoC6QxxMzHGeNgUE0Ll3Ymsd5z5sTt25O9ELYdqQpjeidsgyNsomWqmpceaGmTMHKd+bNYRxHUWLt1tZxxzJsaPuRaS4p3dsrHsfZl1juHKOMWm69bAylvHNc/at3ImpsOniB7m3CwnezfdTaX2l0YpMR8z5JB+0/N+IOdMZ1Z0vZHQmN6P3IhLQnQtA7D30TTu+v9wEw45zQHnH90GUIAfLkByu1duLno1sLJuUdNJtyHnJBSCGZ5GQnH3TSul25Mdnq6MepzLL02snZHNPdhPsFBWc75ui7IeQ+FAUK1qUipCIlFJ1sVppJVIKUcoaarnZRqBFYNi9Q0dCIpG70MbqrxpGJ/eqeZk0tTmBMBVu7yR3zKKoeQGBTgbBc6cHNg4JoHimrNeai1ZorXWptbau19qHWOlpU651LrXW2ndB6GcnpwLeh9Jy4IYgAgBBSRTFkkDTXtY6mKSASJaZ00wFz/qHWGcQKpgqJniqtYs9Gz+VVBg2bqkmsgKblUhZmnNBaS0osbS2jtPaB1bqJeSxdK6N0MvclKzatammHXRWda1urKVP7AoM4G+1WyWimYKN1iqvXY01VsyAezjVhtOa1fwd6GBNspC0vkLSanquIFq+67TR2QBatO7UN1F2iphvyDdvofW43UATZ/T732Ir5DWgD/bB1DvlB1XqyHBRjOXc61pLSCOrP9ZR4957jnZh8gwOZNgZB+C41ehjuK002tVf2zpfHeAmcs+KgG2o6R2tk7DeZy1zBYBMFZZwSonLuWLGxai3FAqvVuN9Z4iVkI9NGFlc5wIiqc3ApVaFibEXlqrRm7F+bCWTpnRW2l26Ol7oatVO98QSQ+kgYNUapllFjfC54O0dnCoYDfDYSiAAhHLuS8g6EGIpG5aY8QT5cCQKAWqWQ4B2DwISEAMQYhAA"}
import { account, bundlerClient } from './config'
// ---cut---
const hash = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  paymaster: true, // [!code focus]
})
```

### paymasterContext (optional)

* **Type:** `unknown`

Paymaster specific fields.

:::warning
This property is only available if **`paymaster` is a Paymaster Client**.
:::

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"834852aa2f15e876b8637bada9b933da54f51fa7cd75cb870a9b3fbf2e264b55","data":"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"}
import { account, bundlerClient } from './config'
// ---cut---
import { http, parseEther } from 'viem'
import { createPaymasterClient } from 'viem/account-abstraction'

const paymasterClient = createPaymasterClient({
  transport: http('https://public.pimlico.io/v2/11155111/rpc')
})

const hash = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  paymaster: paymasterClient,
  paymasterContext: { // [!code focus]
    policyId: 'abc123' // [!code focus]
  }, // [!code focus]
})
```

### paymasterData (optional)

* **Type:** `Address`

Call data to execute on the Paymaster contract.

:::warning
This property is only available if **`paymaster` is an address**.
:::

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"ced9a5af2b2b4037243605ef0025c14d98a6cd6bc5e535c99c4f949ddfbde524","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  paymaster: '0x942fD5017c0F60575930D8574Eaca13BEcD6e1bB',
  paymasterData: '0xdeadbeef', // [!code focus]
})
```

### paymasterPostOpGasLimit (optional)

* **Type:** `bigint`

The amount of gas to allocate for the Paymaster post-operation code.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"a56c64010b5dcc6ac6e6a6f34cc0ec866a2518215ae84a461a0d08906767e666","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  paymaster: '0x942fD5017c0F60575930D8574Eaca13BEcD6e1bB',
  paymasterData: '0xdeadbeef',
  paymasterPostOpGasLimit: 69420n, // [!code focus]
})
```

### paymasterVerificationGasLimit (optional)

* **Type:** `bigint`

The amount of gas to allocate for the Paymaster validation code.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"f05ae0fb6f1403d5aecba685b73d46ab34ef9c4d5cb72e134b742b1f98a8fead","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  paymaster: '0x942fD5017c0F60575930D8574Eaca13BEcD6e1bB',
  paymasterData: '0xdeadbeef',
  paymasterVerificationGasLimit: 69420n, // [!code focus]
})
```

### preVerificationGas (optional)

* **Type:** `bigint`

Extra gas to pay the Bundler.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"71753fb5ce1e60a70254a5693704c8a5ae76b164c7ae03c4bc64b900b1916404","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  preVerificationGas: 69420n, // [!code focus]
})
```

### signature (optional)

* **Type:** `Hex`

Signature for the User Operation.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"1a40e6f44296fe530ae14c7e0d94829f29a2dc7aae770cb67c6ce465d7228ac8","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  signature: '0x...', // [!code focus]
})
```

### stateOverride (optional)

* **Type:** [`StateOverride`](/docs/glossary/types#stateoverride)

The state override set is an optional address-to-state mapping, where each entry specifies some state to be ephemerally overridden prior to executing the call.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"80c3a1c6d90f0ecdd4a397da52fcb1e64ef8e2eb39c0c9f345b5c68c0a460c29","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  stateOverride: [ // [!code focus]
    { // [!code focus]
      address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]
      balance: parseEther('1'), // [!code focus]
      stateDiff: [ // [!code focus]
        { // [!code focus]
          slot: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0', // [!code focus]
          value: '0x00000000000000000000000000000000000000000000000000000000000001a4', // [!code focus]
        }, // [!code focus]
      ], // [!code focus]
    } // [!code focus]
  ], // [!code focus]
})
```

### verificationGasLimit (optional)

* **Type:** `bigint`

The amount of gas to allocate for the verification step.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"06252abd3a9ba7b5459a2da783808e67984c1ddac4fcd50060cddc3e12d5c421","data":"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"}
import { parseEther } from 'viem'
import { account, bundlerClient } from './config'
// ---cut---
const gas = await bundlerClient.estimateUserOperationGas({
  account,
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }],
  verificationGasLimit: 69420n, // [!code focus]
})
```
