<!--
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.
-->

# Sending User Operations

The guide below demonstrates how to send User Operations with a [Smart Account](/account-abstraction/accounts/smart).

## Overview

Here is an end-to-end overview of how to broadcast a User Operation with a Smart Account. We will break it down into [Steps](#steps) below.

:::code-group

```ts twoslash [example.ts]
// @twoslash-cache: {"v":2,"hash":"044a361930e47f9fb693a7da5f850f5be1a5f73ed015302dadb10570c8b382f1","data":"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="}
import { parseEther } from 'viem'
import { bundlerClient } from './config.js'
 
const hash = await bundlerClient.sendUserOperation({ 
  account, 
  calls: [{ 
    to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', 
    value: parseEther('0.001') 
  }] 
}) 
 
const receipt = await bundlerClient.waitForUserOperationReceipt({ hash }) 
```

```ts twoslash [config.ts] filename="config.ts"
// @twoslash-cache: {"v":2,"hash":"09afeed80122d7d528dfb783857c7f3ea3929ed95845f6d7a5f165939f000c0f","data":"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="}
import { createPublicClient, http } from 'viem'
import { 
  createBundlerClient, 
  toCoinbaseSmartAccount 
} from 'viem/account-abstraction'
import { mainnet } from 'viem/chains'
import { privateKeyToAccount } from 'viem/accounts' 
 
const client = createPublicClient({
  chain: mainnet,
  transport: http(),
})
 
const owner = privateKeyToAccount('0x...')
 
const account = await toCoinbaseSmartAccount({ 
  client, 
  owners: [owner],
  version: '1.1',
}) 

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

:::

## Steps

### 1. Set up a Client

A Smart Account needs access to the Network to query for information about its state (e.g. nonce, address, etc). Let's set up a Client that we can use for the Smart Account:

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"2290e47ba6f2c3dc81a3f2cd5ad43e8ba900fd5749b5f820b6acb783fb5dc984","data":"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="}
// @noErrors
import { createPublicClient, http } from 'viem'
import { mainnet } from 'viem/chains'

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

[See `createPublicClient` Docs](/docs/clients/public)

### 2. Set up a Bundler Client

Next, we will need to set up a Bundler Client. A Bundler is required to submit User Operations to the Blockchain for the Smart Account.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"4075c7c9ae3a8ba257e8f6334765304d6751e6d0bb399b7cf860340da84b0ba7","data":"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"}
import { createPublicClient, http } from 'viem'
import { createBundlerClient } from 'viem/account-abstraction' // [!code ++] // [!code focus]
import { mainnet } from 'viem/chains'

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

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

:::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.
:::

[See `createBundlerClient` Docs](/account-abstraction/clients/bundler)

### 3. Set up an Owner

We will also need to set up an Owner for the Smart Account which will be used to sign User Operations (transactions) for the Smart Account.

```ts twoslash
// @twoslash-cache: {"v":2,"hash":"dcb87994605f3d3e206fb944506e7898d18ec16447665fb118ba4cd048c5c5f1","data":"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"}
// @noErrors
import { createPublicClient, http } from 'viem'
import { createBundlerClient } from 'viem/account-abstraction'
import { mainnet } from 'viem/chains'
import { privateKeyToAccount } from 'viem/accounts' // [!code ++] // [!code focus]

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

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

const owner = privateKeyToAccount('0x...') // [!code ++] // [!code focus]
```

[See `privateKeyToAccount` Docs](/docs/accounts/local/privateKeyToAccount)

### 4. Create a Smart Account

Next, we will instantiate a Smart Account. For this example, we will use [`toCoinbaseSmartAccount`](/account-abstraction/accounts/smart/toCoinbaseSmartAccount) (Coinbase Smart Wallet).

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

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

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

const owner = privateKeyToAccount('0x...')

const account = await toCoinbaseSmartAccount({ // [!code ++] // [!code focus]
  client, // [!code ++] // [!code focus]
  owners: [owner], // [!code ++] // [!code focus]
  version: '1.1', // [!code ++] // [!code focus]
}) // [!code ++] // [!code focus]
```

:::tip
**Tip:** `toCoinbaseSmartAccount` also accepts [Passkey (WebAuthn) Accounts](/account-abstraction/accounts/webauthn) as an `owner`.
:::

[See `toCoinbaseSmartAccount` Docs](/account-abstraction/accounts/smart/toCoinbaseSmartAccount)

### 5. Send User Operation

Next, we will send a User Operation to the Bundler. For the example below, we will send 0.001 ETH to a random address.

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

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

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

const owner = privateKeyToAccount('0x...')

const account = await toCoinbaseSmartAccount({ 
  client, 
  owners: [owner],
  version: '1.1',
}) 

const hash = await bundlerClient.sendUserOperation({ // [!code ++] // [!code focus]
  account, // [!code ++] // [!code focus]
  calls: [{ // [!code ++] // [!code focus]
    to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code ++] // [!code focus]
    value: parseEther('0.001') // [!code ++] // [!code focus]
  }] // [!code ++] // [!code focus]
}) // [!code ++] // [!code focus]

const receipt = await bundlerClient.waitForUserOperationReceipt({ hash }) // [!code ++] // [!code focus]
```

:::tip
**Tip:** The `calls` property also accepts [Contract Write calls](/account-abstraction/actions/bundler/sendUserOperation#contract-calls).
:::

[See `sendUserOperation` Docs](/account-abstraction/actions/bundler/sendUserOperation)

### 6. Optional: Hoist the Account

If you do not wish to pass an account around to every Action that requires an `account`, you can also hoist the account onto a Wallet Client.

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

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

const owner = privateKeyToAccount('0x...')

const account = await toCoinbaseSmartAccount({ 
  client, 
  owners: [owner],
  version: '1.1',
}) 

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

const hash = await bundlerClient.sendUserOperation({
  account, // [!code --]
  calls: [{
    to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',
    value: parseEther('0.001')
  }]
})
```

### 7. Optional: Sponsor User Operation

By using a Paymaster, we can add sponsorship of User Operation fees.

Viem exposes a `paymaster` property on both the **Bundler Client** ("on Client" tab) and **User Operation Action** ("on Action" tab) to add User Operation sponsorship capabilities.

The `paymaster` property accepts a [Paymaster Client](/account-abstraction/clients/paymaster) ([among others](/account-abstraction/actions/bundler/sendUserOperation#paymaster-optional)), which is used to fetch the necessary data for User Operation sponsorship.

:::info
The example below uses [Pimlico's Paymaster API](https://docs.pimlico.io/infra/paymaster) – allowing consumers to sponsor gas fees for users on over 30+ chains.
:::

:::code-group

```ts twoslash [example.ts (on Client)]
// @twoslash-cache: {"v":2,"hash":"b4b47463933283a6112b22b4de9f9458111462c666033e98f7afbf70a8fd05ca","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvfGjRYAPKSwiAyiPwwAts150aYKHF4AlZWo3beAH17DY/dmBhReAXlsGYDp1Aq9SzADuuvQwBkYARhAQrDDMUu78bHAwAHyMgqSsAPyIvHBopI4A5tYe9o7OfiKSDsW5vAASslgAKgFgcFgQpGgAwrXsxYpm6lrMfgGBqdx5zXLt8V09aCOqY9qTQakAOmDsmt290i2U1MzFCCjIILBwIkVY4pJnfaRxNEY6ja2tAAq8QpLI5oQH4ZigmpgJxiIxoCC8HQAKRUAHkAHIAWmMfz6vAAgn8AJIAOhAAF1yVQCsxekgAJxUWJgYpofBIAAsVDQtOKMAYiAIpyZlSQAAYqOpacwxGQGQBfCjobC4QWEEjkbl6JhsTg8ATCMQSKQPD4wABCdlipD6HDCqyBnRBIX0hl4iydK2q4McLrCbr6PqkNjsXkqLncoe8VURIhqwlBen9RhU2l6+LjEATZSj4bc5TDPmqdrAidC4V4tvY9pznmjEYL9cmowsOiTFdM61btYqPnzuZ86Sw0s0/LIcDyloM1qr9oGYDq8kdy163uYjj8MvjpeL1Z3/hb4xmk6tZFnpaXHRXaDXG9j25vvBEJcfSi7R72B2dpohFtPNpfM4oAgEQrhAN4zS+Xgpyga1KxfXhAnYNlEV4Yp2BIKRkA9a9yUYGQ5AnAB6IiiGrTQSTgfAiOA0CiOfPc0DgIjHEKCA+ChOpMmcAQelQ5BA3XMA8IIrBiNI8jKOo2jmIY+1ZKDHgST2PZMV4AARECJxOQjEBIsitCkoityzUtMWYCICgCI1JHol9mIif8zh5S4kGQG5hwCTQzk4oZeDU4AAAEODAABraD/3PfpBmKeUKQoG53jQTJOjOfEIunMh4MYkleCCkLwpgmcXziqkbjoZhDliM4vxWPKn3eX8/kECIOBEKK/FE3h5QEUgIE0XgAHIDM0QbP0OOrgAas0irPBCev4PqBuG8jjMzBNzMsoEbLAMb9gm44pu0RwnFBBalqGkb6MUva9ihAonwQ9wfxoZrWvYdqX0YYA9l4J8gzyY7oX5ChfsBK8QTyUTGG4UGwHlbgVNESQHsczKAMY/MXr/dGou+sG5J3MHl0hnSsEYQbRPErAWrakksAONqIBJCRSIAJiIgBGIi30G2G9gRikqRAGk6UQDkJRAZlWXZRBOcZc5SD5AUQGx2aMftM4QtVNnJXBayaHIRA2cVZUcDwdU5S1egdQ4Lg+CEURnhNRrXuYDBtAKObGMvYE6vbN0cJBZt30sAOjE7cxxh7QseMjOtwyHEcx1IbS/ndz3Dai+dFxJr0D1D5hj14dOPa4LOX19z1VwLqPtF2fbv1dmBS8z73NaoGS8Ag38oNb8usqi5SwFUjStKhlpxJGoyTI2iyrJlZ27MY5jhzLr3NXOVzrhATzKp8mL/Ly4LHHC/uN+zmLSoSkAkpShAqHS8/Dey+1cvy0+S4zgeNdLa/ytoJVLA1UqC1UOmTbqvV+qXXIntMBoIprY2fu3UskDFrQJWloNaD5NoLx2rdZGnRQRrzbr/UEz1m7ILIfjKQ4M/a9AnnICmVM9JERJOwvmcNBaUmpDyMWAA2LkUswgyyQGzTm3JeT8jwEg7+F9AIiicEgAAzHraUsojYmyVNQFUFtiBW2oNqQULA7b6nuqCWepY8itAgAMRwEQuAwFTLSNAGYHzGH5ClVoKpxrOksQwXhLikCc2UZLaWbIkAAHZJFK2kYKfxWtRSIAAKxqINnKRA9JTY6PNmqfRm8aA22Mbqe2T4UaQhfHkH6tC/r+LyAOZwABuMGf0HFoHUA0apf1undM0IIVg4gRBsByHkKIMQ4jBhLklcQ/AMDyAALL9MGcM80EJ1CoieMaOAqQY71maTUyBIYE4+H2T0oZYxWgHBgHkMAghNARDIKc7pcZ2BYA8cwKADQkisBSGULpPTunvAAI6CHgGgBojA96jkNtpPoIhXkeJBWC9OXkU76lcDsv4S12ApHkHChFMAkUFA8clUgYBvE4FSE8v6PUjm9iaS0/6QkqmMp6a1ECoUACitBgE9HHCyg5ALAVxGAmAVgGBeD2GYEsgVQq5XCo+ZIcVvAwCVWubwHYIBOVsnHEMkeIBqXyoBY1UVyrMisDyJqlhJF+QaFTnqlmEBNWGqNQq01ErmAMwAKpZEtUKXSJFPXsBJLa3V8RHXGQZs61lcr5Quu6XGmNf12G5U5vw3gmg+W8BTfGv6Gp2CzMaFwfADRBKOAAGpkALRgItVEABikyGlQENYmg5KbeD8IABwZqzTmxlAc8jyHMY9TG4c8pJuzewltvAABkvBuWLxReINg8gU2pHSPwMAeRGCEzQHkKKq72EzDcDs3dfAMWvwvGu/Z8pfF1V3WcUWAoQkK3CbLfhMTlYyIUVLJJqTVb60XhkzmnbsmYFyQQfJzkjGq3KbwEhP8oqyu6XUxs4ZDVtI6choVfSBkfWGQ0MZsR4hlCxfyGZczFl4aGawVgqz2n4A2c7bZuz0OMtpWhk5jLzkaEuaOG5dyHmkENS8t5IqvnJBgH8idwLQUFAhVCtF+74ViaJWgFFaqYXnsxdi3F+LVNybQCSrxKoqXsdY1xg5UpHD1OOQyg5UAITMBUIIfgDhaANHUk5lzbn2C0As/ZnpdAcBFFHKWNgAB9dlIhQqtAuA0c0rAOVxdKHS2OzbGXtvpD294k6SSGoHbwIdcHd1+grP8oVfaDk9TnQusQS7OCsEPSSddjBN3bt3fuyua7tMjvtL1g916BaPr4c+yJQi33BP/Xwr9goEPyMYokpRiBokAfUYbJA/CwO6LyRqaDRSQAmL1BxShciK4+3mG0CGKx5BNr8N8lIqQ/BNqTqimF2Gnwyl41chotz7lZTS/WALGWDmhRgBgBoVkSjA+B4a1Vo5IeFGh4DvMKPLM9O6LRkoRJSxkCIGwX7gmAecZ4mjwL3S84MKaC0ION27sCEk2Zg5b467MAaE2m9sxx0HNQxzxlmGS0fZ6bh5ZtHCPRGI5Msjshq0LKWfh2j9H1mbJRjssnIOekcb51Zr7MA+Pqr+0JkTKn3mfLyA9qTNgKvGsJYZhTyd3uVhN7b5FDvxy9axf1HFMA8XO7U8ZslFK0jTvV4a9tnM2Y5ak1VoL5YoCDt3RurdvAd2VMvasHrJ6+ulgG91o9N673HFkevc7HdbhaW7s3PuZ3B4vmHqPTSoFGFiVYdPKi2DTJoFwdtJeu7V414KRcK47ld4jgPguPyAUT5hS/iXlB0UJ+xXiolTxZKH4gCfgP9P79p9nwH1Ff+IAKpVVwKAg6CCIHnQwSNOB5/6rF9IVFNBF1MGaA73PLaBtjQEOHfN0vqCKEzQqE8Z/lKc90yZmFJ5WEU1OEBZuAhZAkxZ5ZdZhEWQIljYJFFZZtVZTs58yEltVRVspR0lNEORtsINLYCkYNIU+oQtMA+AwC5gadrtehbs7NfAGcfk0ggIK9BRWgNATBcQ6Fq4AkRZRsxFlEUDJtMlP04lqAWDRDtYkBO00kgNNFyDVRIM9trYVYjtSlRI2D6UOCLd0hzVEcigWRgdqgYoGhLtadegc4hhDD0t7tGcuc7CFDnCmxODHtC9QRRJnIh83Ibg7gHhXlnZXgq9UIfh/hhDrwwQIQylgZYRAQERkQ0QsQcQ8RCRSQECxCgljYORVFUDRFxZZCVYAjFFVQVC1sSDgllENC9FtDDEDth00ZYJ58TxcZK4PD6FVh6cTDnt2C/BrcLJ2A8gTUlUJVUAZMRUpjeBHAaYmIJi5ixVpjyRc1/BVjlUaQaBFkeQIh2AOBMA/VIAwA14LJYho1BU3V5jwN1VNVzFSBBAxAehrjNcRjZjFU1iFjzjBBlitjvjlUZibihVJifj4cHiQAIBAgnBSB3jXVAT3VAQVQ/UIgMBPgEShV5QNivjkTIS/V8RWATUMBURYSyAsSbcgSJV7i/UyA+p4SDV2NPjQSkT5jFj/jtJwTgTcTWTuSJUCSNUQAcdkJGt2AAAvZwSknpfklEnAOk0gBkykxUbneVWUjkgE2UkExEtkiEtVP1GEuE6UuVWU2koU9EzEpk1knEzY2UwUzVHHfHDgKAbVO1GAO5fEKAKAd4OAOAMko0q0tU7Ymk1EoU+kt4wMhNFkoM6k34pYrk4M3gbUxEu0/UoUsHDAY0sExMs0zVQQViNmZJfhLM7qXkmM/EtMh0sAJ09gKAdESQEQGAAAaXBxLNNNDM1XDMZJbT8HbQlijzy2jLlRjwTTLO6XD2y0zVyxHL+lzJFjTDQGuI42tyqxVNGPWisRJw126QF06QnRFwVxGV4CIwmVI2mVlyo1FzozWUYxV06DVy3JD0fO41131wE3+2E242dw+Qky4Okz5Jd3k23UU0d300RUMw02hXdyz0900G919wJX91X3JVMyfO1zOQBlVLlWiy5R5SS3eFTiFxNMTKlRlSwp1L+lTP4yFNdLDX1U2PLPmPNT9WtSIlDXtXDQkBLMYp+KDR9QtSFNYqDRDR1Q4rAAjSDW4oTU2NbXlXD3TSnOjynQnXzULWLVLSDErSKDUvrUbXYJbTD3YQ7W7UUrywKzjwTxKwQjHWtx6RnMgVq0AXqxcUa2a1a3axT063Tzct6zPSz0G3zwFiGKMNSBGwKOUUkKZBEXQJCXKLwHaOKkWyqOCUwOILUM20aN2wMUKV0JKTMWbnVgPV6JEK8PDFcK4Key3KHNqUOJWNjOTOzNjI1ITPqrHMauRN2JgH2LGOOIwFOMkAuNahgDbJzI7NgyIWeNeO7OZPIqpOROarquRIaqNSoqhMNIpMjNdXbPlPNIxPgBLJtLxPmPtI32JJFVJPJOmoAtjLnK7OVOqrmvZL+M1MTOQDaser1OoqrNFN1ElKgBGpurGrus2u6geplMTIWt1OBNsuItjJOvWqup1O2qhItP2pBs13evBrhsrOFOrN1BdNEvdM0E9O9PgD9MuoBuRNusVIjJ7NmqxvmuepaqWphvauOpxozKksotGp2rzILKLIOsxtuM+qhMdPxvrNEGbNbPRuFuVWpqVJBpVL7LFAHJTTBvHOUuq3eonNVs1p6TnLgAXKXP/Lss1rXMyzNuCvS1e0035Qyg6LIUcOGB6y6IdoCpaz8Oml/EKp/S7kFB7k+FQnVnT0QmQnwFQnQkwiTPsLQBEigP0kknbxkmXnkhYlLD6g4him4hcH4D4h0AEiDDjoDQkkMiTq0hTtLAUiEiUiRjUkb20lYrb2on8W7y/1sj7yIgSuyqCJ3ihXHzqCPg/hnx9sYidsPzvjXzSntrgiHmPgKmnvn0P2P2AVPxAHgXv0oVpg+g6kvygWWhv09sQQKsinmj3pgSwRbvnh72/0PozSElOmf2v1Wms06B/yssxkAKai3s+kYhoT+hfsBnvpBmJgUObxhi4URhHkIVRhPo/q9poBHvtD/uzxvBAb6LAcpnjqIhpnehEHpkZg+mZlZiIA5m5l5n5nhngJ4XyLFmUQ5BqOkPljisFDVlgbLyULllSsAw0TES0TNk0MoP210KwFoLIHoPvE7waAAAMxRaAAASYAKHFkeUKRsoNxTvE2lDWqqG6Y1mnRuMzkxa+Yt620xMzq7qw43q/q8492S44amW7mwG3m8aqyF4+ERGqM+m2WiVSGrUvRhm9mr66Eimhxj6uWsa1GuAQW0x7GoJokkk/0jamJqmoGmmjxmldWxxxm+Moxn4kxo6kWv1EU5dDgP6ymu41JhWumvR9Upm3J6GidAJwpoUhGrm/RucyJ6Jgp5VE6sW502i94D0r0n08mgM5Jip5x4G6p7pnxup/R5aninpjm6Whi7xuUqE/M0sQs4s0Jw666isoJvp2siWxslszM0J5GhUqpma5W3WkkTJsy9jbWoy+WO5w1A2o2q05ci2/LAWYHHg0CPAfgqTdR7MeEWwX5XO0gMEKTWe/gnFUO2jY8qTQQFIHOviDMZjBI0EWTdgXLEjfxREL4KQXkO5N+MK2hyJKQ6K2WVbGbOQhJZKuWFAtKnh42TKrQ7K6gkRiAOgjADiF8UtBCK3RlXnfS/nG8vc1kg8mjI8k8kjGwaXCjOXajFZG8pjLZB89ChNWHF8i5K5d8o3L8glH883STTR7MtTe3N7O2sCwC9TN3VOD3XTH3O1pC0lFCylNC8VqzTCvRnC7lXlAi7SfxtZ0igZIiraxMk6gZ+4eINppps1X1QSrB9iuN8Sri0JxZj1b1ZNq1LB4StNh1VmSSrN6SidWS4cl5hS3tPWuVVSmtdS/dTSqtHS/ABtXV6rQy3KLtN5/tCyorYdUrGyideymredJyh13oVytdJPDrNPd249C9Pyi9Rdm9f5zuXg8CBCNkRI7oViOENIqQblGAEQf440QQvEL1YwAAGTJEQIFGUU7WKOkI/SwLkIfSZditqPSvZe0XuKaK5YOxoN5bEf5fgwHwaEKFBQtbQn5CoS8x5AaCoUxa2WQE1WVgQ6c01XJE7Z6Uw4HxUGSgiEQ7ZzyBQ52jgHQ5AAI7wKI5alI5w87a13YIBbAioSSK4gCGdnvZocffpBfZpYZGYdHzwIIOCSEVZY2z/f4cA6oNaLgz/06NmrFaMIw0lcjYzXl1lfF3GQVamXIwvO07VYYw1dVzw51dDz1e+2osN0eWNbE1NZ8Mty8e5qteAsddhT9wgs8+da9z0287BQD09eD3Mys99eZWfIc281c3c08xi98383C9jxCyuXC1YCiySxixSwSyy9iwuAs+TSMsnNrd+YOUK2KyIRQbKzdD0bHdnQncXRcpXVnba2T1T0Yi6x9kz2XZfFz268CvhgpYFAlgmyE7lmmykRViU/wK/ck+4ek5CQ5cEZ0KYB5b5YYNAepwWE8IGMZzY6BYEKyLiJBGG85GUVW2kIVnpZVjAPE4m9ULZb4ZyQEag1W+KVMT4AML24qoyCyHMORyqs46GFsOYL6KdtKqLGc+LmKuvEh5jBMM9sqK3mHxCPgDCLvMiMgmiN+ABDAOxaSJhCYlSNQhRAxGxCEJyLJGoafU5HoairQNliERu4tmFF/WW05n/Sk+AwaP/Z205fk5VmHXBCojyBkfkcUaR2UakbO5STFGpcZ85BE5F/ZC/ZqO56Ni2z54oLe5aKF7gy7rIVdsSvtHkFh5BHh+MMZytu8NGO0b8ZmYMZetavGZ+PMf+J6uQj6qFLOMGquIuZ5qhKeLcdppmpqYhrmYd9ZMTYFJxtabLayYmZRr2qid2aFsT+ac1XifOsSfSbCZDMmbSfutc/0d8devT/0d6f2BKYlKlID6cahKmbD8d7L/qtDYz6WaCfj9WY74L+T8tJkor9WqKbxv6cJqGdJt9Nz/KZ+PltD+qwedqZyfmfb8r+WfOZ7/abGs2bQG2a6f2cCdFtH+OYbKlo38d7n7z6VqMv7NMrVpL7HeedTRK+nLrdnLGsNpcWNpFbbUtpU43PALatWkGnEvjKwIyjIJcp5RVueVmQqsrySuW8sxi1Y+tNchXT7Pq1s5E5PyVmb8mbmc6wdwa7nFPCBVtaBcCgkFNFH5zgoBdEKhmYLkHiZyoDkuzyP1hOgDZ4U+UhFEvjH0lReBpUEbbgbDQOZQlY2eqBNms2Yopti6RbTik6gT759EQubASvm2LqFtRK6bCSlGnkGVtsSmxeSn21ZINta0guSsC220qNtdKaAnQXlmMoGDY8roSylV2HZx4jAdXN/g5Ua7OVp2LXI9HO08oLs88LWXyn138qBCmcKpF7LL2SSc8GepRb9iz0FCG8oo93EDI90W5ZJter3ZojlTW6iNeg4HFIAYC9QpBSAGyMgBCGNCDplqppCAH6lkYiAIg9ITtIImUQRBO0kSZofSGSRig60YoDkPwk5j8BlE5oMUM4H4D0h6Q6kTtJ2jrRsxxsyScbOpEpKyknSoKPIPEAwA3oqQW5G2lBS4EqB/QxQsgGUO47GgKBMKeQHb3GIr8W+kfcvq7x2I8g9iHvSxl72sZ+97GDwvvn6mD5TVi+4fJqncLb6NM1m8NEJpv0ua7UB+FbIftGxxrZ8PkF1MZhf0qbz8PiJfJfoY3mawjYmR/H6qUzr5fD1mVzNEZ4wBHZMsRUfJGnCK77giQRvfYkVCLRqD8iRVfGsgTTdIT8Rm0/evik0L7XMF+GIiPsvy1IpocRwgkfuyJOZn8Z+4TfkaSIyY2Db+pXB5o/27a8BXmd/dwR8y/5fNYOq5G3mVSTJiil2Omfzj7gOFFCShJwioZIHoGmYDugoc0H1A+RDICgUEI4dCxtHOwSeOqBeqQHrxgA6648MmFPETrN1KOndf8EREKFQBPR3o40IEW3gj4+6koBCGpCfzgtUWuAMqKPi8hnASBqcQervl4CWi4x1okLLaLADnDxw49ZCuvmBa8BPRvABMZIGkDFod889MsfGMrHOx7ROAJeoAhPw1Q78R9GaGw33CiQ/AnkFIAM0fr71YEt9IGA/SvwLisEL9OALfmdBTR4QzidMAAPnHn038/iTcUjGHSEt3Au4hcqC1LDfQbBCMM8QbwnHkJ4GOMN2l9H+QAM76J0YBrQkYIQEKGD4qBsOlWHwB8wQQdcKCCSF15YxPY8oc7GQb+I4Y/9YZNpFQCpE8gg0WRjAT8CgS8gM4mAAMwpicw+YpZCBnkVp4pI2Yr6cbpzDpZTc8AsEisfBMTFq80hGSCKst1145DjE63MDhxFQn1NpiSrWXH0GGSXDGUNQuobQAaFNCWhbQjofwi6E9C+hAwoYSMLGETCphMwuYRyAWEcglhINFYWwDWGIgwAmwoKnlHlDrpyQUQ6IbEPQKTdYkQvVCSkIVga8xEXE7IdyzyHiN4Q0k2Sc0KKIKTOh3Q3of0MGHDDRhUAcYZMOmGzD5hiwzVFEP4T/ppCKBBIdQAgD3c2YksDyeLC8lAdhGvk8DnhLMkYBZeAwmiYrxSQidQJOUrhutgyRkFMhcnIRngA2GVS2Yb7RhpLEykESBmDU9iUbE5icwcSkoaAJoXXpTQuoq4o8VuMmgapaErDbooxD8AExcCj+F8FwjPqv538ZkK+m3V2i30kJ1XOaYNBJD0QYoJIAAFanjgJinffE9FfHAEPxvAEiEmQACENQWALwAADUf08kGgxEIYNWKODOmAzE0BMwI0JDLmKNOSTRDRpPMZQJwnelEQvpP0qTADKBmUM0ZGMyaf9MBmPiqu0EuBitPfG/1/kSEgmNtLBgzd8JT0taXjOQDfSCZ2M4GdeFBlYNwZH0fBlDMIYwzSGyMkQLAUobEyHoKvcCYEEgnHlnxlEQ4cxNOGSBkGsrNCdbn8lDR6hjQoKa0PaGhSVJEU9SdFNinaSEpekxYYNGQndIypA00ShTDFAkgxQYoEiZAxpQ4zBYVAaFMwCQCgB2wcARMYKCYggB5Q8oIAA"}
import { http } from 'viem'
import { 
  createBundlerClient, 
  createPaymasterClient,
} from 'viem/account-abstraction'
import { account, client } from './config.ts'

const paymasterClient = createPaymasterClient({ // [!code ++]
  transport: http('https://public.pimlico.io/v2/11155111/rpc'), // [!code ++]
}) // [!code ++]

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

const hash = await bundlerClient.sendUserOperation({
  calls: [{
    to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',
    value: parseEther('0.001')
  }]
})
```

```ts twoslash [example.ts (on Action)]
// @twoslash-cache: {"v":2,"hash":"98f5c70c6d59ab5af329020154ebdba09401584cf362e71d18cf7a643454fb45","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvfGjRYAPKSwiAyiPwwAts150aYKHF4AlZWo3beAH17DY/dmBhReAXlsGYDp1Aq9SzADuuvQwBkYARhAQrDDMUu78bHAwAHyMgqSsAPyIvHBopI4A5tYe9o7OfiKSDsW5vAASslgAKgFgcFgQpGgAwrXsxYpm6lrMfgGBqdx5zXLt8V09aCOqY9qTQakAOmDsmt290i2U1MzFCCjIILBwIkVY4pJnfaRxNEY6ja2tAAq8QpLI5oQH4ZigmpgJxiIxoCC8HQAKRUAHkAHIAWmMfz6vAAgn8AJIAOhAAF1yVQCsxekgAJxUWJgYpofBIAAsVDQtOKMAYiAIpyZlSQAAYqOpacwxGQGQBfCjobC4QWEEjkbl6JhsTg8ATCMQSKQPD4wABCdlipD6HDCqyBnRBIX0hl4iydK2q4McLrCbr6PqkNjsXkqLncoe8VURIhqwlBen9RhU2l6+LjEATZSj4bc5TDPmqdrAidC4V4tvY9pznmjEYL9cmowsOiTFdM61btYqPnzuZ86Sw0s0/LIcDyloM1qr9oGYDq8kdy163uYjj8MvjpeL1Z3/hb4xmk6tZFnpaXHRXaDXG9j25vvBEJcfSi7R72B2dpohFtPNpfM4oAgEQrhAN4zS+Xgpyga1KxfXhAnYNlEV4Yp2BIKRkA9a9yUYGQ5AnAB6IiiGrTQSTgfAiOA0CiOfPc0DgIjHEKCA+ChOpMmcAQelQ5BA3XMA8IIrBiNI8jKOo2jmIY+1ZKDHgST2PZMV4AARECJxOQjEBIsitCkoityzUtMWYCICgCI1JHol9mIif8zh5S4kGQG5hwCTQzk4oZeDU4AAAEODAABraD/3PfpBmKeUKQoG53jQTJOjOfEIunMh4MYkleCCkLwpgmcXziqkbjoZhDliM4vxWPKn3eX8/kECIOBEKK/FE3h5QEUgIE0XgAHIDM0QbP0OOrgAas0irPBCev4PqBuG8jjMzBNzMsoEbLAMb9gm44pu0RwnFBBalqGkb6MUva9ihAonwQ9wfxoZrWvYdqX0YYA9l4J8gzyY7oX5ChfsBK8QTyUTGG4UGwHlbgVNESQHsczKAMY/MXr/dGou+sG5J3MHl0hnSsEYQbRPErAWrakksAONqIBJCRSIAJiIgBGIi30G2G9gRikqRAGk6UQDkJRAZlWXZRBOcZc5SD5AUQGx2aMftM4QtVNnJXBayaHIRA2cVZUcDwdU5S1egdQ4Lg+CEURnhNRrXuYDBtAKObGMvYE6vbN0cJBZt30sAOjE7cxxh7QseMjOtwyHEcx1IbS/ndz3Dai+dFxJr0D1D5hj14dOPa4LOX19z1VwLqPtF2fbv1dmBS8z73NaoGS8Ag38oNb8usqi5SwFUjStKhlpxJGoyTI2iyrJlZ27MY5jhzLr3NXOVzrhATzKp8mL/Ly4LHHC/uN+zmLSoSkAkpShAqHS8/Dey+1cvy0+S4zgeNdLa/ytoJVLA1UqC1UOmTbqvV+qXXIntMBoIprY2fu3UskDFrQJWloNaD5NoLx2rdZGnRQRrzbr/UEz1m7ILIfjKQ4M/a9AnnICmVM9JERJOwvmcNBaUmpDyMWAA2LkUswgyyQGzTm3JeT8jwEg7+F9AIiicEgAAzHraUsojYmyVNQFUFtiBW2oNqQULA7b6nuqCWepY8itAgAMRwEQuAwFTLSNAGYHzGH5ClVoKpxrOksQwXhLikCc2UZLaWbIkAAHZJFK2kYKfxWtRSIAAKxqINnKRA9JTY6PNmqfRm8aA22Mbqe2T4UaQhfHkH6tC/r+LyAOZwABuMGf0HFoHUA0apf1undM0IIVg4gRBsByHkKIMQ4jBhLklcQ/AMDyAALL9MGcM80EJ1CoieMaOAqQY71maTUyBIYE4+H2T0oZYxWgHBgHkMAghNARDIKc7pcZ2BYA8cwKADQkisBSGULpPTunvAAI6CHgGgBojA96jkNtpPoIhXkeJBWC9OXkU76lcDsv4S12ApHkHChFMAkUFA8clUgYBvE4FSE8v6PUjm9iaS0/6QkqmMp6a1ECoUACitBgE9HHCyg5ALAVxGAmAVgGBeD2GYEsgVQq5XCo+ZIcVvAwCVWubwHYIBOVsnHEMkeIBqXyoBY1UVyrMisDyJqlhJF+QaFTnqlmEBNWGqNQq01ErmAMwAKpZEtUKXSJFPXsBJLa3V8RHXGQZs61lcr5Quu6XGmNf12G5U5vw3gmg+W8BTfGv6Gp2CzMaFwfADRBKOAAGpkALRgItVEABikyGlQENYmg5KbeD8IABwZqzTmxlAc8jyHMY9TG4c8pJuzewltvAABkvBuWLxReINg8gU2pHSPwMAeRGCEzQHkKKq72EzDcDs3dfAMWvwvGu/Z8pfF1V3WcUWAoQkK3CbLfhMTlYyIUVLJJqTVb60XhkzmnbsmYFyQQfJzkjGq3KbwEhP8oqyu6XUxs4ZDVtI6choVfSBkfWGQ0MZsR4hlCxfyGZczFl4aGawVgqz2n4A2c7bZuz0OMtpWhk5jLzkaEuaOG5dyHmkENS8t5IqvnJBgH8idwLQUFAhVCtF+74ViaJWgFFaqYXnsxdi3F+LVNybQCSrxKoqXsdY1xg5UpHD1OOQyg5UAITMBUIIfgDhaANHUk5lzbn2C0As/ZnpdAcBFFHKWNgAB9dlIhQqtAuA0c0rAOVxdKHS2OzbGXtvpD294k6SSGoHbwIdcHd1+grP8oVfaDk9TnQusQS7OCsEPSSddjBN3bt3fuyua7tMjvtL1g916BaPr4c+yJQi33BP/Xwr9goEPyMYokpRiBokAfUYbJA/CwO6LyRqaDRSQAmL1BxShciK4+3mG0CGKx5BNr8N8lIqQ/BNqTqimF2Gnwyl41chotz7lZTS/WALGWDmhRgBgBoVkSjA+B4a1Vo5IeFGh4DvMKPLM9O6LRkoRJSxkCIGwX7gmAecZ4mjwL3S84MKaC0ION27sCEk2Zg5b467MAaE2m9sxx0HNQxzxlmGS0fZ6bh5ZtHCPRGI5Msjshq0LKWfh2j9H1mbJRjssnIOekcb51Zr7MA+Pqr+0JkTKn3mfLyA9qTNgKvGsJYZhTyd3uVhN7b5FDvxy9axf1HFMA8XO7U8ZslFK0jTvV4a9tnM2Y5ak1VoL5YoCDt3RurdvAd2VMvasHrJ6+ulgG91o9N673HFkevc7HdbhaW7s3PuZ3B4vmHqPTSoFGFiVYdPKi2DTJoFwdtJeu7V414KRcK47ld4jgPguPyAUT5hS/iXlB0UJ+xXiolTxZKH4gCfgP9P79p9nwH1Ff+IAKpVVwKAg6CCIHnQwSNOB5/6rF9IVFNBF1MGaA73PLaBtjQEOHfN0vqCKEzQqE8Z/lKc90yZmFJ5WEU1OEBZuAhZAkxZ5ZdZhEWQIljYJFFZZtVZTs58yEltVRVspR0lNEORtsINLYCkYNIU+oQtMA+AwC5gadrtehbs7NfAGcfk0ggIK9BRWgNATBcQ6Fq4AkRZRsxFlEUDJtMlP04lqAWDRDtYkBO00kgNNFyDVRIM9trYVYjtSlRI2D6UOCLd0hzVEcigWRgdqgYoGhLtadegc4hhDD0t7tGcuc7CFDnCmxODHtC9QRRJnIh83Ibg7gHhXlnZXgq9UIfh/hhDrwwQIQylgZYRAQERkQ0QsQcQ8RCRSQECxCgljYORVFUDRFxZZCVYAjFFVQVC1sSDgllENC9FtDDEDth00ZYJ58TxcZK4PD6FVh6cTDnt2C/BrcLJ2A8gTUlUJVUAZMRUpjeBHAaYmIJi5ixVpjyRc1/BVjlUaQaBFkeQIh2AOBMA/VIAwA14LJYho1BU3V5jwN1VNVzFSBBAxAehrjNcRjZjFU1iFjzjBBlitjvjlUZibihVJifj4cHiQAIBAgnBSB3jXVAT3VAQVQ/UIgMBPgEShV5QNivjkTIS/V8RWATUMBURYSyAsSbcgSJV7i/UyA+p4SDV2NPjQSkT5jFj/jtJwTgTcTWTuSJUCSNUQAcdkJGt2AAAvZwSknpfklEnAOk0gBkykxUbneVWUjkgE2UkExEtkiEtVP1GEuE6UuVWU2koU9EzEpk1knEzY2UwUzVHHfHDgKAbVO1GAO5fEKAKAd4OAOAMko0q0tU7Ymk1EoU+kt4wMhNFkoM6k34pYrk4M3gbUxEu0/UoUsHDAY0sExMs0zVQQViNmZJfhLM7qXkmM/EtMh0sAJ09gKAdESQEQGAAAaXBxLNNNDM1XDMZJbT8HbQlijzy2jLlRjwTTLO6XD2y0zVyxHL+lzJFjTDQGuI42tyqxVNGPWisRJw126QF06QnRFwVxGV4CIwmVI2mVlyo1FzozWUYxV06DVy3JD0fO41131wE3+2E242dw+Qky4Okz5Jd3k23UU0d300RUMw02hXdyz0900G919wJX91X3JVMyfO1zOQBlVLlWiy5R5SS3eFTiFxNMTKlRlSwp1L+lTP4yFNdLDX1U2PLPmPNT9WtSIlDXtXDQkBLMYp+KDR9QtSFNYqDRDR1Q4rAAjSDW4oTU2NbXlXD3TSnOjynQnXzULWLVLSDErSKDUvrUbXYJbTD3YQ7W7UUrywKzjwTxKwQjHWtx6RnMgVq0AXqxcUa2a1a3axT063Tzct6zPSz0G3zwFiGKMNSBGwKOUWUVfREXQJCXKLwHaOKkWyqOCUwOILUM20aN2wMUKV0JKTMWbnVgPV6JEK8PDFcK4Key3KHNqUOJWNjOTOzNjI1ITPqrHMauRN2JgH2LGOOIwFOMkAuNahgDbJzI7NgyIWeNeO7OZPIqpOROarquRIaqNSoqhMNIpMjNdXbPlPNIxPgBLJtLxPmPtI32JJFVJPJOmoAtjLnK7OVOqrmvZL+M1MTOQDaser1OoqrNFN1ElKgBGpurGrus2u6geplMTIWt1OBNsuItjJOvWqup1O2qhItP2pBs13evBrhsrOFOrN1BdNEvdM0E9O9PgD9MuoBuRNusVIjJ7NmqxvmuepaqWphvauOpxozKksotGp2rzILKLIOsxtuM+qhMdPxvrNEGbNbPRuFuVWpqVJBpVL7LFAHJTTBvHOUuq3eonNVs1p6TnLgAXKXP/Lss1rXMyzNuCvS1e0035Qyg6LIUcOGB6y6IdoCpaz8Oml/EKp/S7kFB7k+FQnVnT0QmQnwFQnQkwiTPsLQBEigP0kknbxkmXnkhYlLD6g4him4hcH4D4h0AEiDDjoDQkkMiTq0hTtLAUiEiUiRjUkb20lYrb2on8W7y/1sj7yIgSuyqCJ3ihXHzqCPg/hnx9sYidsPzvjXzSntrgiHmPgKmnvn0P2P2AVPxAHgXv0oVpg+g6kvygWWhv09sQQKsinmj3pgSwRbvnh72/0PozSElOmf2v1Wms06B/yssxkAKai3s+kYhoT+hfsBnvpBmJgUObxhi4URhHkIVRhPo/q9poBHvtD/uzxvBAb6LAcpnjqIhpnehEHpkZg+mZlZiIA5m5l5n5nhngJ4XyLFmUWSX/WkPljisFDVlgbLyULllSsAw0TES0TNk0MoP210KwFoLIHoPvE7waAAAMxRaAAASYAKHFkeUKRsoNxTvE2lDWqqG6Y1mnRuMzkxa+Yt620xMzq7qw43q/q8492S44amW7mwG3m8aqyF4+ERGqM+m2WiVSGrUvRhm9mr66Eimhxj6uWsa1GuAQW0x7GoJokkk/0jamJqmoGmmjxmldWxxxm+Moxn4kxo6kWv1EU5dDgP6ymu41JhWumvR9Upm3J6GidAJwpoUhGrm/RucyJ6Jgp5VE6sW502i94D0r0n08mgM5Jip5x4G6p7pnxup/R5aninpjm6Whi7xuUqE/M0sQs4s0Jw666isoJvp2siWxslszM0J5GhUqpma5W3WkkTJsy9jbWoy+WO5w1A2o2q05ci2/LAWYHHg0CPAfgqTdR7MeEWwX5XO0gMEKTWe/gnFUO2jY8qTQQFIHOviDMZjBI0EWTdgXLEjfxREL4KQXkO5N+MK2hyJKKtA2WVbGbOQhJZKuWFAtKnh42TKrQ7K6gkRiAOgjADiF8UtBCK3RlXnfS/nG8vc1kg8mjI8k8kjGwaXCjOXajFZG8pjLZB89ChNWHF8i5K5d8o3L8glH883STTR7MtTe3N7O2sCwC9TN3VOD3XTH3O1pC0lFCylNC8VqzTCvRnC7lXlAi7SfxtZ0igZIiraxMk6gZ+4eINppps1X1QSrB9iuN8Sri0JxZj1b1ZNq1LB4StNh1VmSSrN6SidWS4cl5hS3tPWuVVSmtdS/dTSqtHS/ABtXV6rQy3KLtN5/tCyorYdUrGyideymredJyh13oVytdJPDrNPd249C9Pyi9Rdm9f5zuXg8CBCNkRI7oViOENIqQblGAEQf440QQvEL1YwAAGTJEQIFEirCWivfWYdVh/Q4ditqPSvZe0XuKaK5YOxoN5bEf5biNJmKuvFKqLB8O4M3cBb4IEKyPA5WApYFAlmfZpYZDfbAIIOCSEVZY21/f4YA6oKA7yr4AMIGMZwyCyHMORyqqSLqFsOYL6Kdug5jBMPcNY5Kuo4qs9sqK3mHxCPgDCLvMiMgmiN+ABDAOxaSJhCYlSNQhRAxGxCEJyLJGoafU5E5kwOkKEXpYqOFF/WW05gI+4aI5CQ5cEZ0JkTg3BCojyBkfkcUaR2UakbQ85H4QYZfc5DfYc/ZCZc5iIIs4yS2z/Z205bI5VjaLYc3MQYvEg5BA4+MMZytu8NGO0b8ZmYMZetavGZ+PMf+J6uQj6qFLOMGquIuZ5qhKeLcdppmpqYhrmey9ZMTYFJxtabLayYmZRr2qid2aFp6+ac1XifOsSfSbCZDMmbSfuq8eG+VV8deqG/0d6f2BKYlKlOq6cahKmca5y6W/qtDYW466Ca69WZO/WbRP666f2cCdFrxv6cJqGdJt9Im/KZ+Ploa+qwedqZyfmeO9W+WfOYu/abGs2bQG2du+zZVRxqObrIbKlpB5y6+8m6VqMv7NMrVvm8ea1u7d4Feax7rdnLGsNpcWNpFbbUttmrFaMIw0lcjYzXl1lfF3GQVamXIwvOZ7VYYw1dV07c1wF+eVfINZVSJ0/Ks2/LN1g4tZtyteAsddhT9wgsV+da9z02V7BQD09eD3M1D24z9YnQDbwr5UIpx/a8lS8GlQjfN9hoOahNjb1QTbWeYpTeLqLc4qdW66m8RFzYEvzeLsLdEvTYkqjW98rexM2Pkr7dZIbdrUF0rBbe0sbd0qF5pXx97aJ9+YOUK2KyIRQbKzdD0bHdnQncXRcpXVnba2T1T0Yi6x9kz2XZfFzwb8CvhnS8Tk8/FkiRqMYeKMM/iri8UKSWC9ULZflms6g1s+MR5b5b4BSAMC9RSFIA2TIAhGNEHWWtNIgD9VkZEAiHpE7UEWUQiE7R7/4XpGSTFDrTFA5H4U5n4GUXNDFGcH4HpHpHUk7U7TrTZnG2SXG3UiUlZSTpUFHkHiAYAb0VILcjbSgpm8VA/oJfmQFX4BBnYkFNFPIEy7jEAeB3FrstwK47EeQexYrpY1K7WNKu9jfAdN1q7lJJq7jObk1yaq4CjujTNZvDRCag9Lmu1S0jJRW6rVCSZ1D5BdTGYo9Km33D4jjz+6GN5mvA6NnD3W5ikym23FJjN2uY/cJBzXf7q1yRqyCzu7AlgZdw6Y3dBulA2Hoc0e61kBmRNEmiM3e5KDeuVzMQZ4wYHZMpBWpFNDINiYPcayCPSWmcw+7hMVBjgjJnll4CY9a29zHHmO2eappJy4Q95qT0+brtKeptbPiqXpzIB3BS7HTOrx9zwDF+y/ZAev0kDa8g8oVeDmBHNB9QPkQyAoFBEQHQtChzsJTjqgXqkB68YAOuuPDJhTxE6zdHaA5H/BEQF+UAeoY0ONCBFt4I+PupKAQhqQn84LVFrgDKij4vIZwECuOEHq75eAeQkYQUJCxFCwAaAmFOPWQrr5gWvAeobwDGGSBpAxaHfPPR2GjD9hzsEoSqCXqAIT8NUO/EfRmhD9OoLQPwJ5BSADNH6+9WBLfSBgP0r8YIrBC/TgC35nQU0eEM4nTAbkzoZ9V/O/krpv18+hLdwMiIXKgtSw30EIQjCRixduicDVhpSKQb/IAGd9E6MA1oSMEICFDMkVA2HQgD4A+YIIOuFBBd0yElEBAXsLX7OxkG/iOGP/WGTaRUAqRPIINFkYwE/AXIvIECJgADMKYnMPmKWQgZ5FtO4sekFIV85yw6WUiFWMMKeGijxhQXELutgyQRVJ+zRHKkwFn6gcOI0o+ptMSVay4+gwyDAYym3679aA+/Q/sf1P7n9L+1/W/vf0f7P9X+7/T/t/1/4ch/+HIQASDWAFsBQBiIMABAKCp5R5Q66ckF32SRmcmQxo6bGaJkTSi8OcsGooRwyR8MckAjKfi0WEaiNegYHeEEGJDFH8ii4Yo/pGJv538H+T/F/lADf4f8v+P/P/gAM1Qli2YvfY0SgQH6Ch4QtYpht+zZZkEIuFBVsc6Jn4djxGKonMRgBLGdojRWHFJG+y5G1i2YksBsUbB3Ekcsq0XPAOAPPHUtSinMSWKuJWHAjRKd4h8aFyNi6dHRgHdsSB07F8A/8ZAD7LT3Sz08GMUreVDKwIyjIJcp5RVueVmQqsrySuW8sxi1Y+tBe+vHXPq2oqG5HkxrMTKaxl7JDiK8vFPOsLN5usVeNrJ1jBRdYIUDMWvZCqUO9Z08DezKZ8g5m8yuZ3MnmcSb5n8xkTY8IWK5OFlYBRYksMWFLAllUmxYLgafEIbEOnLE9C+llfPsOzjxGBi+Bk8dnVinYlM3Kc7TyguzzwtZfKzffyo5KZxxQH2m2NNOWKvEKw/xsEzeBwzZgssQJYicCW+JYZwYApSGGnmiNsxCSDku5RnmhLFwYS2eUuHCZRm56K51Wd5FjHJJ1YFSpRFEg3OL2NwmtpeFuWXuDSYmQpFeymRCuxNtqcSL0sFeCmxL4kesBJevUSRhREnas/ojmHkD5kkl5AvMw0iSX5h0nBYq0YWHkMpJwrqTJwmklLDpKywx9Y8roIyQ9BMmugzJo7CyaXyskNZK+R6OybX3tD197QPlLPCux2RrthsnkxAPwl/4+TvxlY2JCrGikfskkwUsfpZwaLCwagsAPAOvSmhdRoR59UaLfQJjH0aR+4WGUAX3wvguEGIq6JfU/yLwb6jcSaBIwTC7gawkMwaCSHogxQSQAAK3hHkiopyMqkbgUfxfQpoJEJMgAEJgZUmAANQczyQaDEQhgyEoMx8GmgJmBGhIZcweYygbIEGgzKuBgAORCLE2U5QABNeUJwl4DMzkAbM6AJzO5lwF1ZREVmezN4BcyeZHIuDAKKfyf0EGQ/cUWiMlEoN7ZLI6GJg2Lo4M6YDMYWYQ1FmkMJZIgWApQ2pn58AuPIwIHyOPJD8hR+QpAc8ONDINZWMo63N2KGh78D+fYk/mf0HFX9hxMYscfGKnFJjZxaYwaPbLzRZj1UaojUQqJJBigxQWoyBjSlNl/QApqo2mfaD8AaytZsAY2brMoZnBoUzAJAKAHbBwBxha4hAPKHlBAA=="}
import { http } from 'viem'
import { 
  createBundlerClient, 
  createPaymasterClient,
} from 'viem/account-abstraction'
import { account, client } from './config.ts'

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

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

const hash = await bundlerClient.sendUserOperation({
  calls: [{
    to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',
    value: parseEther('0.001')
  }]
  paymaster: paymasterClient, // [!code ++]
})
```

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

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

const owner = privateKeyToAccount('0x...')

export const account = await toCoinbaseSmartAccount({ 
  client, 
  owners: [owner],
  version: '1.1',
}) 
```

:::

::::tip
If your Bundler also supports Paymaster sponsorshop (`pm_` JSON-RPC methods), you can set `paymaster: true` instead of declaring a separate Paymaster Client.

:::code-group

```ts twoslash [example.ts (on Client)]
// @twoslash-cache: {"v":2,"hash":"061aed86abfae8e864a1e4f5338f48b805bf173bf9e3740f16dd2564fc101eff","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvfGjRYAPKSwiAyiPwwAts150aYKHF4AlZWo3beAH17DY/dmBhReAXlsGYDp1Aq9SzADuuvQwBkYARhAQrDDMUu78bHAwAHyMgqSsAPyIvHBopI4A5tYe9o7OfiKSDsW5vAASslgAKgFgcFgQpGgAwrXsxYpm6lrMfgGBqdx5zXLt8V09aCOqY9qTQakAOmDsmt290i2U1MzFCCjIILBwIkVY4pJnfaRxNEY6ja2tAAq8QpLI5oQH4ZigmpgJxiIxoCC8HQAKRUAHkAHIAWmMfz6vAAgn8AJIAOhAAF1yVQCsxekgAJxUWJgYpofBIAAsVDQtOKMAYiAIpyZlSQAAYqOpacwxGQGQBfCjobC4QWEEjkbl6JhsTg8ATCMQSKQPD4wABCdlipD6HDCqyBnRBIX0hl4iydK2q4McLrCbr6PqkNjsXkqLncoe8VURIhqwlBen9RhU2l6+LjEATZSj4bc5TDPmqdrAidC4V4tvY9pznmjEYL9cmowsOiTFdM61btYqPnzuZ86Sw0s0/LIcDyloM1qr9oGYDq8kdy163uYjj8MvjpeL1Z3/hb4xmk6tZFnpaXHRXaDXG9j25vvBEJcfSi7R72B2dpohFtPNpfM4oAgEQrhAN4zS+Xgpyga1KxfXhAnYNlEV4Yp2BIKRkA9a9yUYGQ5AnAB6IiiGrTQSTgfAiOA0CiOfPc0DgIjHEKCA+ChOpMmcAQelQ5BA3XMA8IIrBiNI8jKOo2jmIY+1ZKDHgST2PZMV4AARECJxOQjEBIsitCkoityzUtMWYCICgCI1JHol9mIif8zh5S4kGQG5hwCTQzk4oZeDU4AAAEODAABraD/3PfpBmKeUKQoG53jQTJOjOfEIunMh4MYkleCCkLwpgmcXziqkbjoZhDliM4vxWPKn3eX8/kECIOBEKK/FE3h5QEUgIE0XgAHIDM0QbP0OOrgAas0irPBCev4PqBuG8jjMzBNzMsoEbLAMb9gm44pu0RwnFBBalqGkb6MUva9ihAonwQ9wfxoZrWvYdqX0YYA9l4J8gzyY7oX5ChfsBK8QTyUTGG4UGwHlbgVNESQHsczKAMY/MXr/dGou+sG5J3MHl0hnSsEYQbRPErAWrakksAONqIBJCRSIAJiIgBGIi30G2G9gRikqRAGk6UQDkJRAZlWXZRBOcZc5SD5AUQGx2aMftM4QtVNnJXBayaHIRA2cVZUcDwdU5S1egdQ4Lg+CEURnhNRrXuYDBtAKObGMvYE6vbN0cJBZt30sAOjE7cxxh7QseMjOtwyHEcx1IbS/ndz3Dai+dFxJr0D1D5hj14dOPa4LOX19z1VwLqPtF2fbv1dmBS8z73NaoGS8Ag38oNb8usqi5SwFUjStKhlpxJGoyTI2iyrJlZ27MY5jhzLr3NXOVzrhATzKp8mL/Ly4LHHC/uN+zmLSoSkAkpShAqHS8/Dey+1cvy0+S4zgeNdLa/ytoJVLA1UqC1UOmTbqvV+qXXIntMBoIprY2fu3UskDFrQJWloNaD5NoLx2rdZGnRQRrzbr/UEz1m7ILIfjKQ4M/a9AnnICmVM9JERJOwvmcNBaUmpDyMWAA2LkUswgyyQGzTm3JeT8jwEg7+F9AIiicEgAAzHraUsojYmyVNQFUFtiBW2oNqQULA7b6nuqCWepY8itAgAMRwEQuAwFTLSNAGYHzGH5ClVoKpxrOksQwXhLikCc2UZLaWbIkAAHZJFK2kYKfxWtRSIAAKxqINnKRA9JTY6PNmqfRm8aA22Mbqe2T4UaQhfHkH6tC/r+LyAOZwABuMGf0HFoHUA0apf1undM0IIVg4gRBsByHkKIMQ4jBhLklcQ/AMDyAALL9MGcM80EJ1CoieMaOAqQY71maTUyBIYE4+H2T0oZYxWgHBgHkMAghNARDIKc7pcZ2BYA8cwKADQkisBSGULpPTunvAAI6CHgGgBojA96jkNtpPoIhXkeJBWC9OXkU76lcDsv4S12ApHkHChFMAkUFA8clUgYBvE4FSE8v6PUjm9iaS0/6QkqmMp6a1ECoUACitBgE9HHCyg5ALAVxGAmAVgGBeD2GYEsgVQq5XCo+ZIcVvAwCVWubwHYIBOVsnHEMkeIBqXyoBY1UVyrMisDyJqlhJF+QaFTnqlmEBNWGqNQq01ErmAMwAKpZEtUKXSJFPXsBJLa3V8RHXGQZs61lcr5Quu6XGmNf12G5U5vw3gmg+W8BTfGv6Gp2CzMaFwfADRBKOAAGpkALRgItVEABikyGlQENYmg5KbeD8IABwZqzTmxlAc8jyHMY9TG4c8pJuzewltvAABkvBuWLxReINg8gU2pHSPwMAeRGCEzQHkKKq72EzDcDs3dfAMWvwvGu/Z8pfF1V3WcUWAoQkK3CbLfhMTlYyIUVLJJqTVb60XhkzmnbsmYFyQQfJzkjGq3KbwEhP8oqyu6XUxs4ZDVtI6choVfSBkfWGQ0MZsR4hlCxfyGZczFl4aGawVgqz2n4A2c7bZuz0OMtpWhk5jLzkaEuaOG5dyHmkENS8t5IqvnJBgH8idwLQUFAhVCtF+74ViaJWgFFaqYXnsxdi3F+LVNybQCSrxKoqXsdY1xg5UpHD1OOQyg5UAITMBUIIfgDhaANHUk5lzbn2C0As/ZnpdAcBFFHKWNgAB9dlIhQqtAuA0c0rAOVxdKHS2OzbGXtvpD294k6SSGoHbwIdcHd1+grP8oVfaDk9TnQusQS7OCsEPSSddjBN3bt3fuyua7tMjvtL1g916BaPr4c+yJQi33BP/Xwr9goEPyMYokpRiBokAfUYbJA/CwO6LyRqaDRSQAmL1BxShciK4+3mG0CGKx5BNr8N8lIqQ/BNqTqimF2Gnwyl41chotz7lZTS/WALGWDmhRgBgBoVkSjA+B4a1Vo5IeFGh4DvMKPLM9O6LRkoRJSxkCIGwX7gmAecZ4mjwL3S84MKaC0ION27sCEk2Zg5b467MAaE2m9sxx0HNQxzxlmGS0fZ6bh5ZtHCPRGI5Msjshq0LKWfh2j9H1mbJRjssnIOekcb51Zr7MA+Pqr+0JkTKn3mfLyA9qTNgKvGsJYZhTyd3uVhN7b5FDvxy9axf1HFMA8XO7U8ZslFK0jTvV4a9tnM2Y5ak1VoL5YoCDt3RurdvAd2VMvasHrJ6+ulgG91o9N673HFkevc7HdbhaW7s3PuZ3B4vmHqPTSoFGFiVYdPKi2DTJoFwdtJeu7V414KRcK47ld4jgPguPyAUT5hS/iXlB0UJ+xXiolTxZKH4gCfgP9P79p9nwH1Ff+IAKpVVwKAg6CCIHnQwSNOB5/6rF9IVFNBF1MGaA73PLaBtjQEOHfN0vqCKEzQqE8Z/lKc90yZmFJ5WEU1OEBZuAhZAkxZ5ZdZhEWQIljYJFFZZtVZTs58yEltVRVspR0lNEORtsINLYCkYNIU+oQtMA+AwC5gadrtehbs7NfAGcfk0ggIK9BRWgNATBcQ6Fq4AkRZRsxFlEUDJtMlP04lqAWDRDtYkBO00kgNNFyDVRIM9trYVYjtSlRI2D6UOCLd0hzVEcigWRgdqgYoGhLtadegc4hhDD0t7tGcuc7CFDnCmxODHtC9QRRJnIh83Ibg7gHhXlnZXgq9UIfh/hhDrwwQIQylgZYRAQERkQ0QsQcQ8RCRSQECxCgljYORVFUDRFxZZCVYAjFFVQVC1sSDgllENC9FtDDEDth00ZYJ58TxcZK4PD6FVh6cTDnt2C/BrcLJ2A8gTUlUJVUAZMRUpjeBHAaYmIJi5ixVpjyRc1/BVjlUaQaBFkeQIh2AOBMA/VIAwA14LJYho1BU3V5jwN1VNVzFSBBAxAehrjNcRjZjFU1iFjzjBBlitjvjlUZibihVJifj4cHiQAIBAgnBSB3jXVAT3VAQVQ/UIgMBPgEShV5QNivjkTIS/V8RWATUMBURYSyAsSbcgSJV7i/UyA+p4SDV2NPjQSkT5jFj/jtJwTgTcTWTuSJUCSNUQAcdkJGt2AAAvZwSknpfklEnAOk0gBkykxUbneVWUjkgE2UkExEtkiEtVP1GEuE6UuVWU2koU9EzEpk1knEzY2UwUzVHHfHDgKAbVO1GAO5fEKAKAd4OAOAMko0q0tU7Ymk1EoU+kt4wMhNFkoM6k34pYrk4M3gbUxEu0/UoUsHDAY0sExMs0zVQQViNmZJfhLM7qXkmM/EtMh0sAJ09gKAdESQEQGAAAaXBxLNNNDM1XDMZJbT8HbQlijzy2jLlRjwTTLO6XD2y0zVyxHL+lzJFjTDQGuI42tyqxVNGPWisRJw126QF06QnRFwVxGV4CIwmVI2mVlyo1FzozWUYxV06DVy3JD0fO41131wE3+2E242dw+Qky4Okz5Jd3k23UU0d300RUMw02hXdyz0900G919wJX91X3JVMyfO1zOQBlVLlWiy5R5SS3eFTiFxNMTKlRlSwp1L+lTP4yFNdLDX1U2PLPmPNT9WtSIlDXtXDQkBLMYp+KDR9QtSFNYqDRDR1Q4rAAjSDW4oTU2NbXlXD3TSnOjynQnXzULWLVLSDErSKDUvrUbXYJbTD3YQ7W7UUrywKzjwTxKwQjHWtx6RnMgVq0AXqxcUa2a1a3axT063Tzct6zPSz0G3zwFiGKMNSBGwKMkP/WkJCXKLwHaOKkWyqOCUwOILUM20aN2wMUKV0JKTMWbnVgPV6JEK8PDFcK4Key3KHNqUOJWNjOTOzNjI1ITNqrHPquRN2JgH2LGOOIwFOMkAuNahgDbJzI7NgyIWeNeO7OZPIqpORMapquRLqqNSoqhMNIpMjNdXbPlPNIxPgBLJtLxPmPtI32JJFVJPJMmoAtjLnK7OVMqpmvZL+M1MTOQBavur1OoqrNFN1ElKgCGqupGpuvWu6juplMTLmt1OBNsuItjKOtWoup1M2qhItN2qBs11etBphsrOFOrN1BdNEvdM0E9O9PgD9POr+uROusVIjJ7OmoxtmseqaoWqhtasOqxozKksouGq2rzILKLL2vRtuPeqhMdNxvrNEGbNbNRsFuVUpqVKBpVL7LFAHJTRBvHOUuq1eonOVvVp6TnLgAXKXP/LsvVrXMyxNuCvS1e0035Qyg6LIUcOGB6y6LtoCpaz8Oml/Hyp/S7kFB7k+FQnVnT0QmQnwFQnQkwiTPsLQBEigP0kknbxkmXnkhYlLD6g4him4hcH4D4h0AEiDBjoDQkkMgTq0iTtLAUiEiUiRjUkb20lYrb2on8W7y/1sj7yIjisyqCJ3ihXHzqCPg/hny9sYgdsPzvjXzSltrgiHmPgKknvn0P2P2AVPxAHgXv0oVpg+g6kvygWWhv3dsQTysinmh3pgSwSbvnh72/33ozSElOmf2v1Wms06B/yssxkAKag3s+kYhoT+ifsBlvpBmJgUObxhi4URhHkIVRiPrfo9poCHvtB/uzxvCAb6JAcpljqIhpnehEHpkZg+mZlZiIA5m5l5n5nhngJ4XyLFmUQ5EwKioVhmzkLVmgbLyULlmSsAw0TES0TNk0MoP210KwFoLIHoPvE7waAAAMxRaAAASYAKHFkeUCRsoNxTvI2lDaqiG6Y5mrRuMzk+a+Yl620xM9qzqw47q3q8492S4waqWzm/67m0aqyF4+EeGqM2m6WiVcGrUnRum1mj66Esmuxt6mWka5GuAfm4xzGgJokkk/0taqJimgGqmtxmlVW+x+m+Mgxn4oxg6oWv1EU5dDgH68mu45JuWmmnR9Uhm7JyGidPx/JoUuGjm3Ruc8JyJvJ5VI6kW502i94D0r0n00mgMxJspxxwGypzprxmp3RxanirptmyWhizxuUqE/M0sQs4s4J/ay6isgJnp2ssWxslszM4JxGhUipqaxW7WkkdJsy9jTWoy+WG5w1PWg2q05cs2/LAWYHHg0CPAfgqTVR7MeEWwX5bO0gMEKTae/gnFYO2jY8qTQQFILOviDMZjBI0EWTdgXLEjfxREL4KQXkO5N+MK6h/hSKkRdA1bRhlWBJRKuWFAlKrh42dKrQzK6goRiAOgjADiF8UtBCK3RlXnfS/nG8vc1kg8mjI8k8kjGwaXCjOXajFZG8pjLZB89ChNWHF8i5K5d8o3L8glH883STdR7MtTe3N7G2sCwC9TN3VOD3XTH3G1pC0lFCylNC0VqzTCnRnC7lXlAi7SXxlZ0igZIijaxMo6vp+4eIFphps1X1QSjB9imN8Sri4J+Zj1b1RNq1DB4SlNh1VmSSjN6SidWS4cp5hS3tHWuVVSmtdS/dTSqtHS/ABtbV6rQy3KLtF5/tCyorYdUrGyideymredJyu13oVytdJPDrNPV249C9Pyi9edm9X5zuXg8CBCNkRI7oViOENIqQblGAEQf440QQvEL1YwAAGTJEQIFGUUiQ/RKPQKfdpe/QSt/WW2itqNStZe0XuKaI5YOxoO5ZEd5fgwHwaEKFBTNbQn5CoS8x5AaCoXRa2WQE1WVgQ6c01XJHbZ6Uw4HxUGSgiEQ7ZzyBQ52jgHQ5AAI7wKI5alI5w/ba13YL+bAioSSK4gCGdlvaofvc7SfekIYakRVj/wMTYc5iEWZY2z/d4cA6oNaLgzE7IQ+xFaMIw3FfDYzXl2lfF3GTlamXIwvJ05VYYzVdVzw61dDx1e+2osN0eUNbE2NZ8Mtw8c5oteAvtdhT9wgq88da9z0x87BQD3deD3M2s+9eZWfIc281c3c081i9838wi9jxCyuXC1YCiySxixSwS2y9iwuEs+TSMsnOre+YOUK2KyISQbKzdB0ZHdnTHcXRcpXWnba2T1T0Yi6x9kz0XZfFzx68CvhjJfvfpFWyiumxE7wGU6igIOCSk84Zk5CTZf4Z0KYC5Z5b4GU6g+eNc+t1o9IVI+Q4H1Q5Rmo4O5/kY4pCK7g7tbo+I6O/I5O8o/O/g8I4e+w+u4i5Y6MLY7wA498mKEyAhGNF46fU5FCSZCpdlmE9iVE4Hzm7ln/Wk4yR4ZyT4agzW+MQ27A4YOAepwWE8IGMZz+74IEKyLiJBBG85H4WKKE5isFDAMR7TVUJZbR4A4yoU+ytMT4AMOJ7KoyCyHMORwqs46GFsOYL6IduKqLBc+LkKuvBl5jBMPdsqK3mHxCPgDCLvMiMgmiN+ABDAMxaSJhCYlSNQhRAxGxCEJyLJEofB/FnGyh7QNliETfbVGFE/dVBZ5/ZZeW+FhqFgDwFXqmi6iv13tgWvoJkPu6MYj8Gj6AP3xfC4RPtf3fzMgvpbt2mvv8V3BrHD6GhJHohihJAACs4AX7quZunpYGW4k/v6poSIkyABCQPqTTETEckFBkQtB1irBumBmTQJmCNIhrmHmZQThXgJv5AVv6AdvzvuAqfoiFvtv/yBfiBtolhgA2v+B0sRB3PgmZPsGZTvIavuPpflfuftfrv2hE/8GUFPwaf2f2AXgAAalf5v9nPx+hnQcLv74+lwZD98GI/YhuPxECwFyGZwaFMwCQCgB2wcAY0HgCYggB5Q8oIAA"}
import { http } from 'viem'
import { 
  createBundlerClient, 
  createPaymasterClient,
} from 'viem/account-abstraction'
import { account, client } from './config.ts'

const paymasterClient = createPaymasterClient({ // [!code --]
  transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code --]
}) // [!code --]

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

```ts twoslash [example.ts (on Action)]
// @twoslash-cache: {"v":2,"hash":"13c5aecd293cf30665d4072af00042e40d1eb7329cfe23aa2d79baf2b9110eb4","data":"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="}
import { http } from 'viem'
import { 
  createBundlerClient, 
  createPaymasterClient,
} from 'viem/account-abstraction'
import { account, client } from './config.ts'

const paymasterClient = createPaymasterClient({ // [!code --]
  transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code --]
}) // [!code --]

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

const hash = await bundlerClient.sendUserOperation({
  calls: [{
    to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',
    value: parseEther('0.001')
  }]
  paymaster: paymasterClient, // [!code --]
  paymaster: true, // [!code ++]
})
```

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

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

const owner = privateKeyToAccount('0x...')

export const account = await toCoinbaseSmartAccount({ 
  client, 
  owners: [owner],
  version: '1.1',
}) 
```

:::

::::
