diff --git a/.changeset/config.json b/.changeset/config.json index ae64b266f5..bb4bda9fd5 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -10,6 +10,9 @@ "access": "public", "baseBranch": "main", "updateInternalDependencies": "patch", + "snapshot": { + "useCalculatedVersion": true + }, "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { "onlyUpdatePeerDependentsWhenOutOfRange": true }, diff --git a/.github/actions/install-dependencies/action.yml b/.github/actions/install-dependencies/action.yml index dd069f0fb4..91e4a484e4 100644 --- a/.github/actions/install-dependencies/action.yml +++ b/.github/actions/install-dependencies/action.yml @@ -7,7 +7,7 @@ runs: - name: Set up foundry uses: foundry-rs/foundry-toolchain@v1 with: - version: nightly + version: nightly-2564718bbbddb59cd07fc3b9ffc775dff548c558 - name: Set up pnpm uses: wevm/actions/.github/actions/pnpm@main diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 980a3b58fd..8d1e978f21 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -22,15 +22,7 @@ jobs: run: pnpm check:repo - name: Check code - run: pnpm check - - - uses: stefanzweifel/git-auto-commit-action@v5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - commit_message: 'chore: format' - commit_user_name: 'github-actions[bot]' - commit_user_email: 'github-actions[bot]@users.noreply.github.com' + run: pnpm biome check build: name: Build diff --git a/.gitmodules b/.gitmodules index 18b462b652..1ba997f9a7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -15,4 +15,7 @@ url = git@github.com:OpenZeppelin/openzeppelin-contracts.git [submodule "contracts/lib/solady-6c2d0da"] path = contracts/lib/solady-6c2d0da - url = https://github.com/Vectorized/solady + url = git@github.com:Vectorized/solady.git +[submodule "contracts/lib/account-abstraction-v07"] + path = contracts/lib/account-abstraction-v07 + url = git@github.com:eth-infinitism/account-abstraction.git diff --git a/contracts/foundry.toml b/contracts/foundry.toml index 7331fb1cf8..9523207777 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -2,10 +2,12 @@ libs = ["lib"] remappings = [ "@openzeppelin/=lib/openzeppelin/", + "@account-abstraction/=lib/account-abstraction/", "account-abstraction/=lib/account-abstraction/contracts/", + "account-abstraction-v07/=lib/account-abstraction-v07/contracts/", "solady/=lib/solady/src/", "solady-dc09481/=lib/solady-dc09481/src/", - "solady-6c2d0da/=lib/solady-6c2d0da/src/", + "solady-6c2d0da/=lib/solady-6c2d0da/src/" ] src = "src" out = "out" diff --git a/contracts/lib/account-abstraction b/contracts/lib/account-abstraction index f1c5c11b27..4cbc06072c 160000 --- a/contracts/lib/account-abstraction +++ b/contracts/lib/account-abstraction @@ -1 +1 @@ -Subproject commit f1c5c11b273b7ddae26bb20809419b33ccb8f043 +Subproject commit 4cbc06072cdc19fd60f285c5997f4f7f57a588de diff --git a/contracts/lib/account-abstraction-v07 b/contracts/lib/account-abstraction-v07 new file mode 160000 index 0000000000..f1c5c11b27 --- /dev/null +++ b/contracts/lib/account-abstraction-v07 @@ -0,0 +1 @@ +Subproject commit f1c5c11b273b7ddae26bb20809419b33ccb8f043 diff --git a/contracts/src/accounts/Simple7702Account_08.sol b/contracts/src/accounts/Simple7702Account_08.sol new file mode 100644 index 0000000000..6b5c257d82 --- /dev/null +++ b/contracts/src/accounts/Simple7702Account_08.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity ^0.8.28; + +import {Simple7702Account} from "account-abstraction/accounts/Simple7702Account.sol"; + +contract Simple7702AccountV08 is Simple7702Account {} diff --git a/contracts/src/accounts/SoladyAccountFactory_06.sol b/contracts/src/accounts/SoladyAccountFactory_06.sol index ba884d27da..fbd1a5c789 100644 --- a/contracts/src/accounts/SoladyAccountFactory_06.sol +++ b/contracts/src/accounts/SoladyAccountFactory_06.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; import {ERC4337Factory} from "solady-dc09481/accounts/ERC4337Factory.sol"; diff --git a/contracts/src/accounts/SoladyAccountFactory_07.sol b/contracts/src/accounts/SoladyAccountFactory_07.sol index 5d77782664..451a240de2 100644 --- a/contracts/src/accounts/SoladyAccountFactory_07.sol +++ b/contracts/src/accounts/SoladyAccountFactory_07.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; import {ERC4337Factory} from "solady-6c2d0da/accounts/ERC4337Factory.sol"; diff --git a/contracts/src/accounts/SoladyAccount_06.sol b/contracts/src/accounts/SoladyAccount_06.sol index 2b89a855ef..a75a1858ae 100644 --- a/contracts/src/accounts/SoladyAccount_06.sol +++ b/contracts/src/accounts/SoladyAccount_06.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; import {ERC4337} from "solady-dc09481/accounts/ERC4337.sol"; diff --git a/contracts/src/accounts/SoladyAccount_07.sol b/contracts/src/accounts/SoladyAccount_07.sol index 70f2a4be58..be6a31b79f 100644 --- a/contracts/src/accounts/SoladyAccount_07.sol +++ b/contracts/src/accounts/SoladyAccount_07.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; import {ERC4337} from "solady-6c2d0da/accounts/ERC4337.sol"; diff --git a/contracts/src/paymasters/VerifyingPaymaster.sol b/contracts/src/paymasters/VerifyingPaymaster_07.sol similarity index 53% rename from contracts/src/paymasters/VerifyingPaymaster.sol rename to contracts/src/paymasters/VerifyingPaymaster_07.sol index 10415e6f81..957787a61c 100644 --- a/contracts/src/paymasters/VerifyingPaymaster.sol +++ b/contracts/src/paymasters/VerifyingPaymaster_07.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; -import {IEntryPoint} from "account-abstraction/interfaces/IEntryPoint.sol"; -import {VerifyingPaymaster as VerifyingPaymaster_} from "account-abstraction/samples/VerifyingPaymaster.sol"; +import {IEntryPoint} from "account-abstraction-v07/interfaces/IEntryPoint.sol"; +import {VerifyingPaymaster as VerifyingPaymaster_} from "account-abstraction-v07/samples/VerifyingPaymaster.sol"; -contract VerifyingPaymaster is VerifyingPaymaster_ { +contract VerifyingPaymaster_07 is VerifyingPaymaster_ { constructor( IEntryPoint entryPoint, address verifyingSigner diff --git a/contracts/src/paymasters/VerifyingPaymaster_08.sol b/contracts/src/paymasters/VerifyingPaymaster_08.sol new file mode 100644 index 0000000000..e9e78b0267 --- /dev/null +++ b/contracts/src/paymasters/VerifyingPaymaster_08.sol @@ -0,0 +1,132 @@ +// https://github.com/eth-infinitism/account-abstraction-samples/blob/master/contracts/VerifyingPaymaster.sol + +// SPDX-License-Identifier: GPL-3.0 +pragma solidity ^0.8.28; + +import "account-abstraction/core/BasePaymaster.sol"; +import "account-abstraction/core/UserOperationLib.sol"; +import "account-abstraction/core/Helpers.sol"; + +import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; +import "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; + +/** + * A sample paymaster that uses external service to decide whether to pay for the UserOp. + * The paymaster trusts an external signer to sign the transaction. + * The calling user must pass the UserOp to that external signer first, which performs + * whatever off-chain verification before signing the UserOp. + * Note that this signature is NOT a replacement for the account-specific signature: + * - the paymaster checks a signature to agree to PAY for GAS. + * - the account checks a signature to prove identity and account ownership. + */ +contract VerifyingPaymaster_08 is BasePaymaster { + using UserOperationLib for PackedUserOperation; + + address public immutable verifyingSigner; + + uint256 private constant VALID_TIMESTAMP_OFFSET = PAYMASTER_DATA_OFFSET; + + uint256 private constant SIGNATURE_OFFSET = VALID_TIMESTAMP_OFFSET + 64; + + constructor( + IEntryPoint _entryPoint, + address _verifyingSigner + ) BasePaymaster(_entryPoint) { + verifyingSigner = _verifyingSigner; + } + + /** + * return the hash we're going to sign off-chain (and validate on-chain) + * this method is called by the off-chain service, to sign the request. + * it is called on-chain from the validatePaymasterUserOp, to validate the signature. + * note that this signature covers all fields of the UserOperation, except the "paymasterAndData", + * which will carry the signature itself. + */ + function getHash( + PackedUserOperation calldata userOp, + uint48 validUntil, + uint48 validAfter + ) public view returns (bytes32) { + //can't use userOp.hash(), since it contains also the paymasterAndData itself. + return + keccak256( + abi.encode( + userOp.sender, + userOp.nonce, + keccak256(userOp.initCode), + keccak256(userOp.callData), + userOp.accountGasLimits, + uint256( + bytes32( + userOp + .paymasterAndData[PAYMASTER_VALIDATION_GAS_OFFSET:PAYMASTER_DATA_OFFSET] + ) + ), + userOp.preVerificationGas, + userOp.gasFees, + block.chainid, + address(this), + validUntil, + validAfter + ) + ); + } + + /** + * verify our external signer signed this request. + * the "paymasterAndData" is expected to be the paymaster and a signature over the entire request params + * paymasterAndData[:20] : address(this) + * paymasterAndData[20:84] : abi.encode(validUntil, validAfter) + * paymasterAndData[84:] : signature + */ + function _validatePaymasterUserOp( + PackedUserOperation calldata userOp, + bytes32 /*userOpHash*/, + uint256 requiredPreFund + ) + internal + view + override + returns (bytes memory context, uint256 validationData) + { + (requiredPreFund); + + ( + uint48 validUntil, + uint48 validAfter, + bytes calldata signature + ) = parsePaymasterAndData(userOp.paymasterAndData); + //ECDSA library supports both 64 and 65-byte long signatures. + // we only "require" it here so that the revert reason on invalid signature will be of "VerifyingPaymaster", and not "ECDSA" + require( + signature.length == 64 || signature.length == 65, + "VerifyingPaymaster: invalid signature length in paymasterAndData" + ); + bytes32 hash = MessageHashUtils.toEthSignedMessageHash( + getHash(userOp, validUntil, validAfter) + ); + + //don't revert on signature failure: return SIG_VALIDATION_FAILED + if (verifyingSigner != ECDSA.recover(hash, signature)) { + return ("", _packValidationData(true, validUntil, validAfter)); + } + + //no need for other on-chain validation: entire UserOp should have been checked + // by the external service prior to signing it. + return ("", _packValidationData(false, validUntil, validAfter)); + } + + function parsePaymasterAndData( + bytes calldata paymasterAndData + ) + public + pure + returns (uint48 validUntil, uint48 validAfter, bytes calldata signature) + { + (validUntil, validAfter) = abi.decode( + paymasterAndData[VALID_TIMESTAMP_OFFSET:], + (uint48, uint48) + ); + signature = paymasterAndData[SIGNATURE_OFFSET:]; + } +} diff --git a/contracts/src/test/BatchCallDelegation.sol b/contracts/src/test/BatchCallDelegation.sol index 86c71036a3..92e44b9e03 100644 --- a/contracts/src/test/BatchCallDelegation.sol +++ b/contracts/src/test/BatchCallDelegation.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract BatchCallDelegation { struct Call { diff --git a/contracts/src/test/ERC20InvalidTransferEvent.sol b/contracts/src/test/ERC20InvalidTransferEvent.sol index 370ee5fd36..83a0845b99 100644 --- a/contracts/src/test/ERC20InvalidTransferEvent.sol +++ b/contracts/src/test/ERC20InvalidTransferEvent.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract ERC20InvalidTransferEvent { // Non-conforming `to` parameter (not indexed). diff --git a/contracts/src/test/EnsAvatarTokenUri.sol b/contracts/src/test/EnsAvatarTokenUri.sol index dabe989a4b..5554a236e2 100644 --- a/contracts/src/test/EnsAvatarTokenUri.sol +++ b/contracts/src/test/EnsAvatarTokenUri.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract EnsAvatarTokenUri { function ownerOf(uint256 tokenId) public view returns (address) { diff --git a/contracts/src/test/ErrorsExample.sol b/contracts/src/test/ErrorsExample.sol index e2f09be1a1..d47deadd7e 100644 --- a/contracts/src/test/ErrorsExample.sol +++ b/contracts/src/test/ErrorsExample.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract ErrorsExample { struct Foo { diff --git a/contracts/src/test/Event.sol b/contracts/src/test/Event.sol index 627cd250c1..f4da40addc 100644 --- a/contracts/src/test/Event.sol +++ b/contracts/src/test/Event.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract Event { event MessageEmitted(address indexed to, uint256 value, bytes data); diff --git a/contracts/src/test/GH434.sol b/contracts/src/test/GH434.sol index b8bcbe172e..6af3389bda 100644 --- a/contracts/src/test/GH434.sol +++ b/contracts/src/test/GH434.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract GH434 { function foo() public pure returns (uint256 a, bool b) { diff --git a/contracts/src/test/OffchainLookupExample.sol b/contracts/src/test/OffchainLookupExample.sol index b99a829514..3df5eb84ca 100644 --- a/contracts/src/test/OffchainLookupExample.sol +++ b/contracts/src/test/OffchainLookupExample.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract OffchainLookupExample { error OffchainLookup( @@ -30,7 +30,10 @@ contract OffchainLookupExample { bytes calldata result, bytes calldata extraData ) external view returns (address) { - (address owner, bytes32 hash, bytes memory sig) = abi.decode(result, (address, bytes32, bytes)); + (address owner, bytes32 hash, bytes memory sig) = abi.decode( + result, + (address, bytes32, bytes) + ); address signer = recoverSigner(hash, sig); require(signer == owner, "invalid signature"); return signer; diff --git a/contracts/src/test/Payable.sol b/contracts/src/test/Payable.sol index b5a6b3e0ba..f97e03b778 100644 --- a/contracts/src/test/Payable.sol +++ b/contracts/src/test/Payable.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract Payable { function pay() public payable {} diff --git a/environments/bun/index.ts b/environments/bun/index.ts index 373c6bcdc3..31783b79c7 100644 --- a/environments/bun/index.ts +++ b/environments/bun/index.ts @@ -3,7 +3,7 @@ import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/environments/next/src/app/client.tsx b/environments/next/src/app/client.tsx index b76553e047..1639aaaac4 100644 --- a/environments/next/src/app/client.tsx +++ b/environments/next/src/app/client.tsx @@ -10,7 +10,7 @@ export function Client() { ;(async () => { const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/environments/next/src/app/page.tsx b/environments/next/src/app/page.tsx index 7b7dce472e..85a1c5d274 100644 --- a/environments/next/src/app/page.tsx +++ b/environments/next/src/app/page.tsx @@ -5,7 +5,7 @@ import { Client } from './client' export default async function Home() { const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/environments/node/index.js b/environments/node/index.js index d263df4930..c290d3b6ec 100644 --- a/environments/node/index.js +++ b/environments/node/index.js @@ -3,7 +3,7 @@ const { mainnet } = require('viem/chains') const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/environments/node/index.mjs b/environments/node/index.mjs index 373c6bcdc3..31783b79c7 100644 --- a/environments/node/index.mjs +++ b/environments/node/index.mjs @@ -3,7 +3,7 @@ import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/environments/tsc/index.ts b/environments/tsc/index.ts index 9f37f5e838..950ad1f779 100644 --- a/environments/tsc/index.ts +++ b/environments/tsc/index.ts @@ -3,7 +3,7 @@ import { mainnet } from 'viem/chains' ;(async () => { const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/environments/vite/src/main.ts b/environments/vite/src/main.ts index ba6da3ed8d..2000313fe5 100644 --- a/environments/vite/src/main.ts +++ b/environments/vite/src/main.ts @@ -3,7 +3,7 @@ import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/package.json b/package.json index 59809bf93f..844ca6769f 100644 --- a/package.json +++ b/package.json @@ -48,12 +48,12 @@ "devDependencies": { "@arethetypeswrong/cli": "^0.15.4", "@ark/attest": "^0.10.2", - "@biomejs/biome": "^1.9.3", + "@biomejs/biome": "^1.9.4", "@changesets/changelog-github": "^0.4.8", "@changesets/cli": "^2.27.9", "@ethereumjs/rlp": "^5.0.2", "@paulmillr/trusted-setups": "^0.1.2", - "@pimlico/alto": "0.0.15", + "@pimlico/alto": "0.0.18", "@size-limit/preset-big-lib": "^11.1.6", "@types/bun": "^1.1.11", "@types/node": "^22.13.13", @@ -96,7 +96,7 @@ "src": { "entry": [ "index.ts!", - "{account-abstraction,accounts,actions,celo,chains,ens,experimental,experimental/erc7739,experimental/erc7821,linea,node,nonce,op-stack,siwe,utils,window,zksync}/index.ts!", + "{account-abstraction,accounts,actions,celo,chains,ens,experimental,experimental/erc7739,experimental/erc7821,experimental/erc7846,experimental/erc7895,linea,node,nonce,op-stack,siwe,utils,window,zksync}/index.ts!", "chains/utils.ts!" ], "ignore": ["node/trustedSetups_cjs.ts"] @@ -110,13 +110,13 @@ { "name": "import * from 'viem' (esm)", "path": "./src/_esm/index.js", - "limit": "69 kB", + "limit": "71 kB", "import": "*" }, { "name": "const viem = require('viem') (cjs)", "path": "./src/_cjs/index.js", - "limit": "84 kB" + "limit": "88 kB" }, { "name": "import { createClient, http } from 'viem'", @@ -127,7 +127,7 @@ { "name": "import * from 'viem/account-abstraction'", "path": "./src/_esm/account-abstraction/index.js", - "limit": "50 kB", + "limit": "55 kB", "import": "*" }, { @@ -151,7 +151,7 @@ { "name": "import * from 'viem/actions'", "path": "./src/_esm/actions/index.js", - "limit": "54 kB", + "limit": "56 kB", "import": "*" }, { @@ -181,25 +181,25 @@ { "name": "import * from 'viem/ens'", "path": "./src/_esm/ens/index.js", - "limit": "48.5 kB", + "limit": "49 kB", "import": "*" }, { "name": "import { getEnsAvatar } from 'viem/ens'", "path": "./src/_esm/ens/index.js", - "limit": "24 kB", + "limit": "25 kB", "import": "{ getEnsAvatar }" }, { "name": "import * from 'viem/siwe'", "path": "./src/_esm/siwe/index.js", - "limit": "33 kB", + "limit": "34 kB", "import": "*" }, { "name": "import { verifySiweMessage } from 'viem/siwe'", "path": "./src/_esm/siwe/index.js", - "limit": "32 kB", + "limit": "34 kB", "import": "{ verifySiweMessage }" } ], @@ -211,7 +211,7 @@ "ws@>=7.0.0 <7.5.10": "^7.5.10", "hono@<4.5.8": "^4.5.8", "micromatch@<4.0.8": "^4.0.8", - "permissionless>viem": "workspace:*", + "permissionless>zkr-viem": "workspace:*", "send@<0.19.0": "^0.19.0", "serve-static@<1.16.0": "^1.16.0", "cookie@<0.7.0": "^0.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7080b8500d..3d9f038ccc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,7 +11,7 @@ overrides: ws@>=7.0.0 <7.5.10: ^7.5.10 hono@<4.5.8: ^4.5.8 micromatch@<4.0.8: ^4.0.8 - permissionless>viem: workspace:* + permissionless>zkr-viem: workspace:* send@<0.19.0: ^0.19.0 serve-static@<1.16.0: ^1.16.0 cookie@<0.7.0: ^0.7.0 @@ -31,8 +31,8 @@ importers: specifier: ^0.10.2 version: 0.10.2(typescript@5.8.2) '@biomejs/biome': - specifier: ^1.9.3 - version: 1.9.3 + specifier: ^1.9.4 + version: 1.9.4 '@changesets/changelog-github': specifier: ^0.4.8 version: 0.4.8 @@ -46,8 +46,8 @@ importers: specifier: ^0.1.2 version: 0.1.2 '@pimlico/alto': - specifier: 0.0.15 - version: 0.0.15(typescript@5.8.2) + specifier: 0.0.18 + version: 0.0.18(typescript@5.8.2) '@size-limit/preset-big-lib': specifier: ^11.1.6 version: 11.1.6(size-limit@11.1.6) @@ -80,10 +80,10 @@ importers: version: 0.14.0 permissionless: specifier: ^0.2.14 - version: 0.2.14 + version: 0.2.14(viem@2.29.1(typescript@5.8.2)) prool: specifier: 0.0.24 - version: 0.0.24(@pimlico/alto@0.0.15(typescript@5.8.2)) + version: 0.0.24(@pimlico/alto@0.0.18(typescript@5.8.2)) publint: specifier: ^0.2.11 version: 0.2.11 @@ -122,7 +122,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: file:../../src/ - version: file:src(typescript@5.6.2)(zod@3.23.8) + version: zkr-viem@file:src(typescript@5.6.2)(zod@3.23.8) devDependencies: '@playwright/test': specifier: 1.49.1 @@ -159,7 +159,7 @@ importers: dependencies: viem: specifier: file:../../src/ - version: file:src(typescript@5.6.2)(zod@3.23.8) + version: zkr-viem@file:src(typescript@5.6.2)(zod@3.23.8) devDependencies: '@playwright/test': specifier: 1.49.1 @@ -178,7 +178,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -191,7 +191,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -204,7 +204,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -217,7 +217,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -230,7 +230,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -249,7 +249,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: '@types/react': specifier: ^19 @@ -277,7 +277,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: '@types/react': specifier: ^19 @@ -299,7 +299,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -312,7 +312,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -331,7 +331,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: '@types/react': specifier: ^19 @@ -353,7 +353,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -366,7 +366,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -379,7 +379,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -392,7 +392,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -409,7 +409,7 @@ importers: react-dom: specifier: ^19 version: 19.0.0(react@19.0.0) - viem: + zkr-viem: specifier: workspace:* version: link:../../src devDependencies: @@ -439,7 +439,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: '@types/react': specifier: ^19 @@ -467,7 +467,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: '@types/react': specifier: ^19 @@ -489,7 +489,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -508,7 +508,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: '@types/react': specifier: ^19 @@ -537,21 +537,21 @@ importers: tailwindcss: specifier: ^4.0.6 version: 4.0.6 - viem: - specifier: workspace:* - version: link:../src vocs: specifier: ^1.0.11 version: 1.0.11(@types/node@22.13.13)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(acorn@8.14.0)(jiti@2.4.2)(lightningcss@1.29.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.34.8)(terser@5.36.0)(typescript@5.8.3)(yaml@2.7.0) + zkr-viem: + specifier: workspace:* + version: link:../src src: dependencies: '@noble/curves': - specifier: 1.8.1 - version: 1.8.1 + specifier: 1.8.2 + version: 1.8.2 '@noble/hashes': - specifier: 1.7.1 - version: 1.7.1 + specifier: 1.7.2 + version: 1.7.2 '@scure/bip32': specifier: 1.6.2 version: 1.6.2 @@ -749,55 +749,55 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@biomejs/biome@1.9.3': - resolution: {integrity: sha512-POjAPz0APAmX33WOQFGQrwLvlu7WLV4CFJMlB12b6ZSg+2q6fYu9kZwLCOA+x83zXfcPd1RpuWOKJW0GbBwLIQ==} + '@biomejs/biome@1.9.4': + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@1.9.3': - resolution: {integrity: sha512-QZzD2XrjJDUyIZK+aR2i5DDxCJfdwiYbUKu9GzkCUJpL78uSelAHAPy7m0GuPMVtF/Uo+OKv97W3P9nuWZangQ==} + '@biomejs/cli-darwin-arm64@1.9.4': + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@1.9.3': - resolution: {integrity: sha512-vSCoIBJE0BN3SWDFuAY/tRavpUtNoqiceJ5PrU3xDfsLcm/U6N93JSM0M9OAiC/X7mPPfejtr6Yc9vSgWlEgVw==} + '@biomejs/cli-darwin-x64@1.9.4': + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@1.9.3': - resolution: {integrity: sha512-VBzyhaqqqwP3bAkkBrhVq50i3Uj9+RWuj+pYmXrMDgjS5+SKYGE56BwNw4l8hR3SmYbLSbEo15GcV043CDSk+Q==} + '@biomejs/cli-linux-arm64-musl@1.9.4': + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@1.9.3': - resolution: {integrity: sha512-vJkAimD2+sVviNTbaWOGqEBy31cW0ZB52KtpVIbkuma7PlfII3tsLhFa+cwbRAcRBkobBBhqZ06hXoZAN8NODQ==} + '@biomejs/cli-linux-arm64@1.9.4': + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@1.9.3': - resolution: {integrity: sha512-TJmnOG2+NOGM72mlczEsNki9UT+XAsMFAOo8J0me/N47EJ/vkLXxf481evfHLlxMejTY6IN8SdRSiPVLv6AHlA==} + '@biomejs/cli-linux-x64-musl@1.9.4': + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@1.9.3': - resolution: {integrity: sha512-x220V4c+romd26Mu1ptU+EudMXVS4xmzKxPVb9mgnfYlN4Yx9vD5NZraSx/onJnd3Gh/y8iPUdU5CDZJKg9COA==} + '@biomejs/cli-linux-x64@1.9.4': + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@1.9.3': - resolution: {integrity: sha512-lg/yZis2HdQGsycUvHWSzo9kOvnGgvtrYRgoCEwPBwwAL8/6crOp3+f47tPwI/LI1dZrhSji7PNsGKGHbwyAhw==} + '@biomejs/cli-win32-arm64@1.9.4': + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@1.9.3': - resolution: {integrity: sha512-cQMy2zanBkVLpmmxXdK6YePzmZx0s5Z7KEnwmrW54rcXK3myCNbQa09SwGZ8i/8sLw0H9F3X7K4rxVNGU8/D4Q==} + '@biomejs/cli-win32-x64@1.9.4': + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -1484,8 +1484,8 @@ packages: '@noble/curves@1.2.0': resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} - '@noble/curves@1.8.1': - resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==} + '@noble/curves@1.8.2': + resolution: {integrity: sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g==} engines: {node: ^14.21.3 || >=16} '@noble/hashes@1.3.2': @@ -1496,6 +1496,10 @@ packages: resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==} engines: {node: ^14.21.3 || >=16} + '@noble/hashes@1.7.2': + resolution: {integrity: sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==} + engines: {node: ^14.21.3 || >=16} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1743,8 +1747,8 @@ packages: '@paulmillr/trusted-setups@0.1.2': resolution: {integrity: sha512-NKpT0G4Blj+Vp9lbfczb7iPJm3B4njpzX8NXiQs8G51N4CLndCvLqEvksFlTJbNLwl3iwsGZHSvJRdfhfOHLwQ==} - '@pimlico/alto@0.0.15': - resolution: {integrity: sha512-OfcxPQdm7MSRwiwELVVSCGII0fWtR19e7BG4VUjqYysfzvNmuErxyErx7hCmPFWUZtf1FyjgaB6UXwc23gEx0A==} + '@pimlico/alto@0.0.18': + resolution: {integrity: sha512-JIDEEYgdnkT7+wdxk0OBLSVwhm2CaLSbCw4474C9ZFmBggKBOByzaYCeIAJPb+Tag3WVBDXrXb2lYi2aRT9phQ==} hasBin: true '@pimlico/opentelemetry-instrumentation-viem@0.0.4': @@ -5203,7 +5207,7 @@ packages: permissionless@0.2.14: resolution: {integrity: sha512-4/r4gf6uGE7WfFaE4tVBxNd+QSLh0cVMkhC6yHzPUBBBLgrPf+gcUZjLsTamSLFm81K+m13jq3IQ3J0ooenWhg==} peerDependencies: - viem: workspace:* + viem: ^2.21.22 picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -6220,16 +6224,16 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - viem@2.27.0: - resolution: {integrity: sha512-pKw2dcwDi6TaWlTzLHYazOgjO1GgbUpE1zdLsLNSiCjHNrMTpL/teL0wVHnJDLiB2tR5CL19LBqefYNtRUkH5Q==} + viem@2.29.0: + resolution: {integrity: sha512-N6GeIuuay/spDyw+5FbSuNIkVN0da+jGOjdlC0bdatIN+N0jtOf9Zfj0pbXgpIJGwnM9ocxzTRt0HZVbHBdL2Q==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: typescript: optional: true - viem@file:src: - resolution: {directory: src, type: directory} + viem@2.29.1: + resolution: {integrity: sha512-mhLn0vDdsxZ4taB7XYgnIVNvXASm60KyPAkvw4k8uNCQ+HLH+5jUgKvLg4AP3y6VJxsgiVPwqUt0dJANDF5DZA==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -6471,6 +6475,14 @@ packages: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} + zkr-viem@file:src: + resolution: {directory: src, type: directory} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + zod-validation-error@1.5.0: resolution: {integrity: sha512-/7eFkAI4qV0tcxMBB/3+d2c1P6jzzZYdYSlBuAklzMuCrJu5bzJfHS0yVAS87dRHVlhftd6RFJDIvv03JgkSbw==} engines: {node: '>=16.0.0'} @@ -6761,39 +6773,39 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@biomejs/biome@1.9.3': + '@biomejs/biome@1.9.4': optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.9.3 - '@biomejs/cli-darwin-x64': 1.9.3 - '@biomejs/cli-linux-arm64': 1.9.3 - '@biomejs/cli-linux-arm64-musl': 1.9.3 - '@biomejs/cli-linux-x64': 1.9.3 - '@biomejs/cli-linux-x64-musl': 1.9.3 - '@biomejs/cli-win32-arm64': 1.9.3 - '@biomejs/cli-win32-x64': 1.9.3 + '@biomejs/cli-darwin-arm64': 1.9.4 + '@biomejs/cli-darwin-x64': 1.9.4 + '@biomejs/cli-linux-arm64': 1.9.4 + '@biomejs/cli-linux-arm64-musl': 1.9.4 + '@biomejs/cli-linux-x64': 1.9.4 + '@biomejs/cli-linux-x64-musl': 1.9.4 + '@biomejs/cli-win32-arm64': 1.9.4 + '@biomejs/cli-win32-x64': 1.9.4 - '@biomejs/cli-darwin-arm64@1.9.3': + '@biomejs/cli-darwin-arm64@1.9.4': optional: true - '@biomejs/cli-darwin-x64@1.9.3': + '@biomejs/cli-darwin-x64@1.9.4': optional: true - '@biomejs/cli-linux-arm64-musl@1.9.3': + '@biomejs/cli-linux-arm64-musl@1.9.4': optional: true - '@biomejs/cli-linux-arm64@1.9.3': + '@biomejs/cli-linux-arm64@1.9.4': optional: true - '@biomejs/cli-linux-x64-musl@1.9.3': + '@biomejs/cli-linux-x64-musl@1.9.4': optional: true - '@biomejs/cli-linux-x64@1.9.3': + '@biomejs/cli-linux-x64@1.9.4': optional: true - '@biomejs/cli-win32-arm64@1.9.3': + '@biomejs/cli-win32-arm64@1.9.4': optional: true - '@biomejs/cli-win32-x64@1.9.3': + '@biomejs/cli-win32-x64@1.9.4': optional: true '@changesets/apply-release-plan@7.0.5': @@ -7425,14 +7437,16 @@ snapshots: dependencies: '@noble/hashes': 1.3.2 - '@noble/curves@1.8.1': + '@noble/curves@1.8.2': dependencies: - '@noble/hashes': 1.7.1 + '@noble/hashes': 1.7.2 '@noble/hashes@1.3.2': {} '@noble/hashes@1.7.1': {} + '@noble/hashes@1.7.2': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -7720,7 +7734,7 @@ snapshots: '@paulmillr/trusted-setups@0.1.2': {} - '@pimlico/alto@0.0.15(typescript@5.8.2)': + '@pimlico/alto@0.0.18(typescript@5.8.2)': dependencies: '@fastify/websocket': 10.0.1 '@opentelemetry/api': 1.7.0 @@ -7750,7 +7764,7 @@ snapshots: pino-pretty: 10.3.1 prom-client: 14.2.0 type-fest: 4.39.0 - viem: 2.27.0(typescript@5.8.2)(zod@3.23.8) + viem: 2.29.1(typescript@5.8.2)(zod@3.23.8) yargs: 17.7.2 zod: 3.23.8 zod-validation-error: 1.5.0(zod@3.23.8) @@ -8654,13 +8668,13 @@ snapshots: '@scure/bip32@1.6.2': dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/base': 1.2.4 '@scure/bip39@1.5.4': dependencies: - '@noble/hashes': 1.7.1 + '@noble/hashes': 1.7.2 '@scure/base': 1.2.4 '@sec-ant/readable-stream@0.4.1': {} @@ -9273,6 +9287,10 @@ snapshots: typescript: 5.6.2 zod: 3.23.8 + abitype@1.0.8(typescript@5.8.2): + optionalDependencies: + typescript: 5.8.2 + abitype@1.0.8(typescript@5.8.2)(zod@3.23.8): optionalDependencies: typescript: 5.8.2 @@ -11119,8 +11137,8 @@ snapshots: micro-eth-signer@0.14.0: dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 micro-packed: 0.7.2 micro-packed@0.7.2: @@ -11656,8 +11674,8 @@ snapshots: ox@0.6.9(typescript@5.6.2)(zod@3.23.8): dependencies: '@adraffy/ens-normalize': 1.11.0 - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 abitype: 1.0.8(typescript@5.6.2)(zod@3.23.8) @@ -11667,11 +11685,25 @@ snapshots: transitivePeerDependencies: - zod + ox@0.6.9(typescript@5.8.2): + dependencies: + '@adraffy/ens-normalize': 1.11.0 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.8.2) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.8.2 + transitivePeerDependencies: + - zod + ox@0.6.9(typescript@5.8.2)(zod@3.23.8): dependencies: '@adraffy/ens-normalize': 1.11.0 - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 abitype: 1.0.8(typescript@5.8.2)(zod@3.23.8) @@ -11684,8 +11716,8 @@ snapshots: ox@0.6.9(typescript@5.8.3)(zod@3.23.8): dependencies: '@adraffy/ens-normalize': 1.11.0 - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 abitype: 1.0.8(typescript@5.8.3)(zod@3.23.8) @@ -11798,7 +11830,9 @@ snapshots: pend@1.2.0: {} - permissionless@0.2.14: {} + permissionless@0.2.14(viem@2.29.1(typescript@5.8.2)): + dependencies: + viem: 2.29.1(typescript@5.8.2) picocolors@1.1.1: {} @@ -11939,7 +11973,7 @@ snapshots: dependencies: tdigest: 0.1.2 - prool@0.0.24(@pimlico/alto@0.0.15(typescript@5.8.2)): + prool@0.0.24(@pimlico/alto@0.0.18(typescript@5.8.2)): dependencies: change-case: 5.4.4 eventemitter3: 5.0.1 @@ -11948,7 +11982,7 @@ snapshots: http-proxy: 1.18.1 tar: 7.2.0 optionalDependencies: - '@pimlico/alto': 0.0.15(typescript@5.8.2) + '@pimlico/alto': 0.0.18(typescript@5.8.2) transitivePeerDependencies: - debug @@ -13012,10 +13046,10 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - viem@2.27.0(typescript@5.6.2)(zod@3.23.8): + viem@2.29.0(typescript@5.6.2)(zod@3.23.8): dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 abitype: 1.0.8(typescript@5.6.2)(zod@3.23.8) @@ -13029,15 +13063,15 @@ snapshots: - utf-8-validate - zod - viem@2.27.0(typescript@5.8.2)(zod@3.23.8): + viem@2.29.1(typescript@5.8.2): dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 - abitype: 1.0.8(typescript@5.8.2)(zod@3.23.8) + abitype: 1.0.8(typescript@5.8.2) isows: 1.0.6(ws@8.18.1) - ox: 0.6.9(typescript@5.8.2)(zod@3.23.8) + ox: 0.6.9(typescript@5.8.2) ws: 8.18.1 optionalDependencies: typescript: 5.8.2 @@ -13046,18 +13080,18 @@ snapshots: - utf-8-validate - zod - viem@file:src(typescript@5.6.2)(zod@3.23.8): + viem@2.29.1(typescript@5.8.2)(zod@3.23.8): dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 - abitype: 1.0.8(typescript@5.6.2)(zod@3.23.8) + abitype: 1.0.8(typescript@5.8.2)(zod@3.23.8) isows: 1.0.6(ws@8.18.1) - ox: 0.6.9(typescript@5.6.2)(zod@3.23.8) + ox: 0.6.9(typescript@5.8.2)(zod@3.23.8) ws: 8.18.1 optionalDependencies: - typescript: 5.6.2 + typescript: 5.8.2 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -13381,6 +13415,23 @@ snapshots: yoctocolors@2.1.1: {} + zkr-viem@file:src(typescript@5.6.2)(zod@3.23.8): + dependencies: + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.6.2)(zod@3.23.8) + isows: 1.0.6(ws@8.18.1) + ox: 0.6.9(typescript@5.6.2)(zod@3.23.8) + ws: 8.18.1 + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + zod-validation-error@1.5.0(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/site/.cache/search.hash.json b/site/.cache/search.hash.json index d080168a94..fb4b92657c 100644 --- a/site/.cache/search.hash.json +++ b/site/.cache/search.hash.json @@ -1 +1 @@ -"{\"value\":\"585aeb21\"}" +"{\"value\":\"8156042d\"}" diff --git a/site/.cache/search.index.0dbd7a5fdd82feb3f31c2ace91bd6bb611a801c87b68bc957bb9e0774f779edd.json b/site/.cache/search.index.0dbd7a5fdd82feb3f31c2ace91bd6bb611a801c87b68bc957bb9e0774f779edd.json index 8b3e286693..f879959393 100644 --- a/site/.cache/search.index.0dbd7a5fdd82feb3f31c2ace91bd6bb611a801c87b68bc957bb9e0774f779edd.json +++ b/site/.cache/search.index.0dbd7a5fdd82feb3f31c2ace91bd6bb611a801c87b68bc957bb9e0774f779edd.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Creates, signs, and sends a new transaction to the network.\\n---\\n\\n# sendTransaction\\n\\nCreates, signs, and sends a new transaction to the network.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\n// [!include ~/snippets/walletClient.ts]\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendTransaction`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n```ts twoslash [config.ts (Local Account)] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nThe [Transaction](/docs/glossary/terms#transaction) hash.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc). If set to `null`, it is assumed that the transport will handle filling the sender of the transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### to\\n\\n- **Type:** `0x${string}`\\n\\nThe transaction recipient or contract address.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n```\\n\\n### accessList (optional)\\n\\n- **Type:** [`AccessList`](/docs/glossary/types#accesslist)\\n\\nThe access list.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### blobs (optional)\\n\\n- **Type:** `Hex[]`\\n\\nBlobs for [Blob Transactions](/docs/guides/blob-transactions). \\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\n\\nThe chain is also used to infer its request type (e.g. the Celo chain has a `gatewayFee` that you can pass through to `sendTransaction`).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nA contract hashed method call with encoded args.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### kzg (optional)\\n\\n- **Type:** `KZG`\\n\\nKZG implementation for [Blob Transactions](/docs/guides/blob-transactions). \\n\\nSee [`setupKzg`](/docs/utilities/setupKzg) for more information.\\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) // [!code focus]\\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei sent with this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\\n```\\n\\n## Tips\\n\\n- For dapps: When using this action, it is assumed that the user has connected to their wallet (e.g. given permission for the dapp to access their accounts via [`requestAddresses`](/docs/actions/wallet/requestAddresses)). You can also check if the user has granted access to their accounts via [`getAddresses`](/docs/actions/wallet/getAddresses)\\n\\n## Live Example\\n\\nCheck out the usage of `sendTransaction` in the live [Sending Transactions Example](https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions) below.\\n\\n\\n\\n## JSON-RPC Methods\\n\\n- JSON-RPC Accounts:\\n - [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n- Local Accounts:\\n - [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/sendTransaction#sendtransaction\",\"html\":\"\\n
Creates, signs, and sends a new transaction to the network.
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#sendtransaction\",\"isPage\":true,\"text\":\"\\nCreates, signs, and sends a new transaction to the network.\\n\",\"title\":\"sendTransaction\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/sendTransaction#usage\",\"html\":\"\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local AccountIf you do not wish to pass an account to every sendTransaction, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})The Transaction hash.
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#returns\",\"isPage\":false,\"text\":\"\\nHash\\nThe Transaction hash.\\n\",\"title\":\"Returns\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#account\",\"html\":\"\\nAccount | Address | nullThe Account to send the transaction from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"account\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#to\",\"html\":\"\\n0x${string}The transaction recipient or contract address.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nThe transaction recipient or contract address.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"to\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#accesslist-optional\",\"html\":\"\\nAccessListThe access list.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#accesslist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AccessList\\n\\nThe access list.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"title\":\"accessList (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#authorizationlist-optional\",\"html\":\"\\nAuthorizationListSigned EIP-7702 Authorization list.
\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#blobs-optional\",\"html\":\"\\nHex[]Blobs for Blob Transactions.
\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#blobs-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex[]\\n\\nBlobs for Blob Transactions.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"blobs (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#chain-optional\",\"html\":\"\\nChainwalletClient.chainThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.
\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to sendTransaction).
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to sendTransaction).\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#data-optional\",\"html\":\"\\n0x${string}A contract hashed method call with encoded args.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nA contract hashed method call with encoded args.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#gasprice-optional\",\"html\":\"\\nbigintThe price (in wei) to pay per gas. Only applies to Legacy Transactions.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#kzg-optional\",\"html\":\"\\nKZGKZG implementation for Blob Transactions.
\\nSee setupKzg for more information.
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#kzg-optional\",\"isPage\":false,\"text\":\"\\n\\nType: KZG\\n\\nKZG implementation for Blob Transactions.\\nSee setupKzg for more information.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"kzg (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#nonce-optional\",\"html\":\"\\nnumberUnique number identifying this transaction.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#value-optional\",\"html\":\"\\nbigintValue in wei sent with this transaction.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei sent with this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\\n\",\"title\":\"value (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#tips\",\"html\":\"\\nrequestAddresses). You can also check if the user has granted access to their accounts via getAddressesCheck out the usage of sendTransaction in the live Sending Transactions Example below.
eth_sendTransactioneth_sendRawTransactionCreates, signs, and sends a new transaction to the network.
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#sendtransaction\",\"isPage\":true,\"text\":\"\\nCreates, signs, and sends a new transaction to the network.\\n\",\"title\":\"sendTransaction\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/sendTransaction#usage\",\"html\":\"\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local AccountIf you do not wish to pass an account to every sendTransaction, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})The Transaction hash.
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#returns\",\"isPage\":false,\"text\":\"\\nHash\\nThe Transaction hash.\\n\",\"title\":\"Returns\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#account\",\"html\":\"\\nAccount | Address | nullThe Account to send the transaction from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"account\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#to\",\"html\":\"\\n0x${string}The transaction recipient or contract address.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nThe transaction recipient or contract address.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"to\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#accesslist-optional\",\"html\":\"\\nAccessListThe access list.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#accesslist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AccessList\\n\\nThe access list.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"title\":\"accessList (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#authorizationlist-optional\",\"html\":\"\\nAuthorizationListSigned EIP-7702 Authorization list.
\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#blobs-optional\",\"html\":\"\\nHex[]Blobs for Blob Transactions.
\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#blobs-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex[]\\n\\nBlobs for Blob Transactions.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"blobs (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#chain-optional\",\"html\":\"\\nChainwalletClient.chainThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.
\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to sendTransaction).
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to sendTransaction).\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#data-optional\",\"html\":\"\\n0x${string}A contract hashed method call with encoded args.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nA contract hashed method call with encoded args.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#gas-optional\",\"html\":\"\\nbigintThe gas limit of the transaction. If missing, it will be estimated.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gas: 21000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe gas limit of the transaction. If missing, it will be estimated.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gas: 21000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#gasprice-optional\",\"html\":\"\\nbigintThe price (in wei) to pay per gas. Only applies to Legacy Transactions.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#kzg-optional\",\"html\":\"\\nKZGKZG implementation for Blob Transactions.
\\nSee setupKzg for more information.
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#kzg-optional\",\"isPage\":false,\"text\":\"\\n\\nType: KZG\\n\\nKZG implementation for Blob Transactions.\\nSee setupKzg for more information.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"kzg (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#nonce-optional\",\"html\":\"\\nnumberUnique number identifying this transaction.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#value-optional\",\"html\":\"\\nbigintValue in wei sent with this transaction.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei sent with this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\\n\",\"title\":\"value (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#tips\",\"html\":\"\\nrequestAddresses). You can also check if the user has granted access to their accounts via getAddressesCheck out the usage of sendTransaction in the live Sending Transactions Example below.
eth_sendTransactioneth_sendRawTransactionInitiates a withdrawal on an L2 to the L1.
\\nInternally performs a contract write to the initiateWithdrawal function on the Optimism L2ToL1MessagePasser predeploy contract.
import { base } from 'viem/chains'\\nimport { account, walletClientL2 } from './config'\\n \\nconst hash = await walletClientL2.initiateWithdrawal({\\n account,\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})import { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsL2 } from 'viem/op-stack'\\n \\nexport const walletClientL2 = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL2.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)The buildInitiateWithdrawal Action builds & prepares the initiate withdrawal transaction parameters.
We can use the resulting args to initiate the withdrawal transaction on the L2.
import { account, publicClientL1, walletClientL2 } from './config'\\n \\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n account, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)See more on the buildInitiateWithdrawal Action.
If you do not wish to pass an account to every proveWithdrawal, you can also hoist the Account on the Wallet Client (see config.ts).
import { account, publicClientL1, walletClientL2 } from './config'\\n \\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n account, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)import { createWalletClient, createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\n// Retrieve Account from an EIP-1193 Provider. \\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts'\\n}) \\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n account, \\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n account: privateKeyToAccount('0x...'), \\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())The L2 Transaction hash.
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#returns\",\"isPage\":false,\"text\":\"\\nHash\\nThe L2 Transaction hash.\\n\",\"title\":\"Returns\",\"titles\":[\"initiateWithdrawal\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"initiateWithdrawal\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#account\",\"html\":\"\\nAccount | AddressThe Account to send the transaction from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n targetChain: base,\\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n targetChain: base,\\n})\\n\",\"title\":\"account\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsdata-optional\",\"html\":\"\\nHexEncoded contract method & arguments.
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n data: '0x...', \\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsdata-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nEncoded contract method & arguments.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n data: '0x...', \\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n\",\"title\":\"args.data (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsgas\",\"html\":\"\\nbigintGas limit for transaction execution on the L1.
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsgas\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nGas limit for transaction execution on the L1.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})\\n\",\"title\":\"args.gas\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsto\",\"html\":\"\\nAddressL1 Transaction recipient.
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nL1 Transaction recipient.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n\",\"title\":\"args.to\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsvalue-optional\",\"html\":\"\\nbigintValue in wei to withdrawal from the L2 to the L1. Debited from the caller's L2 balance.
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n },\\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsvalue-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei to withdrawal from the L2 to the L1. Debited from the caller's L2 balance.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n },\\n})\\n\",\"title\":\"args.value (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#chain-optional\",\"html\":\"\\nChainclient.chainThe L2 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.
\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n chain: optimism, \\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nThe L2 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n chain: optimism, \\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.
const hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#nonce-optional\",\"html\":\"\\nnumberUnique number identifying this transaction.
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n nonce: 69, \\n})\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n nonce: 69, \\n})\",\"title\":\"nonce (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Initiates a withdrawal on an L2 to the L1.\\n---\\n\\n# initiateWithdrawal\\n\\nInitiates a [withdrawal](https://github.com/ethereum-optimism/optimism/blob/develop/specs/deposits.md) on an L2 to the L1. \\n\\nInternally performs a contract write to the [`initiateWithdrawal` function](https://github.com/ethereum-optimism/optimism/blob/283f0aa2e3358ced30ff7cbd4028c0c0c3faa140/packages/contracts-bedrock/src/L2/L2ToL1MessagePasser.sol#L73) on the [Optimism L2ToL1MessagePasser predeploy contract](https://github.com/ethereum-optimism/optimism/blob/283f0aa2e3358ced30ff7cbd4028c0c0c3faa140/packages/contracts-bedrock/src/L2/L2ToL1MessagePasser.sol).\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { base } from 'viem/chains'\\nimport { account, walletClientL2 } from './config'\\n \\nconst hash = await walletClientL2.initiateWithdrawal({\\n account,\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})\\n```\\n\\n```ts [config.ts]\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { optimism } from 'viem/chains'\\nimport { walletActionsL2 } from 'viem/op-stack'\\n\\nexport const walletClientL2 = createWalletClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL2.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n\\n:::warning\\n\\nYou must [build the parameters](#building-parameters) on the L1 before calling this function. If the gas is too low, transaction execution will fail on the L1.\\n\\n:::\\n\\n### Building Parameters\\n\\nThe [`buildInitiateWithdrawal` Action](/op-stack/actions/buildInitiateWithdrawal) builds & prepares the initiate withdrawal transaction parameters. \\n\\nWe can use the resulting `args` to initiate the withdrawal transaction on the L2.\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, walletClientL2 } from './config'\\n\\nconst args = await publicClientL1.buildInitiateWithdrawal({ // [!code hl]\\n account, // [!code hl]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code hl]\\n value: parseEther('1'), // [!code hl]\\n}) // [!code hl]\\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const walletClientL2 = createWalletClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n[See more on the `buildInitiateWithdrawal` Action.](/op-stack/actions/buildInitiateWithdrawal)\\n\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `proveWithdrawal`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more.](/docs/clients/wallet#account)\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, walletClientL2 } from './config'\\n\\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n account, // [!code --]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n\\n// Retrieve Account from an EIP-1193 Provider. // [!code hl]\\nconst [account] = await window.ethereum.request({ // [!code hl]\\n method: 'eth_requestAccounts' // [!code hl]\\n}) // [!code hl]\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const walletClientL2 = createWalletClient({\\n account, // [!code hl]\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n```\\n\\n```ts [config.ts (Local Account)]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const walletClientL2 = createWalletClient({\\n account: privateKeyToAccount('0x...'), // [!code hl]\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nThe [L2 Transaction](/docs/glossary/terms#transaction) hash.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n targetChain: base,\\n})\\n```\\n\\n### args.data (optional)\\n\\n- **Type:** `Hex`\\n\\nEncoded contract method & arguments.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n data: '0x...', // [!code focus]\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n```\\n\\n### args.gas\\n\\n- **Type:** `bigint`\\n\\nGas limit for transaction execution on the L1.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})\\n```\\n\\n### args.to\\n\\n- **Type:** `Address`\\n\\nL1 Transaction recipient.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1')\\n },\\n})\\n```\\n\\n### args.value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei to withdrawal from the L2 to the L1. Debited from the caller's L2 balance.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n },\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nThe L2 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\n\\n```ts\\nimport { optimism } from 'viem/chains'\\n\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n chain: optimism, // [!code focus]\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n nonce: 69, // [!code focus]\\n})\\n```\\n\\n\",\"document\":[{\"href\":\"/op-stack/actions/initiateWithdrawal#initiatewithdrawal\",\"html\":\"\\nInitiates a withdrawal on an L2 to the L1.
\\nInternally performs a contract write to the initiateWithdrawal function on the Optimism L2ToL1MessagePasser predeploy contract.
import { base } from 'viem/chains'\\nimport { account, walletClientL2 } from './config'\\n \\nconst hash = await walletClientL2.initiateWithdrawal({\\n account,\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})import { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { optimism } from 'viem/chains'\\nimport { walletActionsL2 } from 'viem/op-stack'\\n \\nexport const walletClientL2 = createWalletClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL2.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)The buildInitiateWithdrawal Action builds & prepares the initiate withdrawal transaction parameters.
We can use the resulting args to initiate the withdrawal transaction on the L2.
import { account, publicClientL1, walletClientL2 } from './config'\\n \\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n account, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)See more on the buildInitiateWithdrawal Action.
If you do not wish to pass an account to every proveWithdrawal, you can also hoist the Account on the Wallet Client (see config.ts).
import { account, publicClientL1, walletClientL2 } from './config'\\n \\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n account, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)import { createWalletClient, createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\n// Retrieve Account from an EIP-1193 Provider. \\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts'\\n}) \\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n account, \\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n account: privateKeyToAccount('0x...'), \\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())The L2 Transaction hash.
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#returns\",\"isPage\":false,\"text\":\"\\nHash\\nThe L2 Transaction hash.\\n\",\"title\":\"Returns\",\"titles\":[\"initiateWithdrawal\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"initiateWithdrawal\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#account\",\"html\":\"\\nAccount | AddressThe Account to send the transaction from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n targetChain: base,\\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n targetChain: base,\\n})\\n\",\"title\":\"account\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsdata-optional\",\"html\":\"\\nHexEncoded contract method & arguments.
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n data: '0x...', \\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsdata-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nEncoded contract method & arguments.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n data: '0x...', \\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n\",\"title\":\"args.data (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsgas\",\"html\":\"\\nbigintGas limit for transaction execution on the L1.
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsgas\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nGas limit for transaction execution on the L1.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})\\n\",\"title\":\"args.gas\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsto\",\"html\":\"\\nAddressL1 Transaction recipient.
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nL1 Transaction recipient.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n\",\"title\":\"args.to\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsvalue-optional\",\"html\":\"\\nbigintValue in wei to withdrawal from the L2 to the L1. Debited from the caller's L2 balance.
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n },\\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsvalue-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei to withdrawal from the L2 to the L1. Debited from the caller's L2 balance.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n },\\n})\\n\",\"title\":\"args.value (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#chain-optional\",\"html\":\"\\nChainclient.chainThe L2 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.
\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n chain: optimism, \\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nThe L2 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n chain: optimism, \\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.
const hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n})\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#nonce-optional\",\"html\":\"\\nnumberUnique number identifying this transaction.
\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n nonce: 69, \\n})\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n nonce: 69, \\n})\",\"title\":\"nonce (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.2aced625a37ea51502d09628816ef8a78cb5fd4ce4c622b113a2719bebc35fbf.json b/site/.cache/search.index.2aced625a37ea51502d09628816ef8a78cb5fd4ce4c622b113a2719bebc35fbf.json
index c66f32c4d8..f9173eb59c 100644
--- a/site/.cache/search.index.2aced625a37ea51502d09628816ef8a78cb5fd4ce4c622b113a2719bebc35fbf.json
+++ b/site/.cache/search.index.2aced625a37ea51502d09628816ef8a78cb5fd4ce4c622b113a2719bebc35fbf.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Parses a hex-formatted ERC-6492 flavoured signature.\\n---\\n\\n# parseErc6492Signature\\n\\nParses a hex-formatted [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) flavoured signature.\\n\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\\n\\n## Import\\n\\n```ts\\nimport { parseErc6492Signature } from 'viem/experimental'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { parseErc6492Signature } from 'viem/experimental'\\n\\nconst { // [!code focus:99]\\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\\n```\\n\\n## Returns\\n\\n`ParseErc6492SignatureReturnType`\\n\\nThe ERC-6492 signature components.\\n\\n## Parameters\\n\\n### signature\\n\\n- **Type:** [`Hex`](/docs/glossary/types#hex)\\n\\nThe ERC-6492 signature in hex format.\",\"document\":[{\"href\":\"/docs/utilities/parseErc6492Signature#parseerc6492signature\",\"html\":\"\\nParses a hex-formatted ERC-6492 flavoured signature.
\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.
\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#parseerc6492signature\",\"isPage\":true,\"text\":\"\\nParses a hex-formatted ERC-6492 flavoured signature.\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\\n\",\"title\":\"parseErc6492Signature\",\"titles\":[]},{\"href\":\"/docs/utilities/parseErc6492Signature#import\",\"html\":\"\\nimport { parseErc6492Signature } from 'viem/experimental'\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#import\",\"isPage\":false,\"text\":\"\\nimport { parseErc6492Signature } from 'viem/experimental'\\n\",\"title\":\"Import\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#usage\",\"html\":\"\\nimport { parseErc6492Signature } from 'viem/experimental'\\n \\nconst { \\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#usage\",\"isPage\":false,\"text\":\"\\nimport { parseErc6492Signature } from 'viem/experimental'\\n \\nconst { \\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\\n\",\"title\":\"Usage\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#returns\",\"html\":\"\\nParseErc6492SignatureReturnType
The ERC-6492 signature components.
\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#returns\",\"isPage\":false,\"text\":\"\\nParseErc6492SignatureReturnType\\nThe ERC-6492 signature components.\\n\",\"title\":\"Returns\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#signature\",\"html\":\"\\nHexThe ERC-6492 signature in hex format.
\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe ERC-6492 signature in hex format.\",\"title\":\"signature\",\"titles\":[\"parseErc6492Signature\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Parses a hex-formatted ERC-6492 flavoured signature.\\n---\\n\\n# parseErc6492Signature\\n\\nParses a hex-formatted [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) flavoured signature.\\n\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\\n\\n## Import\\n\\n```ts\\nimport { parseErc6492Signature } from 'viem/utils'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { parseErc6492Signature } from 'viem/utils'\\n\\nconst { // [!code focus:99]\\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\\n```\\n\\n## Returns\\n\\n`ParseErc6492SignatureReturnType`\\n\\nThe ERC-6492 signature components.\\n\\n## Parameters\\n\\n### signature\\n\\n- **Type:** [`Hex`](/docs/glossary/types#hex)\\n\\nThe ERC-6492 signature in hex format.\",\"document\":[{\"href\":\"/docs/utilities/parseErc6492Signature#parseerc6492signature\",\"html\":\"\\nParses a hex-formatted ERC-6492 flavoured signature.
\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.
\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#parseerc6492signature\",\"isPage\":true,\"text\":\"\\nParses a hex-formatted ERC-6492 flavoured signature.\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\\n\",\"title\":\"parseErc6492Signature\",\"titles\":[]},{\"href\":\"/docs/utilities/parseErc6492Signature#import\",\"html\":\"\\nimport { parseErc6492Signature } from 'viem/utils'\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#import\",\"isPage\":false,\"text\":\"\\nimport { parseErc6492Signature } from 'viem/utils'\\n\",\"title\":\"Import\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#usage\",\"html\":\"\\nimport { parseErc6492Signature } from 'viem/utils'\\n \\nconst { \\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#usage\",\"isPage\":false,\"text\":\"\\nimport { parseErc6492Signature } from 'viem/utils'\\n \\nconst { \\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\\n\",\"title\":\"Usage\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#returns\",\"html\":\"\\nParseErc6492SignatureReturnType
The ERC-6492 signature components.
\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#returns\",\"isPage\":false,\"text\":\"\\nParseErc6492SignatureReturnType\\nThe ERC-6492 signature components.\\n\",\"title\":\"Returns\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#signature\",\"html\":\"\\nHexThe ERC-6492 signature in hex format.
\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe ERC-6492 signature in hex format.\",\"title\":\"signature\",\"titles\":[\"parseErc6492Signature\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.2c0e12b5b728915a8f3b4e3a2e9810ed94405106c8f117d2c1e82f94565c0abe.json b/site/.cache/search.index.2c0e12b5b728915a8f3b4e3a2e9810ed94405106c8f117d2c1e82f94565c0abe.json new file mode 100644 index 0000000000..622a7e1d4f --- /dev/null +++ b/site/.cache/search.index.2c0e12b5b728915a8f3b4e3a2e9810ed94405106c8f117d2c1e82f94565c0abe.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"---\\ndescription: Requests to connect Account(s).\\n---\\n\\n# connect\\n\\nRequests to connect Account(s) with optional [capabilities](#capabilities).\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect() // [!code focus]\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\nList of connected accounts.\\n\\n```ts\\ntype ReturnType = {\\n accounts: readonly {\\n address: Address\\n capabilities: RecordRequests to connect Account(s) with optional capabilities.
\\n\",\"id\":\"pages/experimental/erc7846/connect.md#connect\",\"isPage\":true,\"text\":\"\\nRequests to connect Account(s) with optional capabilities.\\n\",\"title\":\"connect\",\"titles\":[]},{\"href\":\"/experimental/erc7846/connect#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect() import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())List of connected accounts.
\\ntype ReturnType = {\\n accounts: readonly {\\n address: Address\\n capabilities: Record<string, unknown>\\n }[]\\n}\\n\",\"id\":\"pages/experimental/erc7846/connect.md#returns\",\"isPage\":false,\"text\":\"\\nList of connected accounts.\\ntype ReturnType = {\\n accounts: readonly {\\n address: Address\\n capabilities: Record<string, unknown>\\n }[]\\n}\\n\",\"title\":\"Returns\",\"titles\":[\"connect\"]},{\"href\":\"/experimental/erc7846/connect#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7846/connect.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"connect\"]},{\"href\":\"/experimental/erc7846/connect#capabilities\",\"html\":\"\\nRecord<string, unknown>Key-value pairs of capabilities.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n capabilities: { \\n unstable_signInWithEthereum: { \\n chainId: 1, \\n nonce: 'abcd1234', \\n } \\n } \\n})\\n\",\"id\":\"pages/experimental/erc7846/connect.md#capabilities\",\"isPage\":false,\"text\":\"\\n\\nType: Record<string, unknown>\\n\\nKey-value pairs of capabilities.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n capabilities: { \\n unstable_signInWithEthereum: { \\n chainId: 1, \\n nonce: 'abcd1234', \\n } \\n } \\n})\\n\",\"title\":\"capabilities\",\"titles\":[\"connect\",\"Parameters\"]},{\"href\":\"/experimental/erc7846/connect#capabilities-1\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7846/connect.md#capabilities-1\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Capabilities\",\"titles\":[\"connect\"]},{\"href\":\"/experimental/erc7846/connect#unstable_addsubaccount\",\"html\":\"\\nAdds a Sub Account to the connected Account. See more
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n capabilities: {\\n unstable_addSubAccount: { \\n account: { \\n keys: [{ \\n key: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n type: 'address', \\n }], \\n type: 'create', \\n } \\n } \\n }\\n})\\n// @log: [{\\n \\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n \\n// @log: capabilities: {\\n \\n// @log: unstable_subAccounts: [{\\n \\n// @log: address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\\n \\n// @log: }],\\n \\n// @log: },\\n \\n// @log: }]\\n\",\"id\":\"pages/experimental/erc7846/connect.md#unstable_addsubaccount\",\"isPage\":false,\"text\":\"\\nAdds a Sub Account to the connected Account. See more\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n capabilities: {\\n unstable_addSubAccount: { \\n account: { \\n keys: [{ \\n key: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n type: 'address', \\n }], \\n type: 'create', \\n } \\n } \\n }\\n})\\n// @log: [{\\n \\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n \\n// @log: capabilities: {\\n \\n// @log: unstable_subAccounts: [{\\n \\n// @log: address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\\n \\n// @log: }],\\n \\n// @log: },\\n \\n// @log: }]\\n\",\"title\":\"unstable_addSubAccount\",\"titles\":[\"connect\",\"Capabilities\"]},{\"href\":\"/experimental/erc7846/connect#unstable_subaccounts\",\"html\":\"\\nReturns all Sub Accounts of the connected Account. See more
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect()\\n// @log: [{\\n \\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n \\n// @log: capabilities: {\\n \\n// @log: unstable_subAccounts: [{\\n \\n// @log: address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\\n \\n// @log: }],\\n \\n// @log: },\\n \\n// @log: }]\\n\",\"id\":\"pages/experimental/erc7846/connect.md#unstable_subaccounts\",\"isPage\":false,\"text\":\"\\nReturns all Sub Accounts of the connected Account. See more\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect()\\n// @log: [{\\n \\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n \\n// @log: capabilities: {\\n \\n// @log: unstable_subAccounts: [{\\n \\n// @log: address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\\n \\n// @log: }],\\n \\n// @log: },\\n \\n// @log: }]\\n\",\"title\":\"unstable_subAccounts\",\"titles\":[\"connect\",\"Capabilities\"]},{\"href\":\"/experimental/erc7846/connect#unstable_signinwithethereum\",\"html\":\"\\nAuthenticate offchain using Sign-In with Ethereum. See more
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n capabilities: {\\n unstable_signInWithEthereum: {\\n chainId: 1,\\n nonce: 'abcd1234',\\n }\\n }\\n})\\n// @log: [{\\n \\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n \\n// @log: capabilities: {\\n \\n// @log: unstable_signInWithEthereum: {\\n \\n// @log: message: 'example.com wants you to sign in with your Ethereum account...',\\n \\n// @log: signature: '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: }]\\n\",\"id\":\"pages/experimental/erc7846/connect.md#unstable_signinwithethereum\",\"isPage\":false,\"text\":\"\\nAuthenticate offchain using Sign-In with Ethereum. See more\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n capabilities: {\\n unstable_signInWithEthereum: {\\n chainId: 1,\\n nonce: 'abcd1234',\\n }\\n }\\n})\\n// @log: [{\\n \\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n \\n// @log: capabilities: {\\n \\n// @log: unstable_signInWithEthereum: {\\n \\n// @log: message: 'example.com wants you to sign in with your Ethereum account...',\\n \\n// @log: signature: '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: }]\\n\",\"title\":\"unstable_signInWithEthereum\",\"titles\":[\"connect\",\"Capabilities\"]},{\"href\":\"/experimental/erc7846/connect#json-rpc-methods\",\"html\":\"\\nwallet_connecteth_requestAccountsReturns the status of a call batch that was sent via sendCalls.
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ \\n id: '0x1234567890abcdef',\\n})\\n// @log: {\\n \\n// @log: atomic: false,\\n \\n// @log: chainId: 1,\\n \\n// @log: id: '0x1234567890abcdef',\\n \\n// @log: statusCode: 200,\\n \\n// @log: status: 'success',\\n \\n// @log: receipts: [{ ... }],\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()WalletGetCallsStatusReturnType
Status of the calls.
\\n\",\"id\":\"pages/docs/actions/wallet/getCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nWalletGetCallsStatusReturnType\\nStatus of the calls.\\n\",\"title\":\"Returns\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/docs/actions/wallet/getCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/getCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/docs/actions/wallet/getCallsStatus#id\",\"html\":\"\\nstringIdentifier of the call batch.
\",\"id\":\"pages/docs/actions/wallet/getCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\",\"title\":\"id\",\"titles\":[\"getCallsStatus\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.31551efd7ca7af4115644d544abf8390a77c92babfe8c9a42dac4825cd56cf91.json b/site/.cache/search.index.31551efd7ca7af4115644d544abf8390a77c92babfe8c9a42dac4825cd56cf91.json index d0e548df58..79d90373e0 100644 --- a/site/.cache/search.index.31551efd7ca7af4115644d544abf8390a77c92babfe8c9a42dac4825cd56cf91.json +++ b/site/.cache/search.index.31551efd7ca7af4115644d544abf8390a77c92babfe8c9a42dac4825cd56cf91.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Estimates gas required to finalize a withdrawal that occurred on an L2.\\n---\\n\\n# estimateFinalizeWithdrawalGas\\n\\nEstimates gas required to finalize a withdrawal that occurred on an L2. \\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n\\nconst gas = await publicClientL1.estimateFinalizeWithdrawalGas({ // [!code hl]\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', // [!code hl]\\n targetChain: optimism, // [!code hl]\\n withdrawal: { ... }, // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n## Returns\\n\\n`bigint`\\n\\nThe estimated gas.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nGas limit for transaction execution on the L1. \\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### proofSubmitter (optional)\\n\\n- **Type:** `Address`\\n\\nThe address of the proof submitter to use when finalizing the withdrawal. No-op when the OptimismPortal contract version is less than v3.\\n\\nIf unspecified, the sending account is the proof submitter.\\n\\n```ts\\nconst hash = await client.finalizeWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n proofSubmitter: '0xD15F47c16BD277ff2dee6a0bD4e418165231CB69', // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n nonce: 69, // [!code focus]\\n targetChain: optimism,\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Optimism Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the Optimism Portal contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain to execute the transaction on.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### withdrawal\\n\\n- **Type:** `bigint`\\n\\nThe withdrawal.\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, // [!code focus]\\n targetChain: optimism,\\n})\\n```\",\"document\":[{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#estimatefinalizewithdrawalgas\",\"html\":\"\\nEstimates gas required to finalize a withdrawal that occurred on an L2.
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#estimatefinalizewithdrawalgas\",\"isPage\":true,\"text\":\"\\nEstimates gas required to finalize a withdrawal that occurred on an L2.\\n\",\"title\":\"estimateFinalizeWithdrawalGas\",\"titles\":[]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#usage\",\"html\":\"\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n \\nconst gas = await publicClientL1.estimateFinalizeWithdrawalGas({ \\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', \\n targetChain: optimism, \\n withdrawal: { ... }, \\n}) import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)bigint
The estimated gas.
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#returns\",\"isPage\":false,\"text\":\"\\nbigint\\nThe estimated gas.\\n\",\"title\":\"Returns\",\"titles\":[\"estimateFinalizeWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"estimateFinalizeWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#account\",\"html\":\"\\nAccount | AddressThe Account to send the transaction from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).
\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"account\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#chain-optional\",\"html\":\"\\nChainclient.chainThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.
\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#gas-optional\",\"html\":\"\\nbigintGas limit for transaction execution on the L1.
\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nGas limit for transaction execution on the L1.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#proofsubmitter-optional\",\"html\":\"\\nAddressThe address of the proof submitter to use when finalizing the withdrawal. No-op when the OptimismPortal contract version is less than v3.
\\nIf unspecified, the sending account is the proof submitter.
\\nconst hash = await client.finalizeWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n proofSubmitter: '0xD15F47c16BD277ff2dee6a0bD4e418165231CB69', \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#proofsubmitter-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe address of the proof submitter to use when finalizing the withdrawal. No-op when the OptimismPortal contract version is less than v3.\\nIf unspecified, the sending account is the proof submitter.\\nconst hash = await client.finalizeWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n proofSubmitter: '0xD15F47c16BD277ff2dee6a0bD4e418165231CB69', \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"proofSubmitter (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.
const hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#nonce-optional\",\"html\":\"\\nnumberUnique number identifying this transaction.
\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n nonce: 69, \\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n nonce: 69, \\n targetChain: optimism,\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#portaladdress-optional\",\"html\":\"\\nAddresstargetChain.contracts.portal[chainId].addressThe address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.
If a portalAddress is provided, the targetChain parameter becomes optional.
const hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n\",\"title\":\"portalAddress (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#targetchain\",\"html\":\"\\nChainThe L2 chain to execute the transaction on.
\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n targetChain: optimism, \\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain to execute the transaction on.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#withdrawal\",\"html\":\"\\nbigintThe withdrawal.
\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, \\n targetChain: optimism,\\n})\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#withdrawal\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe withdrawal.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, \\n targetChain: optimism,\\n})\",\"title\":\"withdrawal\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Estimates gas required to finalize a withdrawal that occurred on an L2.\\n---\\n\\n# estimateFinalizeWithdrawalGas\\n\\nEstimates gas required to finalize a withdrawal that occurred on an L2. \\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n\\nconst gas = await publicClientL1.estimateFinalizeWithdrawalGas({ // [!code hl]\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', // [!code hl]\\n targetChain: optimism, // [!code hl]\\n withdrawal: { ... }, // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n## Returns\\n\\n`bigint`\\n\\nThe estimated gas.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nGas limit for transaction execution on the L1. \\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### proofSubmitter (optional)\\n\\n- **Type:** `Address`\\n\\nThe address of the proof submitter to use when finalizing the withdrawal. No-op when the OptimismPortal contract version is less than v3.\\n\\nIf unspecified, the sending account is the proof submitter.\\n\\n```ts\\nconst hash = await client.finalizeWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n proofSubmitter: '0xD15F47c16BD277ff2dee6a0bD4e418165231CB69', // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n nonce: 69, // [!code focus]\\n targetChain: optimism,\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Optimism Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the Optimism Portal contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain to execute the transaction on.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### withdrawal\\n\\n- **Type:** `bigint`\\n\\nThe withdrawal.\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, // [!code focus]\\n targetChain: optimism,\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#estimatefinalizewithdrawalgas\",\"html\":\"\\nEstimates gas required to finalize a withdrawal that occurred on an L2.
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#estimatefinalizewithdrawalgas\",\"isPage\":true,\"text\":\"\\nEstimates gas required to finalize a withdrawal that occurred on an L2.\\n\",\"title\":\"estimateFinalizeWithdrawalGas\",\"titles\":[]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#usage\",\"html\":\"\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n \\nconst gas = await publicClientL1.estimateFinalizeWithdrawalGas({ \\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', \\n targetChain: optimism, \\n withdrawal: { ... }, \\n}) import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)bigint
The estimated gas.
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#returns\",\"isPage\":false,\"text\":\"\\nbigint\\nThe estimated gas.\\n\",\"title\":\"Returns\",\"titles\":[\"estimateFinalizeWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"estimateFinalizeWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#account\",\"html\":\"\\nAccount | AddressThe Account to send the transaction from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).
\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"account\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#chain-optional\",\"html\":\"\\nChainclient.chainThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.
\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#gas-optional\",\"html\":\"\\nbigintGas limit for transaction execution on the L1.
\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nGas limit for transaction execution on the L1.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#proofsubmitter-optional\",\"html\":\"\\nAddressThe address of the proof submitter to use when finalizing the withdrawal. No-op when the OptimismPortal contract version is less than v3.
\\nIf unspecified, the sending account is the proof submitter.
\\nconst hash = await client.finalizeWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n proofSubmitter: '0xD15F47c16BD277ff2dee6a0bD4e418165231CB69', \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#proofsubmitter-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe address of the proof submitter to use when finalizing the withdrawal. No-op when the OptimismPortal contract version is less than v3.\\nIf unspecified, the sending account is the proof submitter.\\nconst hash = await client.finalizeWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n proofSubmitter: '0xD15F47c16BD277ff2dee6a0bD4e418165231CB69', \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"proofSubmitter (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.
const hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#nonce-optional\",\"html\":\"\\nnumberUnique number identifying this transaction.
\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n nonce: 69, \\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n nonce: 69, \\n targetChain: optimism,\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#portaladdress-optional\",\"html\":\"\\nAddresstargetChain.contracts.portal[chainId].addressThe address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.
If a portalAddress is provided, the targetChain parameter becomes optional.
const hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n\",\"title\":\"portalAddress (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#targetchain\",\"html\":\"\\nChainThe L2 chain to execute the transaction on.
\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n targetChain: optimism, \\n})\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain to execute the transaction on.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#withdrawal\",\"html\":\"\\nbigintThe withdrawal.
\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, \\n targetChain: optimism,\\n})\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#withdrawal\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe withdrawal.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, \\n targetChain: optimism,\\n})\",\"title\":\"withdrawal\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.3405278da4cf98f4440f2bbe61f787f95833831a2cc98ffed8dae4ed329c0166.json b/site/.cache/search.index.3405278da4cf98f4440f2bbe61f787f95833831a2cc98ffed8dae4ed329c0166.json
index 40b351192e..a977c6783e 100644
--- a/site/.cache/search.index.3405278da4cf98f4440f2bbe61f787f95833831a2cc98ffed8dae4ed329c0166.json
+++ b/site/.cache/search.index.3405278da4cf98f4440f2bbe61f787f95833831a2cc98ffed8dae4ed329c0166.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Switch the target chain in a wallet.\\n---\\n\\n# switchChain\\n\\nSwitch the target chain in a wallet.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) // [!code focus]\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\n// [!include ~/snippets/walletClient.ts]\\n```\\n\\n:::\\n\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `number`\\n\\nThe Chain ID.\\n\\n## JSON-RPC Methods\\n\\n[`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\",\"document\":[{\"href\":\"/docs/actions/wallet/switchChain#switchchain\",\"html\":\"\\nSwitch the target chain in a wallet.
\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#switchchain\",\"isPage\":true,\"text\":\"\\nSwitch the target chain in a wallet.\\n\",\"title\":\"switchChain\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/switchChain#usage\",\"html\":\"\\n// @filename: client.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// @filename: example.js\\n \\n// ---cut---\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})numberThe Chain ID.
\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#id\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe Chain ID.\\n\",\"title\":\"id\",\"titles\":[\"switchChain\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/switchChain#json-rpc-methods\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#json-rpc-methods\",\"isPage\":false,\"text\":\"\\neth_switchEthereumChain\",\"title\":\"JSON-RPC Methods\",\"titles\":[\"switchChain\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Switch the target chain in a wallet.\\n---\\n\\n# switchChain\\n\\nSwitch the target chain in a wallet.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) // [!code focus]\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\n// [!include ~/snippets/walletClient.ts]\\n```\\n\\n:::\\n\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `number`\\n\\nThe Chain ID.\\n\\n## JSON-RPC Methods\\n\\n[`wallet_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/switchChain#switchchain\",\"html\":\"\\nSwitch the target chain in a wallet.
\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#switchchain\",\"isPage\":true,\"text\":\"\\nSwitch the target chain in a wallet.\\n\",\"title\":\"switchChain\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/switchChain#usage\",\"html\":\"\\n// @filename: client.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// @filename: example.js\\n \\n// ---cut---\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})numberThe Chain ID.
\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#id\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe Chain ID.\\n\",\"title\":\"id\",\"titles\":[\"switchChain\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/switchChain#json-rpc-methods\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#json-rpc-methods\",\"isPage\":false,\"text\":\"\\nwallet_switchEthereumChain\",\"title\":\"JSON-RPC Methods\",\"titles\":[\"switchChain\"]}]}}" diff --git a/site/.cache/search.index.3521fabc8f61e98e35413fdece97ff7c3be0f7ec507b450c8e06881f85a404c0.json b/site/.cache/search.index.3521fabc8f61e98e35413fdece97ff7c3be0f7ec507b450c8e06881f85a404c0.json deleted file mode 100644 index 5b4a778b83..0000000000 --- a/site/.cache/search.index.3521fabc8f61e98e35413fdece97ff7c3be0f7ec507b450c8e06881f85a404c0.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Verifies that an Authorization object was signed by the provided address.\\n---\\n\\n# verifyAuthorization\\n\\nVerifies that an Authorization object was signed by the provided address.\\n\\n## Import\\n\\n```ts twoslash\\nimport { verifyAuthorization } from 'viem/experimental'\\n```\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { verifyAuthorization } from 'viem/experimental' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({ // [!code focus]\\n address: walletClient.account.address, // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`boolean`\\n\\nWhether the signature is valid for the provided Authorization object.\\n\\n## Parameters\\n\\n### address\\n\\n- **Type:** `Address`\\n\\nThe address that signed the Authorization object.\\n\\n```ts twoslash\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n// ---cut---\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // [!code focus]\\n authorization,\\n}) \\n```\\n\\n### authorization\\n\\n- **Type:** `Authorization | SignedAuthorization`\\n\\nThe Authorization object to be verified.\\n\\n```ts twoslash\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization, // [!code focus]\\n}) \\n```\\n\\n### signature\\n\\n- **Type:** `Hex | ByteArray | Signature | SignedAuthorization`\\n\\nThe signature that was generated by signing the Authorization object with the address's private key.\\n\\n```ts twoslash\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst signature = await walletClient.signAuthorization({\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n }\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \\n```\",\"document\":[{\"href\":\"/experimental/eip7702/verifyAuthorization#verifyauthorization\",\"html\":\"\\nVerifies that an Authorization object was signed by the provided address.
\\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#verifyauthorization\",\"isPage\":true,\"text\":\"\\nVerifies that an Authorization object was signed by the provided address.\\n\",\"title\":\"verifyAuthorization\",\"titles\":[]},{\"href\":\"/experimental/eip7702/verifyAuthorization#import\",\"html\":\"\\nimport { verifyAuthorization } from 'viem/experimental'\\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#import\",\"isPage\":false,\"text\":\"\\nimport { verifyAuthorization } from 'viem/experimental'\\n\",\"title\":\"Import\",\"titles\":[\"verifyAuthorization\"]},{\"href\":\"/experimental/eip7702/verifyAuthorization#usage\",\"html\":\"\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n \\nconst valid = await verifyAuthorization({ \\n address: walletClient.account.address, \\n authorization, \\n}) import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())boolean
Whether the signature is valid for the provided Authorization object.
\\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#returns\",\"isPage\":false,\"text\":\"\\nboolean\\nWhether the signature is valid for the provided Authorization object.\\n\",\"title\":\"Returns\",\"titles\":[\"verifyAuthorization\"]},{\"href\":\"/experimental/eip7702/verifyAuthorization#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"verifyAuthorization\"]},{\"href\":\"/experimental/eip7702/verifyAuthorization#address\",\"html\":\"\\nAddressThe address that signed the Authorization object.
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n// ---cut---\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', \\n authorization,\\n}) \\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe address that signed the Authorization object.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n// ---cut---\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', \\n authorization,\\n}) \\n\",\"title\":\"address\",\"titles\":[\"verifyAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/verifyAuthorization#authorization\",\"html\":\"\\nAuthorization | SignedAuthorizationThe Authorization object to be verified.
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n \\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization, \\n}) \\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#authorization\",\"isPage\":false,\"text\":\"\\n\\nType: Authorization | SignedAuthorization\\n\\nThe Authorization object to be verified.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n \\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization, \\n}) \\n\",\"title\":\"authorization\",\"titles\":[\"verifyAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/verifyAuthorization#signature\",\"html\":\"\\nHex | ByteArray | Signature | SignedAuthorizationThe signature that was generated by signing the Authorization object with the address's private key.
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst signature = await walletClient.signAuthorization({\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n }\\n})\\n \\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, \\n}) \",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex | ByteArray | Signature | SignedAuthorization\\n\\nThe signature that was generated by signing the Authorization object with the address's private key.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst signature = await walletClient.signAuthorization({\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n }\\n})\\n \\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, \\n}) \",\"title\":\"signature\",\"titles\":[\"verifyAuthorization\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.36c6228ead52dd33d6c906a122785970cf25589be9b8a7bf8f0ea1c51642ca0f.json b/site/.cache/search.index.36c6228ead52dd33d6c906a122785970cf25589be9b8a7bf8f0ea1c51642ca0f.json
index 129af5a7d9..77ff40f80a 100644
--- a/site/.cache/search.index.36c6228ead52dd33d6c906a122785970cf25589be9b8a7bf8f0ea1c51642ca0f.json
+++ b/site/.cache/search.index.36c6228ead52dd33d6c906a122785970cf25589be9b8a7bf8f0ea1c51642ca0f.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Estimates gas required to prove a withdrawal that occurred on an L2.\\n---\\n\\n# estimateProveWithdrawalGas\\n\\nEstimates gas required to prove a withdrawal that occurred on an L2. \\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n\\nconst gas = await publicClientL1.estimateProveWithdrawalGas({ // [!code hl]\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', // [!code hl]\\n l2OutputIndex: 4529n, // [!code hl]\\n outputRootProof: { ... }, // [!code hl]\\n targetChain: optimism, // [!code hl]\\n withdrawalProof: [ ... ], // [!code hl]\\n withdrawal: { ... }, // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n## Returns\\n\\n`bigint`\\n\\nThe estimated gas.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, // [!code focus]\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nGas limit for transaction execution on the L1. \\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### l2OutputIndex \\n\\n- **Type:** `bigint`\\n\\nThe index of the L2 output. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n, // [!code focus]\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n nonce: 69, // [!code focus]\\n targetChain: optimism,\\n})\\n```\\n\\n### outputRootProof (optional)\\n\\n- **Type:** `bigint`\\n\\nThe proof of the L2 output. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ }, // [!code focus]\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Optimism Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the Optimism Portal contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain to execute the transaction on.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### withdrawalProof\\n\\n- **Type:** `bigint`\\n\\nThe proof of the L2 withdrawal. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ], // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### withdrawal\\n\\n- **Type:** `bigint`\\n\\nThe withdrawal. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, // [!code focus]\\n targetChain: optimism,\\n})\\n```\",\"document\":[{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#estimateprovewithdrawalgas\",\"html\":\"\\nEstimates gas required to prove a withdrawal that occurred on an L2.
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#estimateprovewithdrawalgas\",\"isPage\":true,\"text\":\"\\nEstimates gas required to prove a withdrawal that occurred on an L2.\\n\",\"title\":\"estimateProveWithdrawalGas\",\"titles\":[]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#usage\",\"html\":\"\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n \\nconst gas = await publicClientL1.estimateProveWithdrawalGas({ \\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', \\n l2OutputIndex: 4529n, \\n outputRootProof: { ... }, \\n targetChain: optimism, \\n withdrawalProof: [ ... ], \\n withdrawal: { ... }, \\n}) import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)bigint
The estimated gas.
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#returns\",\"isPage\":false,\"text\":\"\\nbigint\\nThe estimated gas.\\n\",\"title\":\"Returns\",\"titles\":[\"estimateProveWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"estimateProveWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#account\",\"html\":\"\\nAccount | AddressThe Account to send the transaction from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).
\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"account\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#chain-optional\",\"html\":\"\\nChainclient.chainThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.
\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, \\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, \\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#gas-optional\",\"html\":\"\\nbigintGas limit for transaction execution on the L1.
\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nGas limit for transaction execution on the L1.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#l2outputindex\",\"html\":\"\\nbigintThe index of the L2 output. Typically derived from the buildProveWithdrawal Action.
const hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n, \\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#l2outputindex\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe index of the L2 output. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n, \\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"l2OutputIndex\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.
const hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#nonce-optional\",\"html\":\"\\nnumberUnique number identifying this transaction.
\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n nonce: 69, \\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n nonce: 69, \\n targetChain: optimism,\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#outputrootproof-optional\",\"html\":\"\\nbigintThe proof of the L2 output. Typically derived from the buildProveWithdrawal Action.
const hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ }, \\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#outputrootproof-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe proof of the L2 output. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ }, \\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"outputRootProof (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#portaladdress-optional\",\"html\":\"\\nAddresstargetChain.contracts.portal[chainId].addressThe address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.
If a portalAddress is provided, the targetChain parameter becomes optional.
const hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n\",\"title\":\"portalAddress (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#targetchain\",\"html\":\"\\nChainThe L2 chain to execute the transaction on.
\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism, \\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain to execute the transaction on.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#withdrawalproof\",\"html\":\"\\nbigintThe proof of the L2 withdrawal. Typically derived from the buildProveWithdrawal Action.
const hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ], \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#withdrawalproof\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe proof of the L2 withdrawal. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ], \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"withdrawalProof\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#withdrawal\",\"html\":\"\\nbigintThe withdrawal. Typically derived from the buildProveWithdrawal Action.
const hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, \\n targetChain: optimism,\\n})\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#withdrawal\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe withdrawal. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, \\n targetChain: optimism,\\n})\",\"title\":\"withdrawal\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Estimates gas required to prove a withdrawal that occurred on an L2.\\n---\\n\\n# estimateProveWithdrawalGas\\n\\nEstimates gas required to prove a withdrawal that occurred on an L2. \\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n\\nconst gas = await publicClientL1.estimateProveWithdrawalGas({ // [!code hl]\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', // [!code hl]\\n l2OutputIndex: 4529n, // [!code hl]\\n outputRootProof: { ... }, // [!code hl]\\n targetChain: optimism, // [!code hl]\\n withdrawalProof: [ ... ], // [!code hl]\\n withdrawal: { ... }, // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n## Returns\\n\\n`bigint`\\n\\nThe estimated gas.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, // [!code focus]\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nGas limit for transaction execution on the L1. \\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### l2OutputIndex \\n\\n- **Type:** `bigint`\\n\\nThe index of the L2 output. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n, // [!code focus]\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n nonce: 69, // [!code focus]\\n targetChain: optimism,\\n})\\n```\\n\\n### outputRootProof (optional)\\n\\n- **Type:** `bigint`\\n\\nThe proof of the L2 output. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ }, // [!code focus]\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Optimism Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the Optimism Portal contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain to execute the transaction on.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### withdrawalProof\\n\\n- **Type:** `bigint`\\n\\nThe proof of the L2 withdrawal. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ], // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### withdrawal\\n\\n- **Type:** `bigint`\\n\\nThe withdrawal. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, // [!code focus]\\n targetChain: optimism,\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#estimateprovewithdrawalgas\",\"html\":\"\\nEstimates gas required to prove a withdrawal that occurred on an L2.
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#estimateprovewithdrawalgas\",\"isPage\":true,\"text\":\"\\nEstimates gas required to prove a withdrawal that occurred on an L2.\\n\",\"title\":\"estimateProveWithdrawalGas\",\"titles\":[]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#usage\",\"html\":\"\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n \\nconst gas = await publicClientL1.estimateProveWithdrawalGas({ \\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', \\n l2OutputIndex: 4529n, \\n outputRootProof: { ... }, \\n targetChain: optimism, \\n withdrawalProof: [ ... ], \\n withdrawal: { ... }, \\n}) import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)bigint
The estimated gas.
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#returns\",\"isPage\":false,\"text\":\"\\nbigint\\nThe estimated gas.\\n\",\"title\":\"Returns\",\"titles\":[\"estimateProveWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"estimateProveWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#account\",\"html\":\"\\nAccount | AddressThe Account to send the transaction from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).
\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"account\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#chain-optional\",\"html\":\"\\nChainclient.chainThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.
\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, \\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, \\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#gas-optional\",\"html\":\"\\nbigintGas limit for transaction execution on the L1.
\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nGas limit for transaction execution on the L1.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#l2outputindex\",\"html\":\"\\nbigintThe index of the L2 output. Typically derived from the buildProveWithdrawal Action.
const hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n, \\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#l2outputindex\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe index of the L2 output. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n, \\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"l2OutputIndex\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.
const hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#nonce-optional\",\"html\":\"\\nnumberUnique number identifying this transaction.
\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n nonce: 69, \\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n nonce: 69, \\n targetChain: optimism,\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#outputrootproof-optional\",\"html\":\"\\nbigintThe proof of the L2 output. Typically derived from the buildProveWithdrawal Action.
const hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ }, \\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#outputrootproof-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe proof of the L2 output. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ }, \\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"outputRootProof (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#portaladdress-optional\",\"html\":\"\\nAddresstargetChain.contracts.portal[chainId].addressThe address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.
If a portalAddress is provided, the targetChain parameter becomes optional.
const hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n\",\"title\":\"portalAddress (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#targetchain\",\"html\":\"\\nChainThe L2 chain to execute the transaction on.
\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism, \\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain to execute the transaction on.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#withdrawalproof\",\"html\":\"\\nbigintThe proof of the L2 withdrawal. Typically derived from the buildProveWithdrawal Action.
const hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ], \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#withdrawalproof\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe proof of the L2 withdrawal. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ], \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"withdrawalProof\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#withdrawal\",\"html\":\"\\nbigintThe withdrawal. Typically derived from the buildProveWithdrawal Action.
const hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, \\n targetChain: optimism,\\n})\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#withdrawal\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe withdrawal. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, \\n targetChain: optimism,\\n})\",\"title\":\"withdrawal\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.37ae70f10327a1a76161429d5289c7fe476ad23d0abc1e45e8555fe482780f38.json b/site/.cache/search.index.37ae70f10327a1a76161429d5289c7fe476ad23d0abc1e45e8555fe482780f38.json
new file mode 100644
index 0000000000..7cc12a704a
--- /dev/null
+++ b/site/.cache/search.index.37ae70f10327a1a76161429d5289c7fe476ad23d0abc1e45e8555fe482780f38.json
@@ -0,0 +1 @@
+"{\"value\":{\"mdx\":\"---\\ndescription: Requests to disconnect account(s).\\n---\\n\\n# disconnect\\n\\nRequests to disconnect account(s).\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.disconnect() // [!code focus]\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n```\\n\\n:::\\n\\n\",\"document\":[{\"href\":\"/experimental/erc7846/disconnect#disconnect\",\"html\":\"\\nRequests to disconnect account(s).
\\n\",\"id\":\"pages/experimental/erc7846/disconnect.md#disconnect\",\"isPage\":true,\"text\":\"\\nRequests to disconnect account(s).\\n\",\"title\":\"disconnect\",\"titles\":[]},{\"href\":\"/experimental/erc7846/disconnect#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.disconnect() import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())The guide below demonstrates how to perform Contract Writes with EIP-7702 to invoke Contract functions on an Externally Owned Account.
\\n\",\"id\":\"pages/experimental/eip7702/contract-writes.md#contract-writes-with-eip-7702\",\"isPage\":true,\"text\":\"\\nThe guide below demonstrates how to perform Contract Writes with EIP-7702 to invoke Contract functions on an Externally Owned Account.\\n\",\"title\":\"Contract Writes with EIP-7702\",\"titles\":[]},{\"href\":\"/experimental/eip7702/contract-writes#overview\",\"html\":\"\\nHere is an end-to-end overview of how to perform a Contract Write to send a batch of Calls. We will break it down into Steps below.
\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n \\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: walletClient.account.address,\\n functionName: 'execute',\\n args: [[\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }\\n ]],\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as an option.\\n})export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())pragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n \\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, "call reverted");\\n }\\n }\\n}EIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an Anvil node for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.
\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n\",\"id\":\"pages/experimental/eip7702/contract-writes.md#0-install--run-anvil\",\"isPage\":false,\"text\":\"\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an Anvil node for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n\",\"title\":\"0. Install & Run Anvil\",\"titles\":[\"Contract Writes with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/contract-writes#1-set-up-smart-contract\",\"html\":\"\\nWe will need to set up a Smart Contract to interact with. For the purposes of this guide, we will create and deploy a BatchCallDelegation.sol contract, however, you can use any existing deployed contract.
Firstly, deploy a Contract to the Network with the following source:
\\npragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n \\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, "call reverted");\\n }\\n }\\n}\\n\\n\",\"id\":\"pages/experimental/eip7702/contract-writes.md#1-set-up-smart-contract\",\"isPage\":false,\"text\":\"\\nWe will need to set up a Smart Contract to interact with. For the purposes of this guide, we will create and deploy a BatchCallDelegation.sol contract, however, you can use any existing deployed contract.\\nFirstly, deploy a Contract to the Network with the following source:\\npragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n \\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, "call reverted");\\n }\\n }\\n}\\nDO NOT USE IN PRODUCTIONThis contract is for demonstration purposes only to show how EIP-7702 works. If someone else (Sponsor Account) is executing calls on behalf of the Account, it does not implement a nonce & signature verification mechanism to prevent replay attacks.\\n\",\"title\":\"1. Set up Smart Contract\",\"titles\":[\"Contract Writes with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/contract-writes#2-set-up-client--account\",\"html\":\"\\nNext, we will need to set up a Client and Externally Owned Account to sign EIP-7702 Authorizations.
\\nThis code snippet uses the Extending Client guide.
\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"id\":\"pages/experimental/eip7702/contract-writes.md#2-set-up-client--account\",\"isPage\":false,\"text\":\"\\nNext, we will need to set up a Client and Externally Owned Account to sign EIP-7702 Authorizations.\\nThis code snippet uses the Extending Client guide.\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"2. Set up Client & Account\",\"titles\":[\"Contract Writes with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/contract-writes#3-authorize-contract-designation\",\"html\":\"\\nWe will need to sign an Authorization to designate the Contract to the Account.
\\nIn the example below, we are using the account attached to the walletClient to sign the Authorization – this will be the Account that the Contract's bytecode will be injected into.
// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({ \\n contractAddress, \\n}) export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())Using our Contract Instance, we can now call the execute function on it to perform batch calls.
// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n \\nconst hash = await walletClient.writeContract({ \\n abi, \\n address: walletClient.account.address, \\n functionName: 'execute', \\n args: [[ \\n { \\n data: '0x', \\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, { \\n data: '0x', \\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n } \\n ]], \\n authorizationList: [authorization], \\n}) export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())We can also utilize an Sponsor Account to execute a call on behalf of the authorizing Account. This is useful for cases where we want to "sponsor" the Transaction for the user (i.e. pay for their gas fees).
\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\nconst sponsor = privateKeyToAccount('0x...') \\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n sponsor, \\n})\\n \\nconst hash = await walletClient.writeContract({\\n account: sponsor, \\n abi,\\n address: walletClient.account.address,\\n functionName: 'execute',\\n args: [[\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }\\n ]],\\n authorizationList: [authorization],\\n})// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'Requests to add a Sub Account. See more
\\n\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#addsubaccount\",\"isPage\":true,\"text\":\"\\nRequests to add a Sub Account. See more\\nWhat is a Sub Account?\\n\",\"title\":\"addSubAccount\",\"titles\":[]},{\"href\":\"/experimental/erc7895/addSubAccount#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ \\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d', \\n type: 'address' \\n }],\\n type: 'create',\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())The created Sub Account.
\\ntype ReturnType = {\\n address: Address\\n factory?: Address | undefined\\n factoryData?: Hex | undefined\\n}\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#returns\",\"isPage\":false,\"text\":\"\\nThe created Sub Account.\\ntype ReturnType = {\\n address: Address\\n factory?: Address | undefined\\n factoryData?: Hex | undefined\\n}\\n\",\"title\":\"Returns\",\"titles\":[\"addSubAccount\"]},{\"href\":\"/experimental/erc7895/addSubAccount#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"addSubAccount\"]},{\"href\":\"/experimental/erc7895/addSubAccount#new-accounts\",\"html\":\"\\nAllows the wallet to create a Sub Account with a set of known signing keys. Learn more
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#new-accounts\",\"isPage\":false,\"text\":\"\\nAllows the wallet to create a Sub Account with a set of known signing keys. Learn more\\n\",\"title\":\"New Accounts\",\"titles\":[\"addSubAccount\",\"Parameters\"]},{\"href\":\"/experimental/erc7895/addSubAccount#keys\",\"html\":\"\\nSet of signing keys that will belong to the Sub Account.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ \\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', \\n type: 'p256'\\n }], \\n type: 'create',\\n})\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#keys\",\"isPage\":false,\"text\":\"\\nSet of signing keys that will belong to the Sub Account.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ \\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', \\n type: 'p256'\\n }], \\n type: 'create',\\n})\\n\",\"title\":\"keys\",\"titles\":[\"addSubAccount\",\"Parameters\",\"New Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#keyspublickey\",\"html\":\"\\nHexThe public key of the signing key.
\\ntype: "address", this is a 20-byte address.// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', \\n type: 'p256'\\n }],\\n type: 'create',\\n})\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#keyspublickey\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe public key of the signing key.\\n\\nThis is a 32-byte hexadecimal string.\\nFor type: "address", this is a 20-byte address.\\n\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', \\n type: 'p256'\\n }],\\n type: 'create',\\n})\\n\",\"title\":\"keys.publicKey\",\"titles\":[\"addSubAccount\",\"Parameters\",\"New Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#keystype\",\"html\":\"\\n'address' | 'p256' | 'webcrypto-p256' | 'webauthn-p256'The type of signing key.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522',\\n type: 'p256'\\n }],\\n type: 'create',\\n})\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#keystype\",\"isPage\":false,\"text\":\"\\n\\nType: 'address' | 'p256' | 'webcrypto-p256' | 'webauthn-p256'\\n\\nThe type of signing key.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522',\\n type: 'p256'\\n }],\\n type: 'create',\\n})\\n\",\"title\":\"keys.type\",\"titles\":[\"addSubAccount\",\"Parameters\",\"New Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#deployed-accounts\",\"html\":\"\\nAn existing account that the user wants to link to their global account. Learn more
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#deployed-accounts\",\"isPage\":false,\"text\":\"\\nAn existing account that the user wants to link to their global account. Learn more\\n\",\"title\":\"Deployed Accounts\",\"titles\":[\"addSubAccount\",\"Parameters\"]},{\"href\":\"/experimental/erc7895/addSubAccount#address\",\"html\":\"\\nAddress of the deployed account.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000', \\n type: 'deployed',\\n})\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#address\",\"isPage\":false,\"text\":\"\\nAddress of the deployed account.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000', \\n type: 'deployed',\\n})\\n\",\"title\":\"address\",\"titles\":[\"addSubAccount\",\"Parameters\",\"Deployed Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#chainid\",\"html\":\"\\nThe chain ID of the deployed account.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n chainId: 1, \\n type: 'deployed',\\n})\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#chainid\",\"isPage\":false,\"text\":\"\\nThe chain ID of the deployed account.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n chainId: 1, \\n type: 'deployed',\\n})\\n\",\"title\":\"chainId\",\"titles\":[\"addSubAccount\",\"Parameters\",\"Deployed Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#undeployed-accounts\",\"html\":\"\\nAn account that has been created, but is not yet deployed. The wallet will decide whether or not to deploy it. Learn more
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#undeployed-accounts\",\"isPage\":false,\"text\":\"\\nAn account that has been created, but is not yet deployed. The wallet will decide whether or not to deploy it. Learn more\\n\",\"title\":\"Undeployed Accounts\",\"titles\":[\"addSubAccount\",\"Parameters\"]},{\"href\":\"/experimental/erc7895/addSubAccount#address-1\",\"html\":\"\\nAddress of the undeployed account.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000', \\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#address-1\",\"isPage\":false,\"text\":\"\\nAddress of the undeployed account.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000', \\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\\n\",\"title\":\"address\",\"titles\":[\"addSubAccount\",\"Parameters\",\"Undeployed Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#chainid-1\",\"html\":\"\\nThe chain ID the account will be deployed on.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n chainId: 1, \\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#chainid-1\",\"isPage\":false,\"text\":\"\\nThe chain ID the account will be deployed on.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n chainId: 1, \\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\\n\",\"title\":\"chainId\",\"titles\":[\"addSubAccount\",\"Parameters\",\"Undeployed Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#factory\",\"html\":\"\\nThe address of the factory contract.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#factory\",\"isPage\":false,\"text\":\"\\nThe address of the factory contract.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\\n\",\"title\":\"factory\",\"titles\":[\"addSubAccount\",\"Parameters\",\"Undeployed Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#factorydata\",\"html\":\"\\nThe data to be passed to the factory contract.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce',\\n factoryData: '0xdeadbeef', \\n type: 'undeployed',\\n})\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#factorydata\",\"isPage\":false,\"text\":\"\\nThe data to be passed to the factory contract.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce',\\n factoryData: '0xdeadbeef', \\n type: 'undeployed',\\n})\",\"title\":\"factoryData\",\"titles\":[\"addSubAccount\",\"Parameters\",\"Undeployed Accounts\"]}]}}"
diff --git a/site/.cache/search.index.4354998f49313748d674a7f74132135e5f9169a1153e99ccb73c45c4e1b4694b.json b/site/.cache/search.index.4354998f49313748d674a7f74132135e5f9169a1153e99ccb73c45c4e1b4694b.json
index ec71e8cfa8..f770eb1ef6 100644
--- a/site/.cache/search.index.4354998f49313748d674a7f74132135e5f9169a1153e99ccb73c45c4e1b4694b.json
+++ b/site/.cache/search.index.4354998f49313748d674a7f74132135e5f9169a1153e99ccb73c45c4e1b4694b.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Returns the status and receipts of a call batch.\\n---\\n\\n# getCallsStatus\\n\\nReturns the status and receipts of a call batch that was sent via `sendCalls`.\\n\\n[Read more.](https://github.com/ethereum/EIPs/blob/1663ea2e7a683285f977eda51c32cec86553f585/EIPS/eip-5792.md#wallet_getcallsstatus)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst { status, receipts } = await walletClient.getCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WalletGetCallsStatusReturnType`\\n\\nStatus and receipts of the calls.\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `string`\\n\\nIdentifier of the call batch.\\n\\n\",\"document\":[{\"href\":\"/experimental/eip5792/getCallsStatus#getcallsstatus\",\"html\":\"\\nReturns the status and receipts of a call batch that was sent via sendCalls.
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { status, receipts } = await walletClient.getCallsStatus({ \\n id: '0x1234567890abcdef',\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()WalletGetCallsStatusReturnType
Status and receipts of the calls.
\\n\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nWalletGetCallsStatusReturnType\\nStatus and receipts of the calls.\\n\",\"title\":\"Returns\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/experimental/eip5792/getCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/experimental/eip5792/getCallsStatus#id\",\"html\":\"\\nstringIdentifier of the call batch.
\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\",\"title\":\"id\",\"titles\":[\"getCallsStatus\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Returns the status of a call batch.\\n---\\n\\n# getCallsStatus\\n\\nReturns the status of a call batch that was sent via `sendCalls`.\\n\\n[Read more.](https://eips.ethereum.org/EIPS/eip-5792#wallet_getcallsstatus)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\\n// @log: {\\n// @log: atomic: false,\\n// @log: chainId: 1,\\n// @log: id: '0x1234567890abcdef',\\n// @log: statusCode: 200,\\n// @log: status: 'success',\\n// @log: receipts: [{ ... }],\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WalletGetCallsStatusReturnType`\\n\\nStatus of the calls.\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `string`\\n\\nIdentifier of the call batch.\\n\\n\",\"document\":[{\"href\":\"/experimental/eip5792/getCallsStatus#getcallsstatus\",\"html\":\"\\nReturns the status of a call batch that was sent via sendCalls.
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ \\n id: '0x1234567890abcdef',\\n})\\n// @log: {\\n \\n// @log: atomic: false,\\n \\n// @log: chainId: 1,\\n \\n// @log: id: '0x1234567890abcdef',\\n \\n// @log: statusCode: 200,\\n \\n// @log: status: 'success',\\n \\n// @log: receipts: [{ ... }],\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()WalletGetCallsStatusReturnType
Status of the calls.
\\n\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nWalletGetCallsStatusReturnType\\nStatus of the calls.\\n\",\"title\":\"Returns\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/experimental/eip5792/getCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/experimental/eip5792/getCallsStatus#id\",\"html\":\"\\nstringIdentifier of the call batch.
\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\",\"title\":\"id\",\"titles\":[\"getCallsStatus\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.4799726544640763e588b9dc4a0711f5993750aa369b23d10c0f9eb3ff90eab2.json b/site/.cache/search.index.4799726544640763e588b9dc4a0711f5993750aa369b23d10c0f9eb3ff90eab2.json index f1aaf73ec2..8e79e89d37 100644 --- a/site/.cache/search.index.4799726544640763e588b9dc4a0711f5993750aa369b23d10c0f9eb3ff90eab2.json +++ b/site/.cache/search.index.4799726544640763e588b9dc4a0711f5993750aa369b23d10c0f9eb3ff90eab2.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Serializes a ERC-6492 flavoured signature into hex format.\\n---\\n\\n# serializeErc6492Signature\\n\\nSerializes a [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) flavoured signature into hex format.\\n\\n## Import\\n\\n```ts\\nimport { serializeErc6492Signature } from 'viem/experimental'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { serializeErc6492Signature } from 'viem/experimental'\\n\\nserializeErc6492Signature({ // [!code focus:99]\\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// \\\"0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492\\\"\\n```\\n\\n## Returns\\n\\n[`Hex`](/docs/glossary/types#hex)\\n\\nThe hex formatted signature.\\n\\n## Parameters\\n\\n### address\\n\\n- **Type:** `Address`\\n\\nThe ERC-4337 Account Factory or preparation address to use for counterfactual verification.\\n\\n### data\\n\\n- **Type:** `Hex`\\n\\nCalldata to pass to deploy the ERC-4337 Account (if not deployed) for counterfactual verification.\\n\\n### signature\\n\\n- **Type:** `Hex`\\n\\nThe original signature.\",\"document\":[{\"href\":\"/docs/utilities/serializeErc6492Signature#serializeerc6492signature\",\"html\":\"\\nSerializes a ERC-6492 flavoured signature into hex format.
\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#serializeerc6492signature\",\"isPage\":true,\"text\":\"\\nSerializes a ERC-6492 flavoured signature into hex format.\\n\",\"title\":\"serializeErc6492Signature\",\"titles\":[]},{\"href\":\"/docs/utilities/serializeErc6492Signature#import\",\"html\":\"\\nimport { serializeErc6492Signature } from 'viem/experimental'\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#import\",\"isPage\":false,\"text\":\"\\nimport { serializeErc6492Signature } from 'viem/experimental'\\n\",\"title\":\"Import\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#usage\",\"html\":\"\\nimport { serializeErc6492Signature } from 'viem/experimental'\\n \\nserializeErc6492Signature({ \\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// "0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492"\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#usage\",\"isPage\":false,\"text\":\"\\nimport { serializeErc6492Signature } from 'viem/experimental'\\n \\nserializeErc6492Signature({ \\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// "0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492"\\n\",\"title\":\"Usage\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#returns\",\"html\":\"\\n\\nThe hex formatted signature.
\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#returns\",\"isPage\":false,\"text\":\"\\nHex\\nThe hex formatted signature.\\n\",\"title\":\"Returns\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#address\",\"html\":\"\\nAddressThe ERC-4337 Account Factory or preparation address to use for counterfactual verification.
\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe ERC-4337 Account Factory or preparation address to use for counterfactual verification.\\n\",\"title\":\"address\",\"titles\":[\"serializeErc6492Signature\",\"Parameters\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#data\",\"html\":\"\\nHexCalldata to pass to deploy the ERC-4337 Account (if not deployed) for counterfactual verification.
\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#data\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to pass to deploy the ERC-4337 Account (if not deployed) for counterfactual verification.\\n\",\"title\":\"data\",\"titles\":[\"serializeErc6492Signature\",\"Parameters\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#signature\",\"html\":\"\\nHexThe original signature.
\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe original signature.\",\"title\":\"signature\",\"titles\":[\"serializeErc6492Signature\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Serializes a ERC-6492 flavoured signature into hex format.\\n---\\n\\n# serializeErc6492Signature\\n\\nSerializes a [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) flavoured signature into hex format.\\n\\n## Import\\n\\n```ts\\nimport { serializeErc6492Signature } from 'viem/utils'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { serializeErc6492Signature } from 'viem/utils'\\n\\nserializeErc6492Signature({ // [!code focus:99]\\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// \\\"0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492\\\"\\n```\\n\\n## Returns\\n\\n[`Hex`](/docs/glossary/types#hex)\\n\\nThe hex formatted signature.\\n\\n## Parameters\\n\\n### address\\n\\n- **Type:** `Address`\\n\\nThe ERC-4337 Account Factory or preparation address to use for counterfactual verification.\\n\\n### data\\n\\n- **Type:** `Hex`\\n\\nCalldata to pass to deploy the ERC-4337 Account (if not deployed) for counterfactual verification.\\n\\n### signature\\n\\n- **Type:** `Hex`\\n\\nThe original signature.\",\"document\":[{\"href\":\"/docs/utilities/serializeErc6492Signature#serializeerc6492signature\",\"html\":\"\\nSerializes a ERC-6492 flavoured signature into hex format.
\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#serializeerc6492signature\",\"isPage\":true,\"text\":\"\\nSerializes a ERC-6492 flavoured signature into hex format.\\n\",\"title\":\"serializeErc6492Signature\",\"titles\":[]},{\"href\":\"/docs/utilities/serializeErc6492Signature#import\",\"html\":\"\\nimport { serializeErc6492Signature } from 'viem/utils'\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#import\",\"isPage\":false,\"text\":\"\\nimport { serializeErc6492Signature } from 'viem/utils'\\n\",\"title\":\"Import\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#usage\",\"html\":\"\\nimport { serializeErc6492Signature } from 'viem/utils'\\n \\nserializeErc6492Signature({ \\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// "0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492"\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#usage\",\"isPage\":false,\"text\":\"\\nimport { serializeErc6492Signature } from 'viem/utils'\\n \\nserializeErc6492Signature({ \\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// "0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492"\\n\",\"title\":\"Usage\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#returns\",\"html\":\"\\n\\nThe hex formatted signature.
\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#returns\",\"isPage\":false,\"text\":\"\\nHex\\nThe hex formatted signature.\\n\",\"title\":\"Returns\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#address\",\"html\":\"\\nAddressThe ERC-4337 Account Factory or preparation address to use for counterfactual verification.
\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe ERC-4337 Account Factory or preparation address to use for counterfactual verification.\\n\",\"title\":\"address\",\"titles\":[\"serializeErc6492Signature\",\"Parameters\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#data\",\"html\":\"\\nHexCalldata to pass to deploy the ERC-4337 Account (if not deployed) for counterfactual verification.
\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#data\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to pass to deploy the ERC-4337 Account (if not deployed) for counterfactual verification.\\n\",\"title\":\"data\",\"titles\":[\"serializeErc6492Signature\",\"Parameters\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#signature\",\"html\":\"\\nHexThe original signature.
\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe original signature.\",\"title\":\"signature\",\"titles\":[\"serializeErc6492Signature\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.53a0c823bd426c844452a6c3437186ecdde21abea2145f9e955b8e44ac5d9fa3.json b/site/.cache/search.index.53a0c823bd426c844452a6c3437186ecdde21abea2145f9e955b8e44ac5d9fa3.json new file mode 100644 index 0000000000..49c96af69a --- /dev/null +++ b/site/.cache/search.index.53a0c823bd426c844452a6c3437186ecdde21abea2145f9e955b8e44ac5d9fa3.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"---\\ndescription: Extract capabilities that a connected wallet supports.\\n---\\n\\n# getCapabilities\\n\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n[Read more](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_getcapabilities)\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n// @log: 8453: {\\n// @log: atomic: {\\n// @log: status: 'supported',\\n// @log: },\\n// @log: paymasterService: {\\n// @log: supported: true,\\n// @log: },\\n// @log: },\\n// @log: 84532: {\\n// @log: atomic: {\\n// @log: status: 'supported',\\n// @log: },\\n// @log: },\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `getCapabilities`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WalletCapabilities`\\n\\nCapabilities of the wallet.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Address`\\n\\nThe account to get capabilities for.\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n})\\n```\\n\\n### chainId\\n\\n- **Type:** `number`\\n\\nThe chain ID to get capabilities for.\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/docs/actions/wallet/getCapabilities#getcapabilities\",\"html\":\"\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).
\\n\\n\",\"id\":\"pages/docs/actions/wallet/getCapabilities.mdx#getcapabilities\",\"isPage\":true,\"text\":\"\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).\\nRead more\\n\",\"title\":\"getCapabilities\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/getCapabilities#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n \\n// @log: 8453: {\\n \\n// @log: atomic: {\\n \\n// @log: status: 'supported',\\n \\n// @log: },\\n \\n// @log: paymasterService: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: 84532: {\\n \\n// @log: atomic: {\\n \\n// @log: status: 'supported',\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()If you do not wish to pass an account to every getCapabilities, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})WalletCapabilities
Capabilities of the wallet.
\\n\",\"id\":\"pages/docs/actions/wallet/getCapabilities.mdx#returns\",\"isPage\":false,\"text\":\"\\nWalletCapabilities\\nCapabilities of the wallet.\\n\",\"title\":\"Returns\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/docs/actions/wallet/getCapabilities#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/getCapabilities.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/docs/actions/wallet/getCapabilities#account\",\"html\":\"\\nAddressThe account to get capabilities for.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n})\\n\",\"id\":\"pages/docs/actions/wallet/getCapabilities.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe account to get capabilities for.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n})\\n\",\"title\":\"account\",\"titles\":[\"getCapabilities\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/getCapabilities#chainid\",\"html\":\"\\nnumberThe chain ID to get capabilities for.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, \\n})\",\"id\":\"pages/docs/actions/wallet/getCapabilities.mdx#chainid\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe chain ID to get capabilities for.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, \\n})\",\"title\":\"chainId\",\"titles\":[\"getCapabilities\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.55c1e9f27c243f681ad14bf92012b42203b29cfa1b684d3c1b3ce96b9f1cac98.json b/site/.cache/search.index.55c1e9f27c243f681ad14bf92012b42203b29cfa1b684d3c1b3ce96b9f1cac98.json
index d7928bfbc1..0776e1e944 100644
--- a/site/.cache/search.index.55c1e9f27c243f681ad14bf92012b42203b29cfa1b684d3c1b3ce96b9f1cac98.json
+++ b/site/.cache/search.index.55c1e9f27c243f681ad14bf92012b42203b29cfa1b684d3c1b3ce96b9f1cac98.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Returns the current status of a withdrawal. \\n---\\n\\n# getWithdrawalStatus\\n\\nReturns the current status of a withdrawal. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow. \\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n\\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n\\nconst status = await publicClientL1.getWithdrawalStatus({ // [!code hl]\\n receipt, // [!code hl]\\n targetChain: publicClientL2.chain, // [!code hl]\\n}) // [!code hl]\\n// \\\"ready-to-prove\\\" // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`\\\"waiting-to-prove\\\" | \\\"ready-to-prove\\\" | \\\"waiting-to-finalize\\\" | \\\"ready-to-finalize\\\" | \\\"finalized\\\"`\\n\\n## Parameters\\n\\n### receipt\\n\\n- **Type:** `TransactionReceipt`\\n\\nThe transaction receipt.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, // [!code focus]\\n targetChain: optimism, \\n}) \\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### l2OutputOracleAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.l2OutputOracle[chainId].address`\\n\\nThe address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/L2OutputOracle.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/op-stack/actions/getWithdrawalStatus#getwithdrawalstatus\",\"html\":\"\\nReturns the current status of a withdrawal. Used for the Withdrawal flow.
\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#getwithdrawalstatus\",\"isPage\":true,\"text\":\"\\nReturns the current status of a withdrawal. Used for the Withdrawal flow.\\n\",\"title\":\"getWithdrawalStatus\",\"titles\":[]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#usage\",\"html\":\"\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n \\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, \\n targetChain: publicClientL2.chain, \\n}) \\n// "ready-to-prove" //import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})"waiting-to-prove" | "ready-to-prove" | "waiting-to-finalize" | "ready-to-finalize" | "finalized"
TransactionReceiptThe transaction receipt.
\\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, \\n targetChain: optimism, \\n}) \\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#receipt\",\"isPage\":false,\"text\":\"\\n\\nType: TransactionReceipt\\n\\nThe transaction receipt.\\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, \\n targetChain: optimism, \\n}) \\n\",\"title\":\"receipt\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#targetchain\",\"html\":\"\\nChainThe L2 chain.
\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n targetChain: optimism, \\n})\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain.\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#l2outputoracleaddress-optional\",\"html\":\"\\nAddresstargetChain.contracts.l2OutputOracle[chainId].addressThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.
If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.
const status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#l2outputoracleaddress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.l2OutputOracle[chainId].address\\n\\nThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n\",\"title\":\"l2OutputOracleAddress (optional)\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#portaladdress-optional\",\"html\":\"\\nAddresstargetChain.contracts.portal[chainId].addressThe address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.
If a portalAddress is provided, the targetChain parameter becomes optional.
const status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"title\":\"portalAddress (optional)\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Returns the current status of a withdrawal. \\n---\\n\\n# getWithdrawalStatus\\n\\nReturns the current status of a withdrawal. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow. \\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n\\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n\\nconst status = await publicClientL1.getWithdrawalStatus({ // [!code hl]\\n receipt, // [!code hl]\\n targetChain: publicClientL2.chain, // [!code hl]\\n}) // [!code hl]\\n// \\\"ready-to-prove\\\" // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`\\\"waiting-to-prove\\\" | \\\"ready-to-prove\\\" | \\\"waiting-to-finalize\\\" | \\\"ready-to-finalize\\\" | \\\"finalized\\\"`\\n\\n## Parameters\\n\\n### receipt\\n\\n- **Type:** `TransactionReceipt`\\n\\nThe transaction receipt.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, // [!code focus]\\n targetChain: optimism, \\n}) \\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### l2OutputOracleAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.l2OutputOracle[chainId].address`\\n\\nThe address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/actions/getWithdrawalStatus#getwithdrawalstatus\",\"html\":\"\\nReturns the current status of a withdrawal. Used for the Withdrawal flow.
\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#getwithdrawalstatus\",\"isPage\":true,\"text\":\"\\nReturns the current status of a withdrawal. Used for the Withdrawal flow.\\n\",\"title\":\"getWithdrawalStatus\",\"titles\":[]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#usage\",\"html\":\"\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n \\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, \\n targetChain: publicClientL2.chain, \\n}) \\n// "ready-to-prove" //import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})"waiting-to-prove" | "ready-to-prove" | "waiting-to-finalize" | "ready-to-finalize" | "finalized"
TransactionReceiptThe transaction receipt.
\\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, \\n targetChain: optimism, \\n}) \\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#receipt\",\"isPage\":false,\"text\":\"\\n\\nType: TransactionReceipt\\n\\nThe transaction receipt.\\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, \\n targetChain: optimism, \\n}) \\n\",\"title\":\"receipt\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#targetchain\",\"html\":\"\\nChainThe L2 chain.
\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n targetChain: optimism, \\n})\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain.\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#l2outputoracleaddress-optional\",\"html\":\"\\nAddresstargetChain.contracts.l2OutputOracle[chainId].addressThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.
If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.
const status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#l2outputoracleaddress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.l2OutputOracle[chainId].address\\n\\nThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n\",\"title\":\"l2OutputOracleAddress (optional)\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#portaladdress-optional\",\"html\":\"\\nAddresstargetChain.contracts.portal[chainId].addressThe address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.
If a portalAddress is provided, the targetChain parameter becomes optional.
const status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"title\":\"portalAddress (optional)\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.5f136b1bcef80d0939b973ae4b2d2b99f7d60e561282ba22329cebb25dd9c42c.json b/site/.cache/search.index.5f136b1bcef80d0939b973ae4b2d2b99f7d60e561282ba22329cebb25dd9c42c.json
index ae3bd0d33f..934f90742a 100644
--- a/site/.cache/search.index.5f136b1bcef80d0939b973ae4b2d2b99f7d60e561282ba22329cebb25dd9c42c.json
+++ b/site/.cache/search.index.5f136b1bcef80d0939b973ae4b2d2b99f7d60e561282ba22329cebb25dd9c42c.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Encodes a string, number, boolean or byte array to a hex value value.\\n---\\n\\n# toHex\\n\\nEncodes a string, number, boolean or byte array to a hex value value.\\n\\nShortcut Functions: \\n\\n- [numberToHex](#numbertohex)\\n- [stringToHex](#stringtohex)\\n- [bytesToHex](#bytestohex)\\n- [boolToHex](#booltohex)\\n\\n## Import\\n\\n```ts\\nimport { toHex } from 'viem'\\n```\\n\\n## Usage\\n\\n```ts\\nimport { toHex } from 'viem'\\n\\ntoHex(420)\\n// \\\"0x1a4\\\"\\n\\ntoHex('Hello world')\\n// \\\"0x48656c6c6f20776f726c642e\\\"\\n\\ntoHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\\n)\\n// \\\"0x48656c6c6f20576f726c6421\\\"\\n\\ntoHex(true)\\n// \\\"0x1\\\"\\n```\\n\\n## Returns\\n\\n[`Hex`](/docs/glossary/types#hex)\\n\\nThe hex value.\\n\\n## Parameters\\n\\n### value\\n\\n- **Type:** `string | number | bigint | ByteArray`\\n\\nThe value to hex encode.\\n\\n```ts \\ntoHex(\\n 'Hello world' // [!code focus]\\n)\\n// '0x48656c6c6f20776f726c642e'\\n```\\n\\n### options\\n\\n```ts \\ntoHex(\\n 'Hello world', \\n { size: 32 } // [!code focus]\\n)\\n// '0x48656c6c6f20776f726c642e0000000000000000000000000000000000000000'\\n```\\n\\n## Shortcut Functions\\n\\n### numberToHex\\n\\n- **Type:** `number | bigint`\\n\\nEncodes a number value to a hex value.\\n\\n```ts\\nimport { numberToHex } from 'viem'\\n\\nnumberToHex(420)\\n// \\\"0x1a4\\\"\\n\\nnumberToHex(4206942069420694206942069420694206942069n)\\n// \\\"0xc5cf39211876fb5e5884327fa56fc0b75\\\"\\n\\nnumberToHex(420, { size: 32 })\\n// \\\"0x00000000000000000000000000000000000000000000000000000000000001a4\\\"\\n\\nnumberToHex(4206942069420694206942069420694206942069n, { size: 32 })\\n// \\\"0x0000000000000000000000000000000c5cf39211876fb5e5884327fa56fc0b75\\\"\\n```\\n\\n### stringToHex\\n\\n- **Type:** `string`\\n\\nEncodes a UTF-8 string value to a hex value.\\n\\n```ts\\nimport { stringToHex } from 'viem'\\n\\nstringToHex('Hello World!')\\n// \\\"0x48656c6c6f20576f726c6421\\\"\\n\\nstringToHex('Hello World!', { size: 32 })\\n// \\\"0x48656c6c6f20576f726c64210000000000000000000000000000000000000000\\\"\\n```\\n\\n### bytesToHex\\n\\n- **Type:** `ByteArray`\\n\\nEncodes a byte array to a hex value.\\n\\n```ts\\nimport { bytesToHex } from 'viem'\\n\\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n)\\n// \\\"0x48656c6c6f20576f726c6421\\\"\\n\\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n { size: 32 }\\n)\\n// \\\"0x48656c6c6f20576f726c64210000000000000000000000000000000000000000\\\"\\n```\\n\\n### boolToHex\\n\\n- **Type:** `boolean`\\n\\nEncodes a boolean to a hex value.\\n\\n```ts\\nimport { boolToHex } from 'viem'\\n\\nboolToHex(true)\\n// \\\"0x1\\\"\\n\\nboolToHex(true, { size: 32 })\\n// \\\"0x0000000000000000000000000000000000000000000000000000000000000001\\\"\\n```\\n\",\"document\":[{\"href\":\"/docs/utilities/toHex#tohex\",\"html\":\"\\nEncodes a string, number, boolean or byte array to a hex value value.
\\nShortcut Functions:
\\nimport { toHex } from 'viem'\\n\",\"id\":\"pages/docs/utilities/toHex.md#import\",\"isPage\":false,\"text\":\"\\nimport { toHex } from 'viem'\\n\",\"title\":\"Import\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#usage\",\"html\":\"\\nimport { toHex } from 'viem'\\n \\ntoHex(420)\\n// "0x1a4"\\n \\ntoHex('Hello world')\\n// "0x48656c6c6f20776f726c642e"\\n \\ntoHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\ntoHex(true)\\n// "0x1"\\n\",\"id\":\"pages/docs/utilities/toHex.md#usage\",\"isPage\":false,\"text\":\"\\nimport { toHex } from 'viem'\\n \\ntoHex(420)\\n// "0x1a4"\\n \\ntoHex('Hello world')\\n// "0x48656c6c6f20776f726c642e"\\n \\ntoHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\ntoHex(true)\\n// "0x1"\\n\",\"title\":\"Usage\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#returns\",\"html\":\"\\n\\nThe hex value.
\\n\",\"id\":\"pages/docs/utilities/toHex.md#returns\",\"isPage\":false,\"text\":\"\\nHex\\nThe hex value.\\n\",\"title\":\"Returns\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/toHex.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#value\",\"html\":\"\\nstring | number | bigint | ByteArrayThe value to hex encode.
\\ntoHex(\\n 'Hello world'\\n)\\n// '0x48656c6c6f20776f726c642e'\\n\",\"id\":\"pages/docs/utilities/toHex.md#value\",\"isPage\":false,\"text\":\"\\n\\nType: string | number | bigint | ByteArray\\n\\nThe value to hex encode.\\ntoHex(\\n 'Hello world'\\n)\\n// '0x48656c6c6f20776f726c642e'\\n\",\"title\":\"value\",\"titles\":[\"toHex\",\"Parameters\"]},{\"href\":\"/docs/utilities/toHex#options\",\"html\":\"\\ntoHex(\\n 'Hello world', \\n { size: 32 } \\n)\\n// '0x48656c6c6f20776f726c642e0000000000000000000000000000000000000000'\\n\",\"id\":\"pages/docs/utilities/toHex.md#options\",\"isPage\":false,\"text\":\"\\ntoHex(\\n 'Hello world', \\n { size: 32 } \\n)\\n// '0x48656c6c6f20776f726c642e0000000000000000000000000000000000000000'\\n\",\"title\":\"options\",\"titles\":[\"toHex\",\"Parameters\"]},{\"href\":\"/docs/utilities/toHex#shortcut-functions\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/toHex.md#shortcut-functions\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Shortcut Functions\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#numbertohex\",\"html\":\"\\nnumber | bigintEncodes a number value to a hex value.
\\nimport { numberToHex } from 'viem'\\n \\nnumberToHex(420)\\n// "0x1a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n)\\n// "0xc5cf39211876fb5e5884327fa56fc0b75"\\n \\nnumberToHex(420, { size: 32 })\\n// "0x00000000000000000000000000000000000000000000000000000000000001a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n, { size: 32 })\\n// "0x0000000000000000000000000000000c5cf39211876fb5e5884327fa56fc0b75"\\n\",\"id\":\"pages/docs/utilities/toHex.md#numbertohex\",\"isPage\":false,\"text\":\"\\n\\nType: number | bigint\\n\\nEncodes a number value to a hex value.\\nimport { numberToHex } from 'viem'\\n \\nnumberToHex(420)\\n// "0x1a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n)\\n// "0xc5cf39211876fb5e5884327fa56fc0b75"\\n \\nnumberToHex(420, { size: 32 })\\n// "0x00000000000000000000000000000000000000000000000000000000000001a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n, { size: 32 })\\n// "0x0000000000000000000000000000000c5cf39211876fb5e5884327fa56fc0b75"\\n\",\"title\":\"numberToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]},{\"href\":\"/docs/utilities/toHex#stringtohex\",\"html\":\"\\nstringEncodes a UTF-8 string value to a hex value.
\\nimport { stringToHex } from 'viem'\\n \\nstringToHex('Hello World!')\\n// "0x48656c6c6f20576f726c6421"\\n \\nstringToHex('Hello World!', { size: 32 })\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"\\n\",\"id\":\"pages/docs/utilities/toHex.md#stringtohex\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nEncodes a UTF-8 string value to a hex value.\\nimport { stringToHex } from 'viem'\\n \\nstringToHex('Hello World!')\\n// "0x48656c6c6f20576f726c6421"\\n \\nstringToHex('Hello World!', { size: 32 })\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"\\n\",\"title\":\"stringToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]},{\"href\":\"/docs/utilities/toHex#bytestohex\",\"html\":\"\\nByteArrayEncodes a byte array to a hex value.
\\nimport { bytesToHex } from 'viem'\\n \\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n { size: 32 }\\n)\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"\\n\",\"id\":\"pages/docs/utilities/toHex.md#bytestohex\",\"isPage\":false,\"text\":\"\\n\\nType: ByteArray\\n\\nEncodes a byte array to a hex value.\\nimport { bytesToHex } from 'viem'\\n \\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n { size: 32 }\\n)\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"\\n\",\"title\":\"bytesToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]},{\"href\":\"/docs/utilities/toHex#booltohex\",\"html\":\"\\nbooleanEncodes a boolean to a hex value.
\\nimport { boolToHex } from 'viem'\\n \\nboolToHex(true)\\n// "0x1"\\n \\nboolToHex(true, { size: 32 })\\n// "0x0000000000000000000000000000000000000000000000000000000000000001"\",\"id\":\"pages/docs/utilities/toHex.md#booltohex\",\"isPage\":false,\"text\":\"\\n\\nType: boolean\\n\\nEncodes a boolean to a hex value.\\nimport { boolToHex } from 'viem'\\n \\nboolToHex(true)\\n// "0x1"\\n \\nboolToHex(true, { size: 32 })\\n// "0x0000000000000000000000000000000000000000000000000000000000000001"\",\"title\":\"boolToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\ndescription: Encodes a string, number, boolean or byte array to a hex value.\\n---\\n\\n# toHex\\n\\nEncodes a string, number, boolean or byte array to a hex value value.\\n\\nShortcut Functions: \\n\\n- [numberToHex](#numbertohex)\\n- [stringToHex](#stringtohex)\\n- [bytesToHex](#bytestohex)\\n- [boolToHex](#booltohex)\\n\\n## Import\\n\\n```ts\\nimport { toHex } from 'viem'\\n```\\n\\n## Usage\\n\\n```ts\\nimport { toHex } from 'viem'\\n\\ntoHex(420)\\n// \\\"0x1a4\\\"\\n\\ntoHex('Hello world')\\n// \\\"0x48656c6c6f20776f726c642e\\\"\\n\\ntoHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\\n)\\n// \\\"0x48656c6c6f20576f726c6421\\\"\\n\\ntoHex(true)\\n// \\\"0x1\\\"\\n```\\n\\n## Returns\\n\\n[`Hex`](/docs/glossary/types#hex)\\n\\nThe hex value.\\n\\n## Parameters\\n\\n### value\\n\\n- **Type:** `string | number | bigint | ByteArray`\\n\\nThe value to hex encode.\\n\\n```ts \\ntoHex(\\n 'Hello world' // [!code focus]\\n)\\n// '0x48656c6c6f20776f726c642e'\\n```\\n\\n### options\\n\\n```ts \\ntoHex(\\n 'Hello world', \\n { size: 32 } // [!code focus]\\n)\\n// '0x48656c6c6f20776f726c642e0000000000000000000000000000000000000000'\\n```\\n\\n## Shortcut Functions\\n\\n### numberToHex\\n\\n- **Type:** `number | bigint`\\n\\nEncodes a number value to a hex value.\\n\\n```ts\\nimport { numberToHex } from 'viem'\\n\\nnumberToHex(420)\\n// \\\"0x1a4\\\"\\n\\nnumberToHex(4206942069420694206942069420694206942069n)\\n// \\\"0xc5cf39211876fb5e5884327fa56fc0b75\\\"\\n\\nnumberToHex(420, { size: 32 })\\n// \\\"0x00000000000000000000000000000000000000000000000000000000000001a4\\\"\\n\\nnumberToHex(4206942069420694206942069420694206942069n, { size: 32 })\\n// \\\"0x0000000000000000000000000000000c5cf39211876fb5e5884327fa56fc0b75\\\"\\n```\\n\\n### stringToHex\\n\\n- **Type:** `string`\\n\\nEncodes a UTF-8 string value to a hex value.\\n\\n```ts\\nimport { stringToHex } from 'viem'\\n\\nstringToHex('Hello World!')\\n// \\\"0x48656c6c6f20576f726c6421\\\"\\n\\nstringToHex('Hello World!', { size: 32 })\\n// \\\"0x48656c6c6f20576f726c64210000000000000000000000000000000000000000\\\"\\n```\\n\\n### bytesToHex\\n\\n- **Type:** `ByteArray`\\n\\nEncodes a byte array to a hex value.\\n\\n```ts\\nimport { bytesToHex } from 'viem'\\n\\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n)\\n// \\\"0x48656c6c6f20576f726c6421\\\"\\n\\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n { size: 32 }\\n)\\n// \\\"0x48656c6c6f20576f726c64210000000000000000000000000000000000000000\\\"\\n```\\n\\n### boolToHex\\n\\n- **Type:** `boolean`\\n\\nEncodes a boolean to a hex value.\\n\\n```ts\\nimport { boolToHex } from 'viem'\\n\\nboolToHex(true)\\n// \\\"0x1\\\"\\n\\nboolToHex(true, { size: 32 })\\n// \\\"0x0000000000000000000000000000000000000000000000000000000000000001\\\"\\n```\\n\",\"document\":[{\"href\":\"/docs/utilities/toHex#tohex\",\"html\":\"\\nEncodes a string, number, boolean or byte array to a hex value value.
\\nShortcut Functions:
\\nimport { toHex } from 'viem'\\n\",\"id\":\"pages/docs/utilities/toHex.md#import\",\"isPage\":false,\"text\":\"\\nimport { toHex } from 'viem'\\n\",\"title\":\"Import\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#usage\",\"html\":\"\\nimport { toHex } from 'viem'\\n \\ntoHex(420)\\n// "0x1a4"\\n \\ntoHex('Hello world')\\n// "0x48656c6c6f20776f726c642e"\\n \\ntoHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\ntoHex(true)\\n// "0x1"\\n\",\"id\":\"pages/docs/utilities/toHex.md#usage\",\"isPage\":false,\"text\":\"\\nimport { toHex } from 'viem'\\n \\ntoHex(420)\\n// "0x1a4"\\n \\ntoHex('Hello world')\\n// "0x48656c6c6f20776f726c642e"\\n \\ntoHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\ntoHex(true)\\n// "0x1"\\n\",\"title\":\"Usage\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#returns\",\"html\":\"\\n\\nThe hex value.
\\n\",\"id\":\"pages/docs/utilities/toHex.md#returns\",\"isPage\":false,\"text\":\"\\nHex\\nThe hex value.\\n\",\"title\":\"Returns\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/toHex.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#value\",\"html\":\"\\nstring | number | bigint | ByteArrayThe value to hex encode.
\\ntoHex(\\n 'Hello world'\\n)\\n// '0x48656c6c6f20776f726c642e'\\n\",\"id\":\"pages/docs/utilities/toHex.md#value\",\"isPage\":false,\"text\":\"\\n\\nType: string | number | bigint | ByteArray\\n\\nThe value to hex encode.\\ntoHex(\\n 'Hello world'\\n)\\n// '0x48656c6c6f20776f726c642e'\\n\",\"title\":\"value\",\"titles\":[\"toHex\",\"Parameters\"]},{\"href\":\"/docs/utilities/toHex#options\",\"html\":\"\\ntoHex(\\n 'Hello world', \\n { size: 32 } \\n)\\n// '0x48656c6c6f20776f726c642e0000000000000000000000000000000000000000'\\n\",\"id\":\"pages/docs/utilities/toHex.md#options\",\"isPage\":false,\"text\":\"\\ntoHex(\\n 'Hello world', \\n { size: 32 } \\n)\\n// '0x48656c6c6f20776f726c642e0000000000000000000000000000000000000000'\\n\",\"title\":\"options\",\"titles\":[\"toHex\",\"Parameters\"]},{\"href\":\"/docs/utilities/toHex#shortcut-functions\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/toHex.md#shortcut-functions\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Shortcut Functions\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#numbertohex\",\"html\":\"\\nnumber | bigintEncodes a number value to a hex value.
\\nimport { numberToHex } from 'viem'\\n \\nnumberToHex(420)\\n// "0x1a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n)\\n// "0xc5cf39211876fb5e5884327fa56fc0b75"\\n \\nnumberToHex(420, { size: 32 })\\n// "0x00000000000000000000000000000000000000000000000000000000000001a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n, { size: 32 })\\n// "0x0000000000000000000000000000000c5cf39211876fb5e5884327fa56fc0b75"\\n\",\"id\":\"pages/docs/utilities/toHex.md#numbertohex\",\"isPage\":false,\"text\":\"\\n\\nType: number | bigint\\n\\nEncodes a number value to a hex value.\\nimport { numberToHex } from 'viem'\\n \\nnumberToHex(420)\\n// "0x1a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n)\\n// "0xc5cf39211876fb5e5884327fa56fc0b75"\\n \\nnumberToHex(420, { size: 32 })\\n// "0x00000000000000000000000000000000000000000000000000000000000001a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n, { size: 32 })\\n// "0x0000000000000000000000000000000c5cf39211876fb5e5884327fa56fc0b75"\\n\",\"title\":\"numberToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]},{\"href\":\"/docs/utilities/toHex#stringtohex\",\"html\":\"\\nstringEncodes a UTF-8 string value to a hex value.
\\nimport { stringToHex } from 'viem'\\n \\nstringToHex('Hello World!')\\n// "0x48656c6c6f20576f726c6421"\\n \\nstringToHex('Hello World!', { size: 32 })\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"\\n\",\"id\":\"pages/docs/utilities/toHex.md#stringtohex\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nEncodes a UTF-8 string value to a hex value.\\nimport { stringToHex } from 'viem'\\n \\nstringToHex('Hello World!')\\n// "0x48656c6c6f20576f726c6421"\\n \\nstringToHex('Hello World!', { size: 32 })\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"\\n\",\"title\":\"stringToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]},{\"href\":\"/docs/utilities/toHex#bytestohex\",\"html\":\"\\nByteArrayEncodes a byte array to a hex value.
\\nimport { bytesToHex } from 'viem'\\n \\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n { size: 32 }\\n)\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"\\n\",\"id\":\"pages/docs/utilities/toHex.md#bytestohex\",\"isPage\":false,\"text\":\"\\n\\nType: ByteArray\\n\\nEncodes a byte array to a hex value.\\nimport { bytesToHex } from 'viem'\\n \\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n { size: 32 }\\n)\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"\\n\",\"title\":\"bytesToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]},{\"href\":\"/docs/utilities/toHex#booltohex\",\"html\":\"\\nbooleanEncodes a boolean to a hex value.
\\nimport { boolToHex } from 'viem'\\n \\nboolToHex(true)\\n// "0x1"\\n \\nboolToHex(true, { size: 32 })\\n// "0x0000000000000000000000000000000000000000000000000000000000000001"\",\"id\":\"pages/docs/utilities/toHex.md#booltohex\",\"isPage\":false,\"text\":\"\\n\\nType: boolean\\n\\nEncodes a boolean to a hex value.\\nimport { boolToHex } from 'viem'\\n \\nboolToHex(true)\\n// "0x1"\\n \\nboolToHex(true, { size: 32 })\\n// "0x0000000000000000000000000000000000000000000000000000000000000001"\",\"title\":\"boolToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]}]}}"
diff --git a/site/.cache/search.index.628039001724442e7990dfee6f1399131e8692aac07ade9bf94d66702fd94b92.json b/site/.cache/search.index.628039001724442e7990dfee6f1399131e8692aac07ade9bf94d66702fd94b92.json
deleted file mode 100644
index 3604dc284f..0000000000
--- a/site/.cache/search.index.628039001724442e7990dfee6f1399131e8692aac07ade9bf94d66702fd94b92.json
+++ /dev/null
@@ -1 +0,0 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Prepares an EIP-7702 Authorization for signing.\\n---\\n\\n# prepareAuthorization\\n\\nPrepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) for signing. \\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](/experimental/eip7702/signAuthorization) to sign over it.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({ // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n// @log: chainId: 1,\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n// @log: nonce: 1,\\n// @log: }\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n### Explicit Scoping\\n\\nWe can explicitly set a `nonce` and/or `chainId` by supplying them as parameters:\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n})\\n// @log: {\\n// @log: chainId: 10,\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n// @log: nonce: 420,\\n// @log: }\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`Authorization`\\n\\nA prepared & unsigned Authorization object.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account`\\n\\nAccount to use to prepare the Authorization object. \\n\\nAccepts a [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n```\\n\\n### chainId (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `client.chain.id` or Network chain ID\\n\\nThe Chain ID to scope the Authorization to. If set to zero (`0`), then the Authorization will\\nbe valid on all chains.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \\n```\\n\\n### contractAddress\\n\\n- **Type:** `Address`\\n\\nThe target Contract to designate onto the Account.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \\n```\\n\\n### sponsor (optional)\\n\\n- **Type:** `true | Address | Account`\\n\\nWhether the EIP-7702 Transaction will be executed by another Account.\\n\\nIf not specified, it will be assumed that the EIP-7702 Transaction will be executed by the Account that signed the Authorization.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, // [!code focus]\\n}) \\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `Address`\\n- **Default:** Account's next available nonce.\\n\\nThe nonce to scope the Authorization to.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \\n```\",\"document\":[{\"href\":\"/experimental/eip7702/prepareAuthorization#prepareauthorization\",\"html\":\"\\nPrepares an EIP-7702 Authorization for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. nonce and chainId).
With the prepared Authorization object, you can use signAuthorization to sign over it.
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n// @log: {\\n \\n// @log: chainId: 1,\\n \\n// @log: contractAddress: "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",\\n \\n// @log: nonce: 1,\\n \\n// @log: }\\n \\nconst signedAuthorization = await walletClient.signAuthorization(authorization)import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())We can explicitly set a nonce and/or chainId by supplying them as parameters:
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, \\n})\\n// @log: {\\n \\n// @log: chainId: 10,\\n \\n// @log: contractAddress: "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",\\n \\n// @log: nonce: 420,\\n \\n// @log: }\\n \\nconst signedAuthorization = await walletClient.signAuthorization(authorization)import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())Authorization
A prepared & unsigned Authorization object.
\\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#returns\",\"isPage\":false,\"text\":\"\\nAuthorization\\nA prepared & unsigned Authorization object.\\n\",\"title\":\"Returns\",\"titles\":[\"prepareAuthorization\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"prepareAuthorization\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#account\",\"html\":\"\\nAccountAccount to use to prepare the Authorization object.
\\nAccepts a Local Account (Private Key, etc).
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'), \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account\\n\\nAccount to use to prepare the Authorization object.\\nAccepts a Local Account (Private Key, etc).\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'), \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n\",\"title\":\"account\",\"titles\":[\"prepareAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#chainid-optional\",\"html\":\"\\nAddressclient.chain.id or Network chain IDThe Chain ID to scope the Authorization to. If set to zero (0), then the Authorization will\\nbe valid on all chains.
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, \\n}) \\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#chainid-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: client.chain.id or Network chain ID\\n\\nThe Chain ID to scope the Authorization to. If set to zero (0), then the Authorization will\\nbe valid on all chains.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, \\n}) \\n\",\"title\":\"chainId (optional)\",\"titles\":[\"prepareAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#contractaddress\",\"html\":\"\\nAddressThe target Contract to designate onto the Account.
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#contractaddress\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe target Contract to designate onto the Account.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n\",\"title\":\"contractAddress\",\"titles\":[\"prepareAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#sponsor-optional\",\"html\":\"\\ntrue | Address | AccountWhether the EIP-7702 Transaction will be executed by another Account.
\\nIf not specified, it will be assumed that the EIP-7702 Transaction will be executed by the Account that signed the Authorization.
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, \\n}) \\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#sponsor-optional\",\"isPage\":false,\"text\":\"\\n\\nType: true | Address | Account\\n\\nWhether the EIP-7702 Transaction will be executed by another Account.\\nIf not specified, it will be assumed that the EIP-7702 Transaction will be executed by the Account that signed the Authorization.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, \\n}) \\n\",\"title\":\"sponsor (optional)\",\"titles\":[\"prepareAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#nonce-optional\",\"html\":\"\\nAddressThe nonce to scope the Authorization to.
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, \\n}) \",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: Account's next available nonce.\\n\\nThe nonce to scope the Authorization to.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, \\n}) \",\"title\":\"nonce (optional)\",\"titles\":[\"prepareAuthorization\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.634ab4e65c52be00b794124ca577c79b287ec30e0af93915dd8f941b4f3c4da3.json b/site/.cache/search.index.634ab4e65c52be00b794124ca577c79b287ec30e0af93915dd8f941b4f3c4da3.json
index 57c0345579..2da613cbca 100644
--- a/site/.cache/search.index.634ab4e65c52be00b794124ca577c79b287ec30e0af93915dd8f941b4f3c4da3.json
+++ b/site/.cache/search.index.634ab4e65c52be00b794124ca577c79b287ec30e0af93915dd8f941b4f3c4da3.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Getting started with experimental features in Viem\\n---\\n\\n# Getting Started\\n\\nViem provides a set of experimental features through the `viem/experimental` entrypoint. Such features could include: \\n\\n- implementation of non-finalized EIP proposals.\\n- features that have not been adopted by the wider ecosystem.\\n- features that are not considered stable.\\n\\n:::warning[Warning]\\nIt is recommended to not solely use experimental features in production. You should always have a fallback mechanism for unsupported features.\\n:::\\n\\n## Quick Start\\n\\n### 1. Set up your Client & Transport\\n\\nFirstly, set up your [Client](/docs/clients/intro) with a desired [Transport](/docs/clients/intro) & [Chain](/docs/chains/introduction).\\n\\n```ts\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({ // [!code focus]\\n chain: mainnet, // [!code focus]\\n transport: custom(window.ethereum!), // [!code focus]\\n}) // [!code focus]\\n```\\n\\n:::info\\nIn a production app, it is highly recommended to pass through your authenticated RPC provider URL (Infura, thirdweb, etc). If no URL is provided, viem will default to a public RPC provider. [Read more](/docs/clients/transports/http#usage).\\n:::\\n\\n### 2. Extend Client with Experimental Actions\\n\\nNow that you have a Client set up, you can extend it with Experimental Actions! [Read more.](/experimental/client)\\n\\n```ts\\nimport { createWalletClient, custom } from 'viem'\\nimport { base } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental' // [!code focus]\\n\\nconst client = createWalletClient({\\n chain: base,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions()) // [!code focus]\\n```\\n\\n### 3. Consume Experimental Actions\\n\\nNow that you have an Experimental Client set up, you can now and consume [Actions](/experimental/eip5792/sendCalls)!\\n\\n```tsx\\nimport { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions()) \\n\\nconst id = await client.sendCalls({ // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [// [!code focus]\\n {// [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1'), // [!code focus]\\n },// [!code focus]\\n {// [!code focus]\\n data: '0xdeadbeef'// [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n}) // [!code focus]\\n```\\n\",\"document\":[{\"href\":\"/experimental#getting-started\",\"html\":\"\\nViem provides a set of experimental features through the viem/experimental entrypoint. Such features could include:
Firstly, set up your Client with a desired Transport & Chain.
\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nconst client = createWalletClient({ \\n chain: mainnet, \\n transport: custom(window.ethereum!), \\n}) \\n\\n\",\"id\":\"pages/experimental.mdx#1-set-up-your-client--transport\",\"isPage\":false,\"text\":\"\\nFirstly, set up your Client with a desired Transport & Chain.\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nconst client = createWalletClient({ \\n chain: mainnet, \\n transport: custom(window.ethereum!), \\n}) \\nIn a production app, it is highly recommended to pass through your authenticated RPC provider URL (Infura, thirdweb, etc). If no URL is provided, viem will default to a public RPC provider. Read more.\\n\",\"title\":\"1. Set up your Client & Transport\",\"titles\":[\"Getting Started\",\"Quick Start\"]},{\"href\":\"/experimental#2-extend-client-with-experimental-actions\",\"html\":\"\\nNow that you have a Client set up, you can extend it with Experimental Actions! Read more.
\\nimport { createWalletClient, custom } from 'viem'\\nimport { base } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nconst client = createWalletClient({\\n chain: base,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions()) \\n\",\"id\":\"pages/experimental.mdx#2-extend-client-with-experimental-actions\",\"isPage\":false,\"text\":\"\\nNow that you have a Client set up, you can extend it with Experimental Actions! Read more.\\nimport { createWalletClient, custom } from 'viem'\\nimport { base } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nconst client = createWalletClient({\\n chain: base,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions()) \\n\",\"title\":\"2. Extend Client with Experimental Actions\",\"titles\":[\"Getting Started\",\"Quick Start\"]},{\"href\":\"/experimental#3-consume-experimental-actions\",\"html\":\"\\nNow that you have an Experimental Client set up, you can now and consume Actions!
\\nimport { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions()) \\n \\nconst id = await client.sendCalls({ \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n },\\n {\\n data: '0xdeadbeef'\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ] \\n}) \",\"id\":\"pages/experimental.mdx#3-consume-experimental-actions\",\"isPage\":false,\"text\":\"\\nNow that you have an Experimental Client set up, you can now and consume Actions!\\nimport { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions()) \\n \\nconst id = await client.sendCalls({ \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n },\\n {\\n data: '0xdeadbeef'\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ] \\n}) \",\"title\":\"3. Consume Experimental Actions\",\"titles\":[\"Getting Started\",\"Quick Start\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\ndescription: Getting started with experimental features in Viem\\n---\\n\\n# Getting Started\\n\\nViem provides a set of experimental features through the `viem/experimental` entrypoint. Such features could include: \\n\\n- implementation of non-finalized EIP proposals.\\n- features that have not been adopted by the wider ecosystem.\\n- features that are not considered stable.\\n\\n:::warning[Warning]\\nIt is recommended to not solely use experimental features in production. You should always have a fallback mechanism for unsupported features.\\n:::\\n\",\"document\":[{\"href\":\"/experimental#getting-started\",\"html\":\"\\nViem provides a set of experimental features through the viem/experimental entrypoint. Such features could include:
Requests for the wallet to show information about a call batch that was sent via showCalls.
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nawait walletClient.showCallsStatus({ \\n id: '0x1234567890abcdef',\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()void
stringIdentifier of the call batch.
\",\"id\":\"pages/docs/actions/wallet/showCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\",\"title\":\"id\",\"titles\":[\"showCallsStatus\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.75eff5b6a5be77c948adf48bcf17caddeda4dc4a0055404de9e6b5d38ae40f6f.json b/site/.cache/search.index.75eff5b6a5be77c948adf48bcf17caddeda4dc4a0055404de9e6b5d38ae40f6f.json index 846f51ff49..341232a12b 100644 --- a/site/.cache/search.index.75eff5b6a5be77c948adf48bcf17caddeda4dc4a0055404de9e6b5d38ae40f6f.json +++ b/site/.cache/search.index.75eff5b6a5be77c948adf48bcf17caddeda4dc4a0055404de9e6b5d38ae40f6f.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Returns the time until the withdrawal transaction can be finalized.\\n---\\n\\n# getTimeToFinalize\\n\\nReturns the time until the withdrawal transaction can be finalized. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n\\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',\\n})\\n\\nconst [message] = getWithdrawals(receipt)\\n\\nconst { // [!code hl]\\n period, // [!code hl]\\n seconds, // [!code hl]\\n timestamp, // [!code hl]\\n} = await publicClientL1.getTimeToFinalize({ // [!code hl]\\n withdrawalHash: message.withdrawalHash, // [!code hl]\\n targetChain: optimism // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`{ period: number, seconds: number, timestamp: number }`\\n\\n- `period` in seconds of the finalization stage (max wait time).\\n- `seconds` until the transaction can be finalized.\\n- `timestamp` of when the transaction can be finalized.\\n\\n## Parameters\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain.\\n\\n```ts\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...', // [!code focus]\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### withdrawalHash\\n\\n- **Type:** `Hash`\\n\\nThe withdrawal hash.\\n\\n```ts\\nconst { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: '0x...', // [!code focus]\\n targetChain: optimism, \\n}) \\n```\\n\\n### l2OutputOracleAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.l2OutputOracle[chainId].address`\\n\\nThe address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/L2OutputOracle.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/op-stack/actions/getTimeToFinalize#gettimetofinalize\",\"html\":\"\\nReturns the time until the withdrawal transaction can be finalized. Used for the Withdrawal flow.
\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#gettimetofinalize\",\"isPage\":true,\"text\":\"\\nReturns the time until the withdrawal transaction can be finalized. Used for the Withdrawal flow.\\n\",\"title\":\"getTimeToFinalize\",\"titles\":[]},{\"href\":\"/op-stack/actions/getTimeToFinalize#usage\",\"html\":\"\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',\\n})\\n \\nconst [message] = getWithdrawals(receipt)\\n \\nconst { \\n period, \\n seconds, \\n timestamp, \\n} = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: message.withdrawalHash, \\n targetChain: optimism \\n}) import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}){ period: number, seconds: number, timestamp: number }
period in seconds of the finalization stage (max wait time).seconds until the transaction can be finalized.timestamp of when the transaction can be finalized.ChainThe L2 chain.
\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...', \\n targetChain: optimism, \\n})\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain.\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...', \\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#withdrawalhash\",\"html\":\"\\nHashThe withdrawal hash.
\\nconst { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: '0x...', \\n targetChain: optimism, \\n}) \\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#withdrawalhash\",\"isPage\":false,\"text\":\"\\n\\nType: Hash\\n\\nThe withdrawal hash.\\nconst { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: '0x...', \\n targetChain: optimism, \\n}) \\n\",\"title\":\"withdrawalHash\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#l2outputoracleaddress-optional\",\"html\":\"\\nAddresstargetChain.contracts.l2OutputOracle[chainId].addressThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.
If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.
const { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#l2outputoracleaddress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.l2OutputOracle[chainId].address\\n\\nThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n\",\"title\":\"l2OutputOracleAddress (optional)\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#portaladdress-optional\",\"html\":\"\\nAddresstargetChain.contracts.portal[chainId].addressThe address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.
If a portalAddress is provided, the targetChain parameter becomes optional.
const { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"title\":\"portalAddress (optional)\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Returns the time until the withdrawal transaction can be finalized.\\n---\\n\\n# getTimeToFinalize\\n\\nReturns the time until the withdrawal transaction can be finalized. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n\\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',\\n})\\n\\nconst [message] = getWithdrawals(receipt)\\n\\nconst { // [!code hl]\\n period, // [!code hl]\\n seconds, // [!code hl]\\n timestamp, // [!code hl]\\n} = await publicClientL1.getTimeToFinalize({ // [!code hl]\\n withdrawalHash: message.withdrawalHash, // [!code hl]\\n targetChain: optimism // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`{ period: number, seconds: number, timestamp: number }`\\n\\n- `period` in seconds of the finalization stage (max wait time).\\n- `seconds` until the transaction can be finalized.\\n- `timestamp` of when the transaction can be finalized.\\n\\n## Parameters\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain.\\n\\n```ts\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...', // [!code focus]\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### withdrawalHash\\n\\n- **Type:** `Hash`\\n\\nThe withdrawal hash.\\n\\n```ts\\nconst { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: '0x...', // [!code focus]\\n targetChain: optimism, \\n}) \\n```\\n\\n### l2OutputOracleAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.l2OutputOracle[chainId].address`\\n\\nThe address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/actions/getTimeToFinalize#gettimetofinalize\",\"html\":\"\\nReturns the time until the withdrawal transaction can be finalized. Used for the Withdrawal flow.
\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#gettimetofinalize\",\"isPage\":true,\"text\":\"\\nReturns the time until the withdrawal transaction can be finalized. Used for the Withdrawal flow.\\n\",\"title\":\"getTimeToFinalize\",\"titles\":[]},{\"href\":\"/op-stack/actions/getTimeToFinalize#usage\",\"html\":\"\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',\\n})\\n \\nconst [message] = getWithdrawals(receipt)\\n \\nconst { \\n period, \\n seconds, \\n timestamp, \\n} = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: message.withdrawalHash, \\n targetChain: optimism \\n}) import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}){ period: number, seconds: number, timestamp: number }
period in seconds of the finalization stage (max wait time).seconds until the transaction can be finalized.timestamp of when the transaction can be finalized.ChainThe L2 chain.
\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...', \\n targetChain: optimism, \\n})\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain.\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...', \\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#withdrawalhash\",\"html\":\"\\nHashThe withdrawal hash.
\\nconst { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: '0x...', \\n targetChain: optimism, \\n}) \\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#withdrawalhash\",\"isPage\":false,\"text\":\"\\n\\nType: Hash\\n\\nThe withdrawal hash.\\nconst { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: '0x...', \\n targetChain: optimism, \\n}) \\n\",\"title\":\"withdrawalHash\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#l2outputoracleaddress-optional\",\"html\":\"\\nAddresstargetChain.contracts.l2OutputOracle[chainId].addressThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.
If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.
const { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#l2outputoracleaddress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.l2OutputOracle[chainId].address\\n\\nThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n\",\"title\":\"l2OutputOracleAddress (optional)\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#portaladdress-optional\",\"html\":\"\\nAddresstargetChain.contracts.portal[chainId].addressThe address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.
If a portalAddress is provided, the targetChain parameter becomes optional.
const { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"title\":\"portalAddress (optional)\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.945bcb430d679db51c5e1c08ffcee267edebcf7bc9bc3d71de1337648e42eb16.json b/site/.cache/search.index.945bcb430d679db51c5e1c08ffcee267edebcf7bc9bc3d71de1337648e42eb16.json
new file mode 100644
index 0000000000..1480ecaf26
--- /dev/null
+++ b/site/.cache/search.index.945bcb430d679db51c5e1c08ffcee267edebcf7bc9bc3d71de1337648e42eb16.json
@@ -0,0 +1 @@
+"{\"value\":{\"mdx\":\"# Extending Client with ERC-7895 Actions [Setting up your Viem Client]\\n\\nTo use the experimental functionality of [ERC-7895](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md), you can extend your existing (or new) Viem Client with experimental [ERC-7895](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md) Actions.\\n\\n```ts\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental' // [!code focus]\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7895Actions()) // [!code focus]\\n\\nconst subAccount = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\\n```\\n\",\"document\":[{\"href\":\"/experimental/erc7895/client#extending-client-with-erc-7895-actions\",\"html\":\"To use the experimental functionality of ERC-7895, you can extend your existing (or new) Viem Client with experimental ERC-7895 Actions.
\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7895Actions()) \\n \\nconst subAccount = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\",\"id\":\"pages/experimental/erc7895/client.md#extending-client-with-erc-7895-actions\",\"isPage\":true,\"text\":\"Setting up your Viem Client\\nTo use the experimental functionality of ERC-7895, you can extend your existing (or new) Viem Client with experimental ERC-7895 Actions.\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7895Actions()) \\n \\nconst subAccount = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\",\"title\":\"Extending Client with ERC-7895 Actions\",\"titles\":[]}]}}"
diff --git a/site/.cache/search.index.9785e8f98c10d43dca38eccde8a4632d15df5bbd245537bce37f8920fc4d50cf.json b/site/.cache/search.index.9785e8f98c10d43dca38eccde8a4632d15df5bbd245537bce37f8920fc4d50cf.json
index 0bf16cdde8..ceb017a4f8 100644
--- a/site/.cache/search.index.9785e8f98c10d43dca38eccde8a4632d15df5bbd245537bce37f8920fc4d50cf.json
+++ b/site/.cache/search.index.9785e8f98c10d43dca38eccde8a4632d15df5bbd245537bce37f8920fc4d50cf.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Request permissions from a wallet to perform actions on behalf of a user.\\n---\\n\\n# grantPermissions\\n\\nRequest permissions from a wallet to perform actions on behalf of a user.\\n\\n[Read more.](https://eips.ethereum.org/EIPS/eip-7715)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ // [!code focus:99]\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`GrantPermissionsReturnType`\\n\\nResponse from the wallet after issuing permissions.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | undefined`\\n\\nThe Account to scope the permissions to.\\n\\n```ts twoslash\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, // [!code focus]\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### expiry\\n\\n- **Type:** `number`\\n\\nThe timestamp (in seconds) when the permissions will expire.\\n\\n```ts twoslash\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, // [!code focus]\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### permissions\\n\\n- **Type:** `Permission[]`\\n\\nSet of Permissions & Policies to grant to the user.\\n\\n```ts twoslash\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ // [!code focus:19]\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n// ^| \\n } \\n ], \\n})\\n``` \\n\\n:::tip\\nThe `type` property is constrained to the canonical set of [Permission & Policy types as \\ndefined in ERC-7715](https://github.com/pedrouid/ERCs/blob/19c16341c57f6ac8770cb778d60845dcf30f6a40/ERCS/erc-7715.md#permissions), however, consumers can utilize a `custom` property on `type` as an escape hatch to use custom Permission or Policy types:\\n\\n```ts twoslash\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n { \\n type: { custom: 'example' }, // [!code focus]\\n data: {\\n value: '0xdeadbeef',\\n }\\n } \\n ], \\n})\\n``` \\n:::\\n\\n### signer\\n\\n- **Type:** `Signer | undefined`\\n\\nCustom signer type to scope the permissions to.\\n\\n```ts twoslash\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { // [!code focus]\\n type: 'key', // [!code focus]\\n data: { // [!code focus]\\n id: '...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\\n``` \",\"document\":[{\"href\":\"/experimental/erc7715/grantPermissions#grantpermissions\",\"html\":\"\\nRequest permissions from a wallet to perform actions on behalf of a user.
\\n\\n\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#grantpermissions\",\"isPage\":true,\"text\":\"\\nRequest permissions from a wallet to perform actions on behalf of a user.\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"grantPermissions\",\"titles\":[]},{\"href\":\"/experimental/erc7715/grantPermissions#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ \\n account,\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()GrantPermissionsReturnType
Response from the wallet after issuing permissions.
\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#returns\",\"isPage\":false,\"text\":\"\\nGrantPermissionsReturnType\\nResponse from the wallet after issuing permissions.\\n\",\"title\":\"Returns\",\"titles\":[\"grantPermissions\"]},{\"href\":\"/experimental/erc7715/grantPermissions#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"grantPermissions\"]},{\"href\":\"/experimental/erc7715/grantPermissions#account\",\"html\":\"\\nAccount | Address | undefinedThe Account to scope the permissions to.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, \\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | undefined\\n\\nThe Account to scope the permissions to.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, \\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"grantPermissions\",\"Parameters\"]},{\"href\":\"/experimental/erc7715/grantPermissions#expiry\",\"html\":\"\\nnumberThe timestamp (in seconds) when the permissions will expire.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, \\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#expiry\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe timestamp (in seconds) when the permissions will expire.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, \\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"expiry\",\"titles\":[\"grantPermissions\",\"Parameters\"]},{\"href\":\"/experimental/erc7715/grantPermissions#permissions\",\"html\":\"\\nPermission[]Set of Permissions & Policies to grant to the user.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ \\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n// ^| \\n } \\n ], \\n})\\n\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#permissions\",\"isPage\":false,\"text\":\"\\n\\nType: Permission[]\\n\\nSet of Permissions & Policies to grant to the user.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ \\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n// ^| \\n } \\n ], \\n})\\nThe type property is constrained to the canonical set of Permission & Policy types as\\ndefined in ERC-7715, however, consumers can utilize a custom property on type as an escape hatch to use custom Permission or Policy types:// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n { \\n type: { custom: 'example' }, \\n data: {\\n value: '0xdeadbeef',\\n }\\n } \\n ], \\n})\\n\",\"title\":\"permissions\",\"titles\":[\"grantPermissions\",\"Parameters\"]},{\"href\":\"/experimental/erc7715/grantPermissions#signer\",\"html\":\"\\nSigner | undefinedCustom signer type to scope the permissions to.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { \\n type: 'key', \\n data: { \\n id: '...'\\n } \\n } \\n})\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#signer\",\"isPage\":false,\"text\":\"\\n\\nType: Signer | undefined\\n\\nCustom signer type to scope the permissions to.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { \\n type: 'key', \\n data: { \\n id: '...'\\n } \\n } \\n})\",\"title\":\"signer\",\"titles\":[\"grantPermissions\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\ndescription: Request permissions from a wallet to perform actions on behalf of a user.\\n---\\n\\n# grantPermissions\\n\\nRequest permissions from a wallet to perform actions on behalf of a user.\\n\\n[Read more.](https://eips.ethereum.org/EIPS/eip-7715)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ // [!code focus:99]\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`GrantPermissionsReturnType`\\n\\nResponse from the wallet after issuing permissions.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | undefined`\\n\\nThe Account to scope the permissions to.\\n\\n```ts twoslash\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, // [!code focus]\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### expiry\\n\\n- **Type:** `number`\\n\\nThe timestamp (in seconds) when the permissions will expire.\\n\\n```ts twoslash\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, // [!code focus]\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### permissions\\n\\n- **Type:** `Permission[]`\\n\\nSet of Permissions & Policies to grant to the user.\\n\\n```ts twoslash\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ // [!code focus:19]\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n// ^| \\n } \\n ], \\n})\\n``` \\n\\n:::tip\\nThe `type` property is constrained to the canonical set of [Permission & Policy types as \\ndefined in ERC-7715](https://github.com/pedrouid/ERCs/blob/19c16341c57f6ac8770cb778d60845dcf30f6a40/ERCS/erc-7715.md#permissions), however, consumers can utilize a `custom` property on `type` as an escape hatch to use custom Permission or Policy types:\\n\\n```ts twoslash\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n { \\n type: { custom: 'example' }, // [!code focus]\\n data: {\\n value: '0xdeadbeef',\\n }\\n } \\n ], \\n})\\n``` \\n:::\\n\\n### signer\\n\\n- **Type:** `Signer | undefined`\\n\\nCustom signer type to scope the permissions to.\\n\\n```ts twoslash\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { // [!code focus]\\n type: 'key', // [!code focus]\\n data: { // [!code focus]\\n id: '...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\\n``` \",\"document\":[{\"href\":\"/experimental/erc7715/grantPermissions#grantpermissions\",\"html\":\"\\nRequest permissions from a wallet to perform actions on behalf of a user.
\\n\\n\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#grantpermissions\",\"isPage\":true,\"text\":\"\\nRequest permissions from a wallet to perform actions on behalf of a user.\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"grantPermissions\",\"titles\":[]},{\"href\":\"/experimental/erc7715/grantPermissions#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ \\n account,\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()GrantPermissionsReturnType
Response from the wallet after issuing permissions.
\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#returns\",\"isPage\":false,\"text\":\"\\nGrantPermissionsReturnType\\nResponse from the wallet after issuing permissions.\\n\",\"title\":\"Returns\",\"titles\":[\"grantPermissions\"]},{\"href\":\"/experimental/erc7715/grantPermissions#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"grantPermissions\"]},{\"href\":\"/experimental/erc7715/grantPermissions#account\",\"html\":\"\\nAccount | Address | undefinedThe Account to scope the permissions to.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, \\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | undefined\\n\\nThe Account to scope the permissions to.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, \\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"grantPermissions\",\"Parameters\"]},{\"href\":\"/experimental/erc7715/grantPermissions#expiry\",\"html\":\"\\nnumberThe timestamp (in seconds) when the permissions will expire.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, \\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#expiry\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe timestamp (in seconds) when the permissions will expire.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, \\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"expiry\",\"titles\":[\"grantPermissions\",\"Parameters\"]},{\"href\":\"/experimental/erc7715/grantPermissions#permissions\",\"html\":\"\\nPermission[]Set of Permissions & Policies to grant to the user.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ \\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n// ^| \\n } \\n ], \\n})\\n\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#permissions\",\"isPage\":false,\"text\":\"\\n\\nType: Permission[]\\n\\nSet of Permissions & Policies to grant to the user.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ \\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n// ^| \\n } \\n ], \\n})\\nThe type property is constrained to the canonical set of Permission & Policy types as\\ndefined in ERC-7715, however, consumers can utilize a custom property on type as an escape hatch to use custom Permission or Policy types:// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n { \\n type: { custom: 'example' }, \\n data: {\\n value: '0xdeadbeef',\\n }\\n } \\n ], \\n})\\n\",\"title\":\"permissions\",\"titles\":[\"grantPermissions\",\"Parameters\"]},{\"href\":\"/experimental/erc7715/grantPermissions#signer\",\"html\":\"\\nSigner | undefinedCustom signer type to scope the permissions to.
\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { \\n type: 'key', \\n data: { \\n id: '...'\\n } \\n } \\n})\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#signer\",\"isPage\":false,\"text\":\"\\n\\nType: Signer | undefined\\n\\nCustom signer type to scope the permissions to.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { \\n type: 'key', \\n data: { \\n id: '...'\\n } \\n } \\n})\",\"title\":\"signer\",\"titles\":[\"grantPermissions\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.991f5a6d98be78d85be5e104c97f6ec6c330dad71e60d5b8f0a7e4437b6d7bef.json b/site/.cache/search.index.991f5a6d98be78d85be5e104c97f6ec6c330dad71e60d5b8f0a7e4437b6d7bef.json
index 7c3c9b623a..92c0b68e19 100644
--- a/site/.cache/search.index.991f5a6d98be78d85be5e104c97f6ec6c330dad71e60d5b8f0a7e4437b6d7bef.json
+++ b/site/.cache/search.index.991f5a6d98be78d85be5e104c97f6ec6c330dad71e60d5b8f0a7e4437b6d7bef.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Prepares a transaction request for signing.\\n---\\n\\n# prepareTransactionRequest\\n\\nPrepares a transaction request for signing by populating a nonce, gas limit, fee values, and a transaction type.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n// @log: maxFeePerGas: 150000000000n,\\n// @log: maxPriorityFeePerGas: 1000000000n,\\n// @log: nonce: 69,\\n// @log: type: 'eip1559',\\n// @log: value: 1000000000000000000n\\n// @log: }\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n// export const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `prepareTransactionRequest`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n// @log: maxFeePerGas: 150000000000n,\\n// @log: maxPriorityFeePerGas: 1000000000n,\\n// @log: nonce: 69,\\n// @log: type: 'eip1559',\\n// @log: value: 1000000000000000000n\\n// @log: }\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n```ts twoslash [config.ts (Local Account)] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`TransactionRequest`](/docs/glossary/types#transactionrequest)\\n\\nThe transaction request.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### to\\n\\n- **Type:** `0x${string}`\\n\\nThe transaction recipient or contract address.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n```\\n\\n### accessList (optional)\\n\\n- **Type:** [`AccessList`](/docs/glossary/types#accesslist)\\n\\nThe access list.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### blobs (optional)\\n\\n- **Type:** `Hex[]`\\n\\nBlobs for [Blob Transactions](/docs/guides/blob-transactions). \\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\n\\nThe chain is also used to infer its request type (e.g. the Celo chain has a `gatewayFee` that you can pass through to `prepareTransactionRequest`).\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nA contract hashed method call with encoded args.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### kzg (optional)\\n\\n- **Type:** `KZG`\\n\\nKZG implementation for [Blob Transactions](/docs/guides/blob-transactions). \\n\\nSee [`setupKzg`](/docs/utilities/setupKzg) for more information.\\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) // [!code focus]\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### nonceManager (optional)\\n\\n- **Type:** `NonceManager | undefined`\\n\\nNonce Manager to consume and increment the Account nonce for the transaction request.\\n\\n```ts twoslash\\n// @noErrors\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager // [!code focus]\\n})\\n```\\n\\n### parameters (optional)\\n\\n- **Type:** `(\\\"fees\\\" | \\\"gas\\\" | \\\"nonce\\\" | \\\"type\\\")[]`\\n- **Default:** `[\\\"fees\\\", \\\"gas\\\", \\\"nonce\\\", \\\"type\\\"]`\\n\\nParameters to prepare. \\n\\nFor instance, if `[\\\"gas\\\", \\\"nonce\\\"]` is provided, then only the `gas` and `nonce` parameters will be prepared.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei sent with this transaction.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\\n```\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#preparetransactionrequest\",\"html\":\"\\nPrepares a transaction request for signing by populating a nonce, gas limit, fee values, and a transaction type.
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#preparetransactionrequest\",\"isPage\":true,\"text\":\"\\nPrepares a transaction request for signing by populating a nonce, gas limit, fee values, and a transaction type.\\n\",\"title\":\"prepareTransactionRequest\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#usage\",\"html\":\"\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n \\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n \\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n \\n// @log: maxFeePerGas: 150000000000n,\\n \\n// @log: maxPriorityFeePerGas: 1000000000n,\\n \\n// @log: nonce: 69,\\n \\n// @log: type: 'eip1559',\\n \\n// @log: value: 1000000000000000000n\\n \\n// @log: }\\n \\n \\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)If you do not wish to pass an account to every prepareTransactionRequest, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n \\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n \\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n \\n// @log: maxFeePerGas: 150000000000n,\\n \\n// @log: maxPriorityFeePerGas: 1000000000n,\\n \\n// @log: nonce: 69,\\n \\n// @log: type: 'eip1559',\\n \\n// @log: value: 1000000000000000000n\\n \\n// @log: }\\n \\n \\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})The transaction request.
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#returns\",\"isPage\":false,\"text\":\"\\nTransactionRequest\\nThe transaction request.\\n\",\"title\":\"Returns\",\"titles\":[\"prepareTransactionRequest\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"prepareTransactionRequest\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#account\",\"html\":\"\\nAccount | AddressThe Account to send the transaction from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"account\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#to\",\"html\":\"\\n0x${string}The transaction recipient or contract address.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nThe transaction recipient or contract address.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"to\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#accesslist-optional\",\"html\":\"\\nAccessListThe access list.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#accesslist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AccessList\\n\\nThe access list.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"title\":\"accessList (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#authorizationlist-optional\",\"html\":\"\\nAuthorizationListSigned EIP-7702 Authorization list.
\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#blobs-optional\",\"html\":\"\\nHex[]Blobs for Blob Transactions.
\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#blobs-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex[]\\n\\nBlobs for Blob Transactions.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"blobs (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#chain-optional\",\"html\":\"\\nChainwalletClient.chainThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.
\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to prepareTransactionRequest).
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to prepareTransactionRequest).\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#data-optional\",\"html\":\"\\n0x${string}A contract hashed method call with encoded args.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nA contract hashed method call with encoded args.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#gasprice-optional\",\"html\":\"\\nbigintThe price (in wei) to pay per gas. Only applies to Legacy Transactions.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#kzg-optional\",\"html\":\"\\nKZGKZG implementation for Blob Transactions.
\\nSee setupKzg for more information.
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#kzg-optional\",\"isPage\":false,\"text\":\"\\n\\nType: KZG\\n\\nKZG implementation for Blob Transactions.\\nSee setupKzg for more information.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"kzg (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#nonce-optional\",\"html\":\"\\nnumberUnique number identifying this transaction.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#noncemanager-optional\",\"html\":\"\\nNonceManager | undefinedNonce Manager to consume and increment the Account nonce for the transaction request.
\\n// @noErrors\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager \\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#noncemanager-optional\",\"isPage\":false,\"text\":\"\\n\\nType: NonceManager | undefined\\n\\nNonce Manager to consume and increment the Account nonce for the transaction request.\\n// @noErrors\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager \\n})\\n\",\"title\":\"nonceManager (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#parameters-optional\",\"html\":\"\\n("fees" | "gas" | "nonce" | "type")[]["fees", "gas", "nonce", "type"]Parameters to prepare.
\\nFor instance, if ["gas", "nonce"] is provided, then only the gas and nonce parameters will be prepared.
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#parameters-optional\",\"isPage\":false,\"text\":\"\\n\\nType: ("fees" | "gas" | "nonce" | "type")[]\\nDefault: ["fees", "gas", "nonce", "type"]\\n\\nParameters to prepare.\\nFor instance, if ["gas", "nonce"] is provided, then only the gas and nonce parameters will be prepared.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"parameters (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#value-optional\",\"html\":\"\\nbigintValue in wei sent with this transaction.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei sent with this transaction.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\",\"title\":\"value (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\ndescription: Prepares a transaction request for signing.\\n---\\n\\n# prepareTransactionRequest\\n\\nPrepares a transaction request for signing by populating a nonce, gas limit, fee values, and a transaction type.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n// @log: maxFeePerGas: 150000000000n,\\n// @log: maxPriorityFeePerGas: 1000000000n,\\n// @log: nonce: 69,\\n// @log: type: 'eip1559',\\n// @log: value: 1000000000000000000n\\n// @log: }\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n// export const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `prepareTransactionRequest`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n// @log: maxFeePerGas: 150000000000n,\\n// @log: maxPriorityFeePerGas: 1000000000n,\\n// @log: nonce: 69,\\n// @log: type: 'eip1559',\\n// @log: value: 1000000000000000000n\\n// @log: }\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n```ts twoslash [config.ts (Local Account)] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`TransactionRequest`](/docs/glossary/types#transactionrequest)\\n\\nThe transaction request.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### to\\n\\n- **Type:** `0x${string}`\\n\\nThe transaction recipient or contract address.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n```\\n\\n### accessList (optional)\\n\\n- **Type:** [`AccessList`](/docs/glossary/types#accesslist)\\n\\nThe access list.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### blobs (optional)\\n\\n- **Type:** `Hex[]`\\n\\nBlobs for [Blob Transactions](/docs/guides/blob-transactions). \\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\n\\nThe chain is also used to infer its request type (e.g. the Celo chain has a `gatewayFee` that you can pass through to `prepareTransactionRequest`).\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nA contract hashed method call with encoded args.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nThe gas limit of the transaction. If missing, it will be estimated.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gas: 21000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### kzg (optional)\\n\\n- **Type:** `KZG`\\n\\nKZG implementation for [Blob Transactions](/docs/guides/blob-transactions). \\n\\nSee [`setupKzg`](/docs/utilities/setupKzg) for more information.\\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) // [!code focus]\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### nonceManager (optional)\\n\\n- **Type:** `NonceManager | undefined`\\n\\nNonce Manager to consume and increment the Account nonce for the transaction request.\\n\\n```ts twoslash\\n// @noErrors\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager // [!code focus]\\n})\\n```\\n\\n### parameters (optional)\\n\\n- **Type:** `(\\\"fees\\\" | \\\"gas\\\" | \\\"nonce\\\" | \\\"type\\\")[]`\\n- **Default:** `[\\\"fees\\\", \\\"gas\\\", \\\"nonce\\\", \\\"type\\\"]`\\n\\nParameters to prepare. \\n\\nFor instance, if `[\\\"gas\\\", \\\"nonce\\\"]` is provided, then only the `gas` and `nonce` parameters will be prepared.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei sent with this transaction.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\\n```\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#preparetransactionrequest\",\"html\":\"\\nPrepares a transaction request for signing by populating a nonce, gas limit, fee values, and a transaction type.
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#preparetransactionrequest\",\"isPage\":true,\"text\":\"\\nPrepares a transaction request for signing by populating a nonce, gas limit, fee values, and a transaction type.\\n\",\"title\":\"prepareTransactionRequest\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#usage\",\"html\":\"\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n \\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n \\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n \\n// @log: maxFeePerGas: 150000000000n,\\n \\n// @log: maxPriorityFeePerGas: 1000000000n,\\n \\n// @log: nonce: 69,\\n \\n// @log: type: 'eip1559',\\n \\n// @log: value: 1000000000000000000n\\n \\n// @log: }\\n \\n \\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)If you do not wish to pass an account to every prepareTransactionRequest, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n \\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n \\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n \\n// @log: maxFeePerGas: 150000000000n,\\n \\n// @log: maxPriorityFeePerGas: 1000000000n,\\n \\n// @log: nonce: 69,\\n \\n// @log: type: 'eip1559',\\n \\n// @log: value: 1000000000000000000n\\n \\n// @log: }\\n \\n \\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})The transaction request.
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#returns\",\"isPage\":false,\"text\":\"\\nTransactionRequest\\nThe transaction request.\\n\",\"title\":\"Returns\",\"titles\":[\"prepareTransactionRequest\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"prepareTransactionRequest\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#account\",\"html\":\"\\nAccount | AddressThe Account to send the transaction from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"account\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#to\",\"html\":\"\\n0x${string}The transaction recipient or contract address.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nThe transaction recipient or contract address.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"to\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#accesslist-optional\",\"html\":\"\\nAccessListThe access list.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#accesslist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AccessList\\n\\nThe access list.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"title\":\"accessList (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#authorizationlist-optional\",\"html\":\"\\nAuthorizationListSigned EIP-7702 Authorization list.
\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#blobs-optional\",\"html\":\"\\nHex[]Blobs for Blob Transactions.
\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#blobs-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex[]\\n\\nBlobs for Blob Transactions.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"blobs (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#chain-optional\",\"html\":\"\\nChainwalletClient.chainThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.
\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to prepareTransactionRequest).
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to prepareTransactionRequest).\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#data-optional\",\"html\":\"\\n0x${string}A contract hashed method call with encoded args.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nA contract hashed method call with encoded args.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#gas-optional\",\"html\":\"\\nbigintThe gas limit of the transaction. If missing, it will be estimated.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gas: 21000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe gas limit of the transaction. If missing, it will be estimated.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gas: 21000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#gasprice-optional\",\"html\":\"\\nbigintThe price (in wei) to pay per gas. Only applies to Legacy Transactions.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#kzg-optional\",\"html\":\"\\nKZGKZG implementation for Blob Transactions.
\\nSee setupKzg for more information.
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#kzg-optional\",\"isPage\":false,\"text\":\"\\n\\nType: KZG\\n\\nKZG implementation for Blob Transactions.\\nSee setupKzg for more information.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"kzg (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#nonce-optional\",\"html\":\"\\nnumberUnique number identifying this transaction.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#noncemanager-optional\",\"html\":\"\\nNonceManager | undefinedNonce Manager to consume and increment the Account nonce for the transaction request.
\\n// @noErrors\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager \\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#noncemanager-optional\",\"isPage\":false,\"text\":\"\\n\\nType: NonceManager | undefined\\n\\nNonce Manager to consume and increment the Account nonce for the transaction request.\\n// @noErrors\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager \\n})\\n\",\"title\":\"nonceManager (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#parameters-optional\",\"html\":\"\\n("fees" | "gas" | "nonce" | "type")[]["fees", "gas", "nonce", "type"]Parameters to prepare.
\\nFor instance, if ["gas", "nonce"] is provided, then only the gas and nonce parameters will be prepared.
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#parameters-optional\",\"isPage\":false,\"text\":\"\\n\\nType: ("fees" | "gas" | "nonce" | "type")[]\\nDefault: ["fees", "gas", "nonce", "type"]\\n\\nParameters to prepare.\\nFor instance, if ["gas", "nonce"] is provided, then only the gas and nonce parameters will be prepared.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"parameters (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#value-optional\",\"html\":\"\\nbigintValue in wei sent with this transaction.
\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei sent with this transaction.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\",\"title\":\"value (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.9a41434301d9178d1295f32c0d7867feeefdd01bab5466de35b81d25c697122e.json b/site/.cache/search.index.9a41434301d9178d1295f32c0d7867feeefdd01bab5466de35b81d25c697122e.json
new file mode 100644
index 0000000000..5f00afb34d
--- /dev/null
+++ b/site/.cache/search.index.9a41434301d9178d1295f32c0d7867feeefdd01bab5466de35b81d25c697122e.json
@@ -0,0 +1 @@
+"{\"value\":{\"mdx\":\"---\\ndescription: Sign and broadcast a batch of calls to the network. \\n---\\n\\n# sendCalls\\n\\nRequests for the wallet to sign and broadcast a batch of calls to the network. \\n\\n[Read more](https://eips.ethereum.org/EIPS/eip-5792#wallet_sendcalls)\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\nNotes:\\n\\n- `account` and `chain` are top level properties as all calls should be sent by the same account and chain.\\n- Properties of `calls` items are only those shared by all transaction types (e.g. `data`, `to`, `value`). The Wallet should handle other required properties like gas & fees.\\n- [Read `wallet_sendCalls` on EIP-5792.](https://eips.ethereum.org/EIPS/eip-5792#wallet_sendcalls)\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [abi.ts] filename=\\\"abi.ts\\\"\\nexport const wagmiAbi = [\\n // ...\\n {\\n inputs: [],\\n name: \\\"mint\\\",\\n outputs: [],\\n stateMutability: \\\"nonpayable\\\",\\n type: \\\"function\\\",\\n },\\n // ...\\n] as const;\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`{ id: string, capabilities?: WalletCapabilities }`\\n\\nThe identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call `getCallsStatus` with this identifier to retrieve a batch call status and call receipts.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nThe Account to sign & broadcast the call from. If set to `null`, it is assumed that the wallet will handle filling the sender of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### chain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain to broadcast the calls.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### calls\\n\\n- **Type:** `Call[]`\\n\\nAn array of calls to be signed and broadcasted.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n#### calls.data\\n\\n- **Type:** `Hex`\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n#### calls.to\\n\\n- **Type:** `Address`\\n\\nRecipient address of the call.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\\n```\\n\\n#### calls.value\\n\\n- **Type:** `Address`\\n\\nValue to send with the call.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### capabilities \\n\\n- **Type:** `WalletCapabilities`\\n\\nCapability metadata for the calls (e.g. specifying a paymaster).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { // [!code focus]\\n paymasterService: { // [!code focus]\\n url: 'https://...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\\n```\\n\\n### forceAtomic\\n\\n- **Type:** `boolean`\\n- **Default:** `false`\\n\\nForce the calls to be executed atomically. [See more](https://eips.ethereum.org/EIPS/eip-5792#call-execution-atomicity)\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, // [!code focus]\\n})\\n```\\n\\n### id\\n\\n- **Type:** `string`\\n\\nAttribute the call batch with an identifier.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: 'Requests for the wallet to sign and broadcast a batch of calls to the network.
\\n\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#sendcalls\",\"isPage\":true,\"text\":\"\\nRequests for the wallet to sign and broadcast a batch of calls to the network.\\nRead more\\n\",\"title\":\"sendCalls\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/sendCalls#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ \\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()Notes:
\\naccount and chain are top level properties as all calls should be sent by the same account and chain.calls items are only those shared by all transaction types (e.g. data, to, value). The Wallet should handle other required properties like gas & fees.wallet_sendCalls on EIP-5792.If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})export const wagmiAbi = [\\n // ...\\n {\\n inputs: [],\\n name: "mint",\\n outputs: [],\\n stateMutability: "nonpayable",\\n type: "function",\\n },\\n // ...\\n] as const;import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}){ id: string, capabilities?: WalletCapabilities }
The identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call getCallsStatus with this identifier to retrieve a batch call status and call receipts.
Account | Address | nullThe Account to sign & broadcast the call from. If set to null, it is assumed that the wallet will handle filling the sender of the calls.
Accepts a JSON-RPC Account.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nThe Account to sign & broadcast the call from. If set to null, it is assumed that the wallet will handle filling the sender of the calls.\\nAccepts a JSON-RPC Account.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendCalls#chain\",\"html\":\"\\nChainwalletClient.chainThe target chain to broadcast the calls.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#chain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain to broadcast the calls.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"chain\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendCalls#calls\",\"html\":\"\\nCall[]An array of calls to be signed and broadcasted.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#calls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nAn array of calls to be signed and broadcasted.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendCalls#callsdata\",\"html\":\"\\nHexCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#callsdata\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"calls.data\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/docs/actions/wallet/sendCalls#callsto\",\"html\":\"\\nAddressRecipient address of the call.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#callsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nRecipient address of the call.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"title\":\"calls.to\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/docs/actions/wallet/sendCalls#callsvalue\",\"html\":\"\\nAddressValue to send with the call.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#callsvalue\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nValue to send with the call.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"calls.value\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/docs/actions/wallet/sendCalls#capabilities\",\"html\":\"\\nWalletCapabilitiesCapability metadata for the calls (e.g. specifying a paymaster).
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { \\n paymasterService: { \\n url: 'https://...'\\n } \\n } \\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#capabilities\",\"isPage\":false,\"text\":\"\\n\\nType: WalletCapabilities\\n\\nCapability metadata for the calls (e.g. specifying a paymaster).\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { \\n paymasterService: { \\n url: 'https://...'\\n } \\n } \\n})\\n\",\"title\":\"capabilities\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendCalls#forceatomic\",\"html\":\"\\nbooleanfalseForce the calls to be executed atomically. See more
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, \\n})\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#forceatomic\",\"isPage\":false,\"text\":\"\\n\\nType: boolean\\nDefault: false\\n\\nForce the calls to be executed atomically. See more\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, \\n})\\n\",\"title\":\"forceAtomic\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendCalls#id\",\"html\":\"\\nstringAttribute the call batch with an identifier.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: '<my-batch-id>', \\n})\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nAttribute the call batch with an identifier.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: '<my-batch-id>', \\n})\",\"title\":\"id\",\"titles\":[\"sendCalls\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.a6cee08bb85ba38b95057bb460f174f4772127f6b9bb4c2a327f4b0e82e8085b.json b/site/.cache/search.index.a6cee08bb85ba38b95057bb460f174f4772127f6b9bb4c2a327f4b0e82e8085b.json
index 1f6e27b024..2de65c3c40 100644
--- a/site/.cache/search.index.a6cee08bb85ba38b95057bb460f174f4772127f6b9bb4c2a327f4b0e82e8085b.json
+++ b/site/.cache/search.index.a6cee08bb85ba38b95057bb460f174f4772127f6b9bb4c2a327f4b0e82e8085b.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Extract capabilities that a connected wallet supports.\\n---\\n\\n# getCapabilities\\n\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n[Read more.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_getcapabilities)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n// @log: 8453: {\\n// @log: paymasterService: {\\n// @log: supported: true,\\n// @log: },\\n// @log: sessionKeys: {\\n// @log: supported: true,\\n// @log: },\\n// @log: },\\n// @log: 84532: {\\n// @log: paymasterService: {\\n// @log: supported: true,\\n// @log: },\\n// @log: },\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `getCapabilities`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WalletCapabilities`\\n\\nCapabilities of the wallet.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Address`\\n\\nThe account to get capabilities for.\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/experimental/eip5792/getCapabilities#getcapabilities\",\"html\":\"\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).
\\n\\n\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#getcapabilities\",\"isPage\":true,\"text\":\"\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"getCapabilities\",\"titles\":[]},{\"href\":\"/experimental/eip5792/getCapabilities#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n \\n// @log: 8453: {\\n \\n// @log: paymasterService: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: sessionKeys: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: 84532: {\\n \\n// @log: paymasterService: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()If you do not wish to pass an account to every getCapabilities, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())WalletCapabilities
Capabilities of the wallet.
\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#returns\",\"isPage\":false,\"text\":\"\\nWalletCapabilities\\nCapabilities of the wallet.\\n\",\"title\":\"Returns\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/experimental/eip5792/getCapabilities#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/experimental/eip5792/getCapabilities#account\",\"html\":\"\\nAddressThe account to get capabilities for.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n})\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe account to get capabilities for.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n})\",\"title\":\"account\",\"titles\":[\"getCapabilities\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\ndescription: Extract capabilities that a connected wallet supports.\\n---\\n\\n# getCapabilities\\n\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n[Read more.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_getcapabilities)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n// @log: 8453: {\\n// @log: paymasterService: {\\n// @log: supported: true,\\n// @log: },\\n// @log: sessionKeys: {\\n// @log: supported: true,\\n// @log: },\\n// @log: },\\n// @log: 84532: {\\n// @log: paymasterService: {\\n// @log: supported: true,\\n// @log: },\\n// @log: },\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `getCapabilities`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WalletCapabilities`\\n\\nCapabilities of the wallet.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Address`\\n\\nThe account to get capabilities for.\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n})\\n```\\n\\n### chainId\\n\\n- **Type:** `number`\\n\\nThe chain ID to get capabilities for.\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/experimental/eip5792/getCapabilities#getcapabilities\",\"html\":\"\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).
\\n\\n\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#getcapabilities\",\"isPage\":true,\"text\":\"\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"getCapabilities\",\"titles\":[]},{\"href\":\"/experimental/eip5792/getCapabilities#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n \\n// @log: 8453: {\\n \\n// @log: paymasterService: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: sessionKeys: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: 84532: {\\n \\n// @log: paymasterService: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()If you do not wish to pass an account to every getCapabilities, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())WalletCapabilities
Capabilities of the wallet.
\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#returns\",\"isPage\":false,\"text\":\"\\nWalletCapabilities\\nCapabilities of the wallet.\\n\",\"title\":\"Returns\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/experimental/eip5792/getCapabilities#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/experimental/eip5792/getCapabilities#account\",\"html\":\"\\nAddressThe account to get capabilities for.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n})\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe account to get capabilities for.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n})\\n\",\"title\":\"account\",\"titles\":[\"getCapabilities\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/getCapabilities#chainid\",\"html\":\"\\nnumberThe chain ID to get capabilities for.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, \\n})\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#chainid\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe chain ID to get capabilities for.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, \\n})\",\"title\":\"chainId\",\"titles\":[\"getCapabilities\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.afc9f2d57a694d00671deb49232d80dc849c1c5ca6693193a119439075cc9089.json b/site/.cache/search.index.afc9f2d57a694d00671deb49232d80dc849c1c5ca6693193a119439075cc9089.json
new file mode 100644
index 0000000000..252474f773
--- /dev/null
+++ b/site/.cache/search.index.afc9f2d57a694d00671deb49232d80dc849c1c5ca6693193a119439075cc9089.json
@@ -0,0 +1 @@
+"{\"value\":{\"mdx\":\"# Extending Client with ERC-7846 Actions [Setting up your Viem Client]\\n\\nTo use the experimental functionality of [ERC-7846](https://eips.ethereum.org/EIPS/eip-7846), you can extend your existing (or new) Viem Client with experimental [ERC-7846](https://eips.ethereum.org/EIPS/eip-7846) Actions.\\n\\n```ts\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental' // [!code focus]\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7846Actions()) // [!code focus]\\n\\nconst hash = await client.connect()\\n```\\n\",\"document\":[{\"href\":\"/experimental/erc7846/client#extending-client-with-erc-7846-actions\",\"html\":\"To use the experimental functionality of ERC-7846, you can extend your existing (or new) Viem Client with experimental ERC-7846 Actions.
\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7846Actions()) \\n \\nconst hash = await client.connect()\",\"id\":\"pages/experimental/erc7846/client.md#extending-client-with-erc-7846-actions\",\"isPage\":true,\"text\":\"Setting up your Viem Client\\nTo use the experimental functionality of ERC-7846, you can extend your existing (or new) Viem Client with experimental ERC-7846 Actions.\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7846Actions()) \\n \\nconst hash = await client.connect()\",\"title\":\"Extending Client with ERC-7846 Actions\",\"titles\":[]}]}}"
diff --git a/site/.cache/search.index.b343ac0520aa2f6d1c551d73c10f316121186ad60a5fe2cfd9e0d4871c222d07.json b/site/.cache/search.index.b343ac0520aa2f6d1c551d73c10f316121186ad60a5fe2cfd9e0d4871c222d07.json
deleted file mode 100644
index 6c85ce238f..0000000000
--- a/site/.cache/search.index.b343ac0520aa2f6d1c551d73c10f316121186ad60a5fe2cfd9e0d4871c222d07.json
+++ /dev/null
@@ -1 +0,0 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: An Overview of EIP-7702\\n---\\n\\n# EIP-7702 Overview\\n\\nEIP-7702 is a proposal to add a new Transaction type to allow an EOA to designate a Smart Contract as its \\\"implementation\\\".\\n\\nThe main difference between an EIP-7702 Transaction and other transactions is the inclusion of a **\\\"authorization list\\\"** property, a set of `(chain_id, contract_address, nonce, y_parity, r, s)` tuples that depict what Contract bytecode(s) should be injected onto the Externally Owned Account during execution. \\n\\n:::note\\nIn Viem, you won't need to worry about constructing these Authorization Tuples manually as you can use [`signAuthorization`](/experimental/eip7702/signAuthorization) to generate them and use them in [Transaction APIs](/experimental/eip7702/contract-writes).\\n:::\\n\\nApplications of EIP-7702 include:\\n\\n- **Batching**: allowing multiple operations from the same user in one atomic transaction. One common example is an ERC-20 approval followed by spending that approval, a common workflow in DEXes that requires two transactions today. Advanced use cases of batching occasionally involve dependencies: the output of the first operation is part of the input to the second operation. [Example](/experimental/eip7702/contract-writes#5-invoke-contract-function)\\n- **Sponsorship**: account X pays for a transaction on behalf of account Y. Account X could be paid in some other ERC-20 for this service, or it could be an application operator including the transactions of its users for free. [Example](/experimental/eip7702/contract-writes#6-optional-use-a-sponsor)\\n- **Privilege de-escalation**: users can sign sub-keys, and give them specific permissions that are much weaker than global access to the account. For example, you could imagine a permission to spend ERC-20 tokens but not ETH, or to spend up to 1% of total balance per day, or to interact only with a specific application.\\n\\n## Next Steps\\n\\n- [Extending Client with EIP-7702](/experimental/eip7702/client)\\n- [Contract Writes](/experimental/eip7702/contract-writes)\\n- [Sending Transactions](/experimental/eip7702/sending-transactions)\",\"document\":[{\"href\":\"/experimental/eip7702#eip-7702-overview\",\"html\":\"\\nEIP-7702 is a proposal to add a new Transaction type to allow an EOA to designate a Smart Contract as its "implementation".
\\nThe main difference between an EIP-7702 Transaction and other transactions is the inclusion of a "authorization list" property, a set of (chain_id, contract_address, nonce, y_parity, r, s) tuples that depict what Contract bytecode(s) should be injected onto the Externally Owned Account during execution.
Applications of EIP-7702 include:
\\nThe following Viem chains are implemented on the OP Stack:
\\nimport {\\n base, \\n baseGoerli, \\n baseSepolia, \\n fraxtal, \\n fraxtalTestnet, \\n ink, \\n inkSepolia, \\n optimism, \\n optimismGoerli, \\n optimismSepolia, \\n soneium, \\n soneiumMinato, \\n zircuit, \\n zircuitTestnet, \\n zora, \\n zoraSepolia, \\n zoraTestnet, \\n} from 'viem/chains'\\n\",\"id\":\"pages/op-stack/chains.md#chains\",\"isPage\":true,\"text\":\"\\nThe following Viem chains are implemented on the OP Stack:\\nimport {\\n base, \\n baseGoerli, \\n baseSepolia, \\n fraxtal, \\n fraxtalTestnet, \\n ink, \\n inkSepolia, \\n optimism, \\n optimismGoerli, \\n optimismSepolia, \\n soneium, \\n soneiumMinato, \\n zircuit, \\n zircuitTestnet, \\n zora, \\n zoraSepolia, \\n zoraTestnet, \\n} from 'viem/chains'\\n\",\"title\":\"Chains\",\"titles\":[]},{\"href\":\"/op-stack/chains#configuration\",\"html\":\"\\nViem exports OP Stack's chain formatters & serializers via chainConfig. This is useful if you need to define another chain which is implemented on the OP Stack.
import { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/op-stack'\\n \\nexport const opStackExample = defineChain({\\n ...chainConfig,\\n name: 'OP Stack Example',\\n // ...\\n})\",\"id\":\"pages/op-stack/chains.md#configuration\",\"isPage\":false,\"text\":\"\\nViem exports OP Stack's chain formatters & serializers via chainConfig. This is useful if you need to define another chain which is implemented on the OP Stack.\\nimport { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/op-stack'\\n \\nexport const opStackExample = defineChain({\\n ...chainConfig,\\n name: 'OP Stack Example',\\n // ...\\n})\",\"title\":\"Configuration\",\"titles\":[\"Chains\"]}]}}"
+"{\"value\":{\"mdx\":\"# Chains\\n\\nThe following Viem chains are implemented on the OP Stack:\\n\\n```ts\\nimport {\\n base, // [!code hl]\\n baseGoerli, // [!code hl]\\n baseSepolia, // [!code hl]\\n fraxtal, // [!code hl]\\n fraxtalTestnet, // [!code hl]\\n ink, // [!code hl]\\n inkSepolia, // [!code hl]\\n optimism, // [!code hl]\\n optimismGoerli, // [!code hl]\\n optimismSepolia, // [!code hl]\\n soneium, // [!code hl]\\n soneiumMinato, // [!code hl]\\n unichain, // [!code hl]\\n unichainSepolia, // [!code hl]\\n zircuit, // [!code hl]\\n zircuitTestnet, // [!code hl]\\n zora, // [!code hl]\\n zoraSepolia, // [!code hl]\\n zoraTestnet, // [!code hl]\\n} from 'viem/chains'\\n```\\n\\n## Configuration\\n\\nViem exports OP Stack's chain [formatters](/docs/chains/formatters) & [serializers](/docs/chains/serializers) via `chainConfig`. This is useful if you need to define another chain which is implemented on the OP Stack.\\n\\n```ts\\nimport { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/op-stack'\\n\\nexport const opStackExample = defineChain({\\n ...chainConfig,\\n name: 'OP Stack Example',\\n // ...\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/chains#chains\",\"html\":\"\\nThe following Viem chains are implemented on the OP Stack:
\\nimport {\\n base, \\n baseGoerli, \\n baseSepolia, \\n fraxtal, \\n fraxtalTestnet, \\n ink, \\n inkSepolia, \\n optimism, \\n optimismGoerli, \\n optimismSepolia, \\n soneium, \\n soneiumMinato, \\n unichain, \\n unichainSepolia, \\n zircuit, \\n zircuitTestnet, \\n zora, \\n zoraSepolia, \\n zoraTestnet, \\n} from 'viem/chains'\\n\",\"id\":\"pages/op-stack/chains.md#chains\",\"isPage\":true,\"text\":\"\\nThe following Viem chains are implemented on the OP Stack:\\nimport {\\n base, \\n baseGoerli, \\n baseSepolia, \\n fraxtal, \\n fraxtalTestnet, \\n ink, \\n inkSepolia, \\n optimism, \\n optimismGoerli, \\n optimismSepolia, \\n soneium, \\n soneiumMinato, \\n unichain, \\n unichainSepolia, \\n zircuit, \\n zircuitTestnet, \\n zora, \\n zoraSepolia, \\n zoraTestnet, \\n} from 'viem/chains'\\n\",\"title\":\"Chains\",\"titles\":[]},{\"href\":\"/op-stack/chains#configuration\",\"html\":\"\\nViem exports OP Stack's chain formatters & serializers via chainConfig. This is useful if you need to define another chain which is implemented on the OP Stack.
import { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/op-stack'\\n \\nexport const opStackExample = defineChain({\\n ...chainConfig,\\n name: 'OP Stack Example',\\n // ...\\n})\",\"id\":\"pages/op-stack/chains.md#configuration\",\"isPage\":false,\"text\":\"\\nViem exports OP Stack's chain formatters & serializers via chainConfig. This is useful if you need to define another chain which is implemented on the OP Stack.\\nimport { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/op-stack'\\n \\nexport const opStackExample = defineChain({\\n ...chainConfig,\\n name: 'OP Stack Example',\\n // ...\\n})\",\"title\":\"Configuration\",\"titles\":[\"Chains\"]}]}}"
diff --git a/site/.cache/search.index.b70631e7b2e1dd809459791d27f40f96d919c40c0b29d88f733e9c87985ceeb6.json b/site/.cache/search.index.b70631e7b2e1dd809459791d27f40f96d919c40c0b29d88f733e9c87985ceeb6.json
deleted file mode 100644
index d792dd272c..0000000000
--- a/site/.cache/search.index.b70631e7b2e1dd809459791d27f40f96d919c40c0b29d88f733e9c87985ceeb6.json
+++ /dev/null
@@ -1 +0,0 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Signs an EIP-7702 Authorization object.\\n---\\n\\n# signAuthorization\\n\\nSigns an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702). The signed Authorization can be used in Transaction APIs like [`sendTransaction`](/docs/actions/wallet/sendTransaction#authorizationlist-optional) and [`writeContract`](/docs/contract/writeContract#authorizationlist-optional) to inject the authorized Contract bytecode(s) into an Account at the time of execution.\\n\\n## Usage\\n\\nA Contract can be authorized by supplying a `contractAddress`. By default, it will be signed over the Account's next available Nonce and the current Chain ID. You can also [explicitly set the `nonce` and `chainId`](#scoping).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n// @log: chainId: 1,\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n// @log: nonce: 1,\\n// @log: r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\\n// @log: s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\\n// @log: yParity: 0,\\n// @log: }\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: walletClient.account.address,\\n})\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n### Explicit Scoping\\n\\nWe can explicitly sign over a provided `nonce` and/or `chainId` by supplying them as parameters:\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n nonce: 420, // [!code focus]\\n})\\n// @log: {\\n// @log: chainId: 10,\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n// @log: nonce: 420,\\n// @log: r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\\n// @log: s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\\n// @log: yParity: 0,\\n// @log: }\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: walletClient.account.address,\\n})\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`SignedAuthorization`\\n\\nA signed Authorization object.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account`\\n\\nAccount to use to authorize injection of the [Contract (`authorization`)](#authorization) onto the Account.\\n\\nAccepts a [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n```\\n\\n### chainId (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `client.chain.id` or Network chain ID\\n\\nThe Chain ID to scope the Authorization to.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \\n```\\n\\n### contractAddress\\n\\n- **Type:** `Address`\\n\\nThe target Contract to inject onto the Account.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \\n```\\n\\n### sponsor (optional)\\n\\n- **Type:** `true | Address | Account`\\n\\nWhether the EIP-7702 Transaction will be executed by another Account.\\n\\nIf not specified, it will be assumed that the EIP-7702 Transaction will be executed by the Account that signed the Authorization.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, // [!code focus]\\n}) \\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `Address`\\n- **Default:** Account's next available nonce.\\n\\nThe nonce to scope the Authorization to.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \\n```\",\"document\":[{\"href\":\"/experimental/eip7702/signAuthorization#signauthorization\",\"html\":\"\\nSigns an EIP-7702 Authorization. The signed Authorization can be used in Transaction APIs like sendTransaction and writeContract to inject the authorized Contract bytecode(s) into an Account at the time of execution.
A Contract can be authorized by supplying a contractAddress. By default, it will be signed over the Account's next available Nonce and the current Chain ID. You can also explicitly set the nonce and chainId.
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n// @log: {\\n \\n// @log: chainId: 1,\\n \\n// @log: contractAddress: "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",\\n \\n// @log: nonce: 1,\\n \\n// @log: r: "0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1",\\n \\n// @log: s: "0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08",\\n \\n// @log: yParity: 0,\\n \\n// @log: }\\n \\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: walletClient.account.address,\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())We can explicitly sign over a provided nonce and/or chainId by supplying them as parameters:
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, \\n nonce: 420, \\n})\\n// @log: {\\n \\n// @log: chainId: 10,\\n \\n// @log: contractAddress: "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",\\n \\n// @log: nonce: 420,\\n \\n// @log: r: "0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1",\\n \\n// @log: s: "0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08",\\n \\n// @log: yParity: 0,\\n \\n// @log: }\\n \\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: walletClient.account.address,\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())SignedAuthorization
A signed Authorization object.
\\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#returns\",\"isPage\":false,\"text\":\"\\nSignedAuthorization\\nA signed Authorization object.\\n\",\"title\":\"Returns\",\"titles\":[\"signAuthorization\"]},{\"href\":\"/experimental/eip7702/signAuthorization#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"signAuthorization\"]},{\"href\":\"/experimental/eip7702/signAuthorization#account\",\"html\":\"\\nAccountAccount to use to authorize injection of the Contract (authorization) onto the Account.
Accepts a Local Account (Private Key, etc).
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'), \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account\\n\\nAccount to use to authorize injection of the Contract (authorization) onto the Account.\\nAccepts a Local Account (Private Key, etc).\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'), \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n\",\"title\":\"account\",\"titles\":[\"signAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/signAuthorization#chainid-optional\",\"html\":\"\\nAddressclient.chain.id or Network chain IDThe Chain ID to scope the Authorization to.
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, \\n}) \\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#chainid-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: client.chain.id or Network chain ID\\n\\nThe Chain ID to scope the Authorization to.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, \\n}) \\n\",\"title\":\"chainId (optional)\",\"titles\":[\"signAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/signAuthorization#contractaddress\",\"html\":\"\\nAddressThe target Contract to inject onto the Account.
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#contractaddress\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe target Contract to inject onto the Account.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n\",\"title\":\"contractAddress\",\"titles\":[\"signAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/signAuthorization#sponsor-optional\",\"html\":\"\\ntrue | Address | AccountWhether the EIP-7702 Transaction will be executed by another Account.
\\nIf not specified, it will be assumed that the EIP-7702 Transaction will be executed by the Account that signed the Authorization.
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, \\n}) \\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#sponsor-optional\",\"isPage\":false,\"text\":\"\\n\\nType: true | Address | Account\\n\\nWhether the EIP-7702 Transaction will be executed by another Account.\\nIf not specified, it will be assumed that the EIP-7702 Transaction will be executed by the Account that signed the Authorization.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, \\n}) \\n\",\"title\":\"sponsor (optional)\",\"titles\":[\"signAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/signAuthorization#nonce-optional\",\"html\":\"\\nAddressThe nonce to scope the Authorization to.
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, \\n}) \",\"id\":\"pages/experimental/eip7702/signAuthorization.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: Account's next available nonce.\\n\\nThe nonce to scope the Authorization to.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, \\n}) \",\"title\":\"nonce (optional)\",\"titles\":[\"signAuthorization\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.be15d78cb36969875dbf319a555bc3c2e341c33a79ce26bf5b0954a8567d0597.json b/site/.cache/search.index.be15d78cb36969875dbf319a555bc3c2e341c33a79ce26bf5b0954a8567d0597.json
index de4b532337..456ab4a922 100644
--- a/site/.cache/search.index.be15d78cb36969875dbf319a555bc3c2e341c33a79ce26bf5b0954a8567d0597.json
+++ b/site/.cache/search.index.be15d78cb36969875dbf319a555bc3c2e341c33a79ce26bf5b0954a8567d0597.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"# decodeAbiParameters [Decodes ABI encoded data.]\\n\\nDecodes ABI encoded data using the [ABI specification](https://solidity.readthedocs.io/en/latest/abi-spec), given a set of ABI parameters (`inputs`/`outputs`) and the encoded ABI data.\\n\\nThe `decodeAbiParameters` function is used by the other contract decoding utilities (ie. `decodeFunctionData`, `decodeEventLog`, etc).\\n\\n## Install\\n\\n```ts\\nimport { decodeAbiParameters } from 'viem'\\n```\\n\\n## Usage\\n\\nThe `decodeAbiParameters` function takes in two parameters:\\n\\n- a set of ABI Parameters (`params`), that can be in the shape of the `inputs` or `outputs` attribute of an ABI Item.\\n- the ABI encoded data (`data`) that correspond to the given `params`.\\n\\n```ts\\nimport { decodeAbiParameters } from 'viem'\\n\\nconst values = decodeAbiParameters(\\n [\\n { name: 'x', type: 'string' },\\n { name: 'y', type: 'uint' },\\n { name: 'z', type: 'bool' }\\n ],\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\\n)\\n// ['wagmi', 420n, true]\\n```\\n\\n### Human Readable\\n\\nYou can also pass in [Human Readable](/docs/glossary/terms#human-readable-abi) parameters with the [`parseAbiParameters` utility](/docs/abi/parseAbiParameters).\\n\\n```ts\\nimport { decodeAbiParameters, parseAbiParameters } from 'viem'\\n\\nconst values = decodeAbiParameters(\\n parseAbiParameters('string x, uint y, bool z'),\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000'\\n)\\n// ['wagmi', 420n, true]\\n```\\n\\n## Return Value\\n\\nThe decoded data. Type is inferred from the ABI.\\n\\n## Parameters\\n\\n### params\\n\\n- **Type**: [`AbiParameter[]`](/docs/glossary/types#abiparameter)\\n\\nThe set of ABI parameters to decode against `data`, in the shape of the `inputs` or `outputs` attribute of an ABI event/function.\\n\\nThese parameters must include valid [ABI types](https://docs.soliditylang.org/en/develop/abi-spec#types).\\n\\n```ts\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }], // [!code focus]\\n '0x0000000000000000000000000000000000000000000000000000000000010f2c',\\n)\\n```\\n\\n### data\\n\\n- **Type:** [`Hex`](/docs/glossary/types#hex)\\n\\nThe ABI encoded data.\\n\\n```ts\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }],\\n '0x0000000000000000000000000000000000000000000000000000000000010f2c', // [!code focus]\\n)\\n```\\n\\n## More Examples\\n\\n### Simple struct\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { abi } from './abi'\\n\\nconst values = decodeAbiParameters(\\n abi[0].outputs,\\n '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n)\\n// { x: 420n, y: true, z: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC' }\\n```\\n\\n```ts [abi.ts]\\nexport const abi = [\\n {\\n name: 'staticStruct',\\n outputs: [\\n {\\n components: [\\n {\\n name: 'x',\\n type: 'uint256',\\n },\\n {\\n name: 'y',\\n type: 'bool',\\n },\\n {\\n name: 'z',\\n type: 'address',\\n },\\n ],\\n name: 'foo',\\n type: 'tuple',\\n },\\n ],\\n }\\n] as const\\n```\\n\\n```solidity [Example.sol]\\ncontract Example {\\n struct Foo {\\n uint256 x;\\n bool y;\\n address z;\\n }\\n\\n function staticStruct(...) returns (Foo calldata foo) { \\n ... \\n return foo;\\n }\\n}\\n```\\n\\n:::\",\"document\":[{\"href\":\"/docs/abi/decodeAbiParameters#decodeabiparameters\",\"html\":\"Decodes ABI encoded data using the ABI specification, given a set of ABI parameters (inputs/outputs) and the encoded ABI data.
The decodeAbiParameters function is used by the other contract decoding utilities (ie. decodeFunctionData, decodeEventLog, etc).
import { decodeAbiParameters } from 'viem'\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#install\",\"isPage\":false,\"text\":\"\\nimport { decodeAbiParameters } from 'viem'\\n\",\"title\":\"Install\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#usage\",\"html\":\"\\nThe decodeAbiParameters function takes in two parameters:
params), that can be in the shape of the inputs or outputs attribute of an ABI Item.data) that correspond to the given params.import { decodeAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n [\\n { name: 'x', type: 'string' },\\n { name: 'y', type: 'uint' },\\n { name: 'z', type: 'bool' }\\n ],\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\\n)\\n// ['wagmi', 420n, true]\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#usage\",\"isPage\":false,\"text\":\"\\nThe decodeAbiParameters function takes in two parameters:\\n\\na set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.\\nthe ABI encoded data (data) that correspond to the given params.\\n\\nimport { decodeAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n [\\n { name: 'x', type: 'string' },\\n { name: 'y', type: 'uint' },\\n { name: 'z', type: 'bool' }\\n ],\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\\n)\\n// ['wagmi', 420n, true]\\n\",\"title\":\"Usage\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#human-readable\",\"html\":\"\\nYou can also pass in Human Readable parameters with the parseAbiParameters utility.
import { decodeAbiParameters, parseAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n parseAbiParameters('string x, uint y, bool z'),\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000'\\n)\\n// ['wagmi', 420n, true]\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#human-readable\",\"isPage\":false,\"text\":\"\\nYou can also pass in Human Readable parameters with the parseAbiParameters utility.\\nimport { decodeAbiParameters, parseAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n parseAbiParameters('string x, uint y, bool z'),\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000'\\n)\\n// ['wagmi', 420n, true]\\n\",\"title\":\"Human Readable\",\"titles\":[\"decodeAbiParameters\",\"Usage\"]},{\"href\":\"/docs/abi/decodeAbiParameters#return-value\",\"html\":\"\\nThe decoded data. Type is inferred from the ABI.
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#return-value\",\"isPage\":false,\"text\":\"\\nThe decoded data. Type is inferred from the ABI.\\n\",\"title\":\"Return Value\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#params\",\"html\":\"\\nAbiParameter[]The set of ABI parameters to decode against data, in the shape of the inputs or outputs attribute of an ABI event/function.
These parameters must include valid ABI types.
\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }], \\n '0x0000000000000000000000000000000000000000000000000000000000010f2c',\\n)\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#params\",\"isPage\":false,\"text\":\"\\n\\nType: AbiParameter[]\\n\\nThe set of ABI parameters to decode against data, in the shape of the inputs or outputs attribute of an ABI event/function.\\nThese parameters must include valid ABI types.\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }], \\n '0x0000000000000000000000000000000000000000000000000000000000010f2c',\\n)\\n\",\"title\":\"params\",\"titles\":[\"decodeAbiParameters\",\"Parameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#data\",\"html\":\"\\nHexThe ABI encoded data.
\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }],\\n '0x0000000000000000000000000000000000000000000000000000000000010f2c', \\n)\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#data\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe ABI encoded data.\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }],\\n '0x0000000000000000000000000000000000000000000000000000000000010f2c', \\n)\\n\",\"title\":\"data\",\"titles\":[\"decodeAbiParameters\",\"Parameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#more-examples\",\"html\":\"\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#more-examples\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"More Examples\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#simple-struct\",\"html\":\"\\nimport { abi } from './abi'\\n \\nconst values = decodeAbiParameters(\\n abi[0].outputs,\\n '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n)\\n// { x: 420n, y: true, z: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC' }export const abi = [\\n {\\n name: 'staticStruct',\\n outputs: [\\n {\\n components: [\\n {\\n name: 'x',\\n type: 'uint256',\\n },\\n {\\n name: 'y',\\n type: 'bool',\\n },\\n {\\n name: 'z',\\n type: 'address',\\n },\\n ],\\n name: 'foo',\\n type: 'tuple',\\n },\\n ],\\n }\\n] as constcontract Example {\\n struct Foo {\\n uint256 x;\\n bool y;\\n address z;\\n }\\n \\n function staticStruct(...) returns (Foo calldata foo) { \\n ... \\n return foo;\\n }\\n}Decodes ABI encoded data using the ABI specification, given a set of ABI parameters (inputs/outputs) and the encoded ABI data.
The decodeAbiParameters function is used by the other contract decoding utilities (ie. decodeFunctionData, decodeEventLog, etc).
import { decodeAbiParameters } from 'viem'\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#install\",\"isPage\":false,\"text\":\"\\nimport { decodeAbiParameters } from 'viem'\\n\",\"title\":\"Install\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#usage\",\"html\":\"\\nThe decodeAbiParameters function takes in two parameters:
params), that can be in the shape of the inputs or outputs attribute of an ABI Item.data) that correspond to the given params.import { decodeAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n [\\n { name: 'x', type: 'string' },\\n { name: 'y', type: 'uint' },\\n { name: 'z', type: 'bool' }\\n ],\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\\n)\\n// ['wagmi', 420n, true]\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#usage\",\"isPage\":false,\"text\":\"\\nThe decodeAbiParameters function takes in two parameters:\\n\\na set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.\\nthe ABI encoded data (data) that correspond to the given params.\\n\\nimport { decodeAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n [\\n { name: 'x', type: 'string' },\\n { name: 'y', type: 'uint' },\\n { name: 'z', type: 'bool' }\\n ],\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\\n)\\n// ['wagmi', 420n, true]\\n\",\"title\":\"Usage\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#human-readable\",\"html\":\"\\nYou can also pass in Human Readable parameters with the parseAbiParameters utility.
import { decodeAbiParameters, parseAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n parseAbiParameters('string x, uint y, bool z'),\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000'\\n)\\n// ['wagmi', 420n, true]\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#human-readable\",\"isPage\":false,\"text\":\"\\nYou can also pass in Human Readable parameters with the parseAbiParameters utility.\\nimport { decodeAbiParameters, parseAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n parseAbiParameters('string x, uint y, bool z'),\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000'\\n)\\n// ['wagmi', 420n, true]\\n\",\"title\":\"Human Readable\",\"titles\":[\"decodeAbiParameters\",\"Usage\"]},{\"href\":\"/docs/abi/decodeAbiParameters#return-value\",\"html\":\"\\nThe decoded data. Type is inferred from the ABI.
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#return-value\",\"isPage\":false,\"text\":\"\\nThe decoded data. Type is inferred from the ABI.\\n\",\"title\":\"Return Value\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#params\",\"html\":\"\\nAbiParameter[]The set of ABI parameters to decode against data, in the shape of the inputs or outputs attribute of an ABI event/function.
These parameters must include valid ABI types.
\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }], \\n '0x0000000000000000000000000000000000000000000000000000000000010f2c',\\n)\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#params\",\"isPage\":false,\"text\":\"\\n\\nType: AbiParameter[]\\n\\nThe set of ABI parameters to decode against data, in the shape of the inputs or outputs attribute of an ABI event/function.\\nThese parameters must include valid ABI types.\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }], \\n '0x0000000000000000000000000000000000000000000000000000000000010f2c',\\n)\\n\",\"title\":\"params\",\"titles\":[\"decodeAbiParameters\",\"Parameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#data\",\"html\":\"\\nHexThe ABI encoded data.
\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }],\\n '0x0000000000000000000000000000000000000000000000000000000000010f2c', \\n)\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#data\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe ABI encoded data.\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }],\\n '0x0000000000000000000000000000000000000000000000000000000000010f2c', \\n)\\n\",\"title\":\"data\",\"titles\":[\"decodeAbiParameters\",\"Parameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#more-examples\",\"html\":\"\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#more-examples\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"More Examples\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#simple-struct\",\"html\":\"\\nimport { abi } from './abi'\\n \\nconst values = decodeAbiParameters(\\n abi[0].outputs,\\n '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n)\\n// { x: 420n, y: true, z: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC' }export const abi = [\\n {\\n name: 'staticStruct',\\n outputs: [\\n {\\n components: [\\n {\\n name: 'x',\\n type: 'uint256',\\n },\\n {\\n name: 'y',\\n type: 'bool',\\n },\\n {\\n name: 'z',\\n type: 'address',\\n },\\n ],\\n name: 'foo',\\n type: 'tuple',\\n },\\n ],\\n }\\n] as constcontract Example {\\n struct Foo {\\n uint256 x;\\n bool y;\\n address z;\\n }\\n \\n function staticStruct(...) returns (Foo calldata foo) { \\n ... \\n return foo;\\n }\\n}A simple bytes that contains an ABI-encoded uint256 value.
const values = decodeAbiParameters(\\n [\\n { name: "response", type: "bytes" },\\n ],\\n '0x' +\\n '0000000000000000000000000000000000000000000000000000000000000020' + // offset pointer\\n '0000000000000000000000000000000000000000000000000000000000000020' + // length\\n '0000000000000000000000000000000000000000000000000000000000000001', // data\\n)\\n// 0x0000000000000000000000000000000000000000000000000000000000000001contract Example {\\n function simpleBytes() public pure returns (bytes memory) {\\n bytes memory value = abi.encode(1);\\n return abi.encode(value);\\n }\\n}Estimates the gas necessary to complete a transaction without submitting it to the network.
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#estimategas\",\"isPage\":true,\"text\":\"An Action for estimating gas for a transaction.\\nEstimates the gas necessary to complete a transaction without submitting it to the network.\\n\",\"title\":\"estimateGas\",\"titles\":[]},{\"href\":\"/docs/actions/public/estimateGas#usage\",\"html\":\"\\n// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, publicClient } from './config'\\n \\nconst gas = await publicClient.estimateGas({ \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})bigint
The gas estimate (in gas).
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#returns\",\"isPage\":false,\"text\":\"\\nbigint\\nThe gas estimate (in gas).\\n\",\"title\":\"Returns\",\"titles\":[\"estimateGas\"]},{\"href\":\"/docs/actions/public/estimateGas#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"estimateGas\"]},{\"href\":\"/docs/actions/public/estimateGas#account\",\"html\":\"\\nAccount | AddressThe Account to estimate gas from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to estimate gas from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"account\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#data-optional\",\"html\":\"\\n0x${string}Contract code or a hashed method call with encoded args.
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n data: '0x...', \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nContract code or a hashed method call with encoded args.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n data: '0x...', \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#gasprice-optional\",\"html\":\"\\nbigintThe price (in wei) to pay per gas. Only applies to Legacy Transactions.
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#to-optional\",\"html\":\"\\nAddressTransaction recipient.
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#to-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nTransaction recipient.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n})\\n\",\"title\":\"to (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#value-optional\",\"html\":\"\\nbigintValue (in wei) sent with this transaction.
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue (in wei) sent with this transaction.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"value (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#blocknumber-optional\",\"html\":\"\\nnumberThe block number to perform the gas estimate against.
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#blocknumber-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe block number to perform the gas estimate against.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"blockNumber (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#blocktag-optional\",\"html\":\"\\n'latest' | 'earliest' | 'pending' | 'safe' | 'finalized''latest'The block tag to perform the gas estimate against.
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#blocktag-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 'latest' | 'earliest' | 'pending' | 'safe' | 'finalized'\\nDefault: 'latest'\\n\\nThe block tag to perform the gas estimate against.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"blockTag (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#stateoverride-optional\",\"html\":\"\\nStateOverrideThe state override set is an optional address-to-state mapping, where each entry specifies some state to be ephemerally overridden prior to executing the call.
\\nconst data = await publicClient.estimateGas({\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n stateOverride: [ \\n { \\n address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n balance: parseEther('1'), \\n stateDiff: [ \\n { \\n slot: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0', \\n value: '0x00000000000000000000000000000000000000000000000000000000000001a4', \\n }, \\n ], \\n } \\n ], \\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#stateoverride-optional\",\"isPage\":false,\"text\":\"\\n\\nType: StateOverride\\n\\nThe state override set is an optional address-to-state mapping, where each entry specifies some state to be ephemerally overridden prior to executing the call.\\nconst data = await publicClient.estimateGas({\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n stateOverride: [ \\n { \\n address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n balance: parseEther('1'), \\n stateDiff: [ \\n { \\n slot: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0', \\n value: '0x00000000000000000000000000000000000000000000000000000000000001a4', \\n }, \\n ], \\n } \\n ], \\n})\\n\",\"title\":\"stateOverride (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#json-rpc-methods\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#json-rpc-methods\",\"isPage\":false,\"text\":\"\\neth_estimateGas\",\"title\":\"JSON-RPC Methods\",\"titles\":[\"estimateGas\"]}]}}"
+"{\"value\":{\"mdx\":\"# estimateGas [An Action for estimating gas for a transaction.]\\n\\nEstimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, publicClient } from './config'\\n\\nconst gas = await publicClient.estimateGas({ // [!code focus:7]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n// export const account = privateKeyToAccount('0x...')\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`bigint`\\n\\nThe gas estimate (in gas).\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to estimate gas from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nContract code or a hashed method call with encoded args which can be generated using [encodeFunctionData](/docs/contract/encodeFunctionData).\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n data: '0x...', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### to (optional)\\n\\n- **Type:** [`Address`](/docs/glossary/types#address)\\n\\nTransaction recipient.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1')\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue (in wei) sent with this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') // [!code focus]\\n})\\n```\\n\\n### blockNumber (optional)\\n\\n- **Type:** `number`\\n\\nThe block number to perform the gas estimate against.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### blockTag (optional)\\n\\n- **Type:** `'latest' | 'earliest' | 'pending' | 'safe' | 'finalized'`\\n- **Default:** `'latest'`\\n\\nThe block tag to perform the gas estimate against.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### stateOverride (optional)\\n\\n- **Type:** [`StateOverride`](/docs/glossary/types#stateoverride)\\n\\nThe state override set is an optional address-to-state mapping, where each entry specifies some state to be ephemerally overridden prior to executing the call.\\n\\n```ts\\nconst data = await publicClient.estimateGas({\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n stateOverride: [ // [!code focus]\\n { // [!code focus]\\n address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n balance: parseEther('1'), // [!code focus]\\n stateDiff: [ // [!code focus]\\n { // [!code focus]\\n slot: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0', // [!code focus]\\n value: '0x00000000000000000000000000000000000000000000000000000000000001a4', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n } // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n## JSON-RPC Methods\\n\\n[`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\\n\",\"document\":[{\"href\":\"/docs/actions/public/estimateGas#estimategas\",\"html\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#estimategas\",\"isPage\":true,\"text\":\"An Action for estimating gas for a transaction.\\nEstimates the gas necessary to complete a transaction without submitting it to the network.\\n\",\"title\":\"estimateGas\",\"titles\":[]},{\"href\":\"/docs/actions/public/estimateGas#usage\",\"html\":\"\\n// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, publicClient } from './config'\\n \\nconst gas = await publicClient.estimateGas({ \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})bigint
The gas estimate (in gas).
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#returns\",\"isPage\":false,\"text\":\"\\nbigint\\nThe gas estimate (in gas).\\n\",\"title\":\"Returns\",\"titles\":[\"estimateGas\"]},{\"href\":\"/docs/actions/public/estimateGas#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"estimateGas\"]},{\"href\":\"/docs/actions/public/estimateGas#account\",\"html\":\"\\nAccount | AddressThe Account to estimate gas from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to estimate gas from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"account\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#data-optional\",\"html\":\"\\n0x${string}Contract code or a hashed method call with encoded args which can be generated using encodeFunctionData.
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n data: '0x...', \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nContract code or a hashed method call with encoded args which can be generated using encodeFunctionData.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n data: '0x...', \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#gasprice-optional\",\"html\":\"\\nbigintThe price (in wei) to pay per gas. Only applies to Legacy Transactions.
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#to-optional\",\"html\":\"\\nAddressTransaction recipient.
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#to-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nTransaction recipient.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n})\\n\",\"title\":\"to (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#value-optional\",\"html\":\"\\nbigintValue (in wei) sent with this transaction.
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue (in wei) sent with this transaction.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"value (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#blocknumber-optional\",\"html\":\"\\nnumberThe block number to perform the gas estimate against.
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#blocknumber-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe block number to perform the gas estimate against.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"blockNumber (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#blocktag-optional\",\"html\":\"\\n'latest' | 'earliest' | 'pending' | 'safe' | 'finalized''latest'The block tag to perform the gas estimate against.
\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#blocktag-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 'latest' | 'earliest' | 'pending' | 'safe' | 'finalized'\\nDefault: 'latest'\\n\\nThe block tag to perform the gas estimate against.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"blockTag (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#stateoverride-optional\",\"html\":\"\\nStateOverrideThe state override set is an optional address-to-state mapping, where each entry specifies some state to be ephemerally overridden prior to executing the call.
\\nconst data = await publicClient.estimateGas({\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n stateOverride: [ \\n { \\n address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n balance: parseEther('1'), \\n stateDiff: [ \\n { \\n slot: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0', \\n value: '0x00000000000000000000000000000000000000000000000000000000000001a4', \\n }, \\n ], \\n } \\n ], \\n})\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#stateoverride-optional\",\"isPage\":false,\"text\":\"\\n\\nType: StateOverride\\n\\nThe state override set is an optional address-to-state mapping, where each entry specifies some state to be ephemerally overridden prior to executing the call.\\nconst data = await publicClient.estimateGas({\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n stateOverride: [ \\n { \\n address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n balance: parseEther('1'), \\n stateDiff: [ \\n { \\n slot: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0', \\n value: '0x00000000000000000000000000000000000000000000000000000000000001a4', \\n }, \\n ], \\n } \\n ], \\n})\\n\",\"title\":\"stateOverride (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#json-rpc-methods\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#json-rpc-methods\",\"isPage\":false,\"text\":\"\\neth_estimateGas\",\"title\":\"JSON-RPC Methods\",\"titles\":[\"estimateGas\"]}]}}"
diff --git a/site/.cache/search.index.c58d5c8aefb92c03188f626437b3ce0f3c3a4bf658501cf7cfadb19a6d6940d5.json b/site/.cache/search.index.c58d5c8aefb92c03188f626437b3ce0f3c3a4bf658501cf7cfadb19a6d6940d5.json
index 791ad24463..d0b8b7a41d 100644
--- a/site/.cache/search.index.c58d5c8aefb92c03188f626437b3ce0f3c3a4bf658501cf7cfadb19a6d6940d5.json
+++ b/site/.cache/search.index.c58d5c8aefb92c03188f626437b3ce0f3c3a4bf658501cf7cfadb19a6d6940d5.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Executes batches of call(s) on an ERC-7821-compatible contract.\\n---\\n\\n# executeBatches\\n\\nExecutes batches of call(s) using the [\\\"batch of batches\\\" mode](https://eips.ethereum.org/EIPS/eip-7821#optional-batch-of-batches-mode) on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\\n\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n## Return Value\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nA [Transaction Hash](/docs/glossary/terms#hash).\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nAccount to invoke the execution of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc). If set to `null`, it is assumed that the transport will handle filling the sender of the transaction.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### address\\n\\n- **Type:** `0x${string}`\\n\\nAddress of the contract to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### batches\\n\\n- **Type:** `{ calls: Call[], opData?: Hex }[]`\\n\\nSet of call batches to execute.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n### batches.calls\\n\\n- **Type:** `Call[]`\\n\\nSet of calls in a batch to execute.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n },\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n },\\n ], \\n})\\n```\\n\\n### batches.opData (optional)\\n\\n- **Type:** `Hex`\\n\\nAdditional data to pass to execution.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', // [!code focus]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nChain to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, // [!code focus]\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\\n```\\n\\n\",\"document\":[{\"href\":\"/experimental/erc7821/executeBatches#executebatches\",\"html\":\"\\nExecutes batches of call(s) using the "batch of batches" mode on an ERC-7821-compatible contract.
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#executebatches\",\"isPage\":true,\"text\":\"\\nExecutes batches of call(s) using the "batch of batches" mode on an ERC-7821-compatible contract.\\n\",\"title\":\"executeBatches\",\"titles\":[]},{\"href\":\"/experimental/erc7821/executeBatches#usage\",\"html\":\"\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ \\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())Account | Address | nullAccount to invoke the execution of the calls.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nAccount to invoke the execution of the calls.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#address\",\"html\":\"\\n0x${string}Address of the contract to execute the calls on.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nAddress of the contract to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"address\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#batches\",\"html\":\"\\n{ calls: Call[], opData?: Hex }[]Set of call batches to execute.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ \\n { \\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n ] \\n }, \\n { \\n calls: [ \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n }, \\n ], \\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#batches\",\"isPage\":false,\"text\":\"\\n\\nType: { calls: Call[], opData?: Hex }[]\\n\\nSet of call batches to execute.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ \\n { \\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n ] \\n }, \\n { \\n calls: [ \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n }, \\n ], \\n})\\n\",\"title\":\"batches\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#batchescalls\",\"html\":\"\\nCall[]Set of calls in a batch to execute.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n ] \\n },\\n {\\n calls: [ \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n },\\n ], \\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#batchescalls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nSet of calls in a batch to execute.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n ] \\n },\\n {\\n calls: [ \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n },\\n ], \\n})\\n\",\"title\":\"batches.calls\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#batchesopdata-optional\",\"html\":\"\\nHexAdditional data to pass to execution.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', \\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#batchesopdata-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nAdditional data to pass to execution.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', \\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"batches.opData (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#authorizationlist-optional\",\"html\":\"\\nAuthorizationListSigned EIP-7702 Authorization list.
\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], \\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\\n\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], \\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#chain-optional\",\"html\":\"\\nChainclient.chainChain to execute the calls on.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, \\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nChain to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, \\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#gasprice-optional\",\"html\":\"\\nbigintThe price (in wei) to pay per gas.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), \\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei).
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n})\",\"id\":\"pages/experimental/erc7821/executeBatches.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei).\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n})\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\ndescription: Executes batches of call(s) on an ERC-7821-compatible contract.\\n---\\n\\n# executeBatches\\n\\nExecutes batches of call(s) using the [\\\"batch of batches\\\" mode](https://eips.ethereum.org/EIPS/eip-7821#optional-batch-of-batches-mode) on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\\n\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n## Return Value\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nA [Transaction Hash](/docs/glossary/terms#hash).\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nAccount to invoke the execution of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc). If set to `null`, it is assumed that the transport will handle filling the sender of the transaction.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### address\\n\\n- **Type:** `0x${string}`\\n\\nAddress of the contract to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### batches\\n\\n- **Type:** `{ calls: Call[], opData?: Hex }[]`\\n\\nSet of call batches to execute.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n### batches.calls\\n\\n- **Type:** `Call[]`\\n\\nSet of calls in a batch to execute.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n },\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n },\\n ], \\n})\\n```\\n\\n### batches.opData (optional)\\n\\n- **Type:** `Hex`\\n\\nAdditional data to pass to execution.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', // [!code focus]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nChain to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, // [!code focus]\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\\n```\\n\\n\",\"document\":[{\"href\":\"/experimental/erc7821/executeBatches#executebatches\",\"html\":\"\\nExecutes batches of call(s) using the "batch of batches" mode on an ERC-7821-compatible contract.
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#executebatches\",\"isPage\":true,\"text\":\"\\nExecutes batches of call(s) using the "batch of batches" mode on an ERC-7821-compatible contract.\\n\",\"title\":\"executeBatches\",\"titles\":[]},{\"href\":\"/experimental/erc7821/executeBatches#usage\",\"html\":\"\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ \\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())Account | Address | nullAccount to invoke the execution of the calls.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nAccount to invoke the execution of the calls.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#address\",\"html\":\"\\n0x${string}Address of the contract to execute the calls on.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nAddress of the contract to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"address\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#batches\",\"html\":\"\\n{ calls: Call[], opData?: Hex }[]Set of call batches to execute.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ \\n { \\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n ] \\n }, \\n { \\n calls: [ \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n }, \\n ], \\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#batches\",\"isPage\":false,\"text\":\"\\n\\nType: { calls: Call[], opData?: Hex }[]\\n\\nSet of call batches to execute.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ \\n { \\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n ] \\n }, \\n { \\n calls: [ \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n }, \\n ], \\n})\\n\",\"title\":\"batches\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#batchescalls\",\"html\":\"\\nCall[]Set of calls in a batch to execute.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n ] \\n },\\n {\\n calls: [ \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n },\\n ], \\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#batchescalls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nSet of calls in a batch to execute.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n ] \\n },\\n {\\n calls: [ \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n },\\n ], \\n})\\n\",\"title\":\"batches.calls\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#batchesopdata-optional\",\"html\":\"\\nHexAdditional data to pass to execution.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', \\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#batchesopdata-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nAdditional data to pass to execution.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', \\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"batches.opData (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#authorizationlist-optional\",\"html\":\"\\nAuthorizationListSigned EIP-7702 Authorization list.
\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], \\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\\n\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], \\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#chain-optional\",\"html\":\"\\nChainclient.chainChain to execute the calls on.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, \\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nChain to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, \\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#gasprice-optional\",\"html\":\"\\nbigintThe price (in wei) to pay per gas.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), \\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei).
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n})\",\"id\":\"pages/experimental/erc7821/executeBatches.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei).\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n})\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.c83117d3b762c7f0fc98169a2df7ff5cd1538e47114b31ebba2686bd5cc986a2.json b/site/.cache/search.index.c83117d3b762c7f0fc98169a2df7ff5cd1538e47114b31ebba2686bd5cc986a2.json
deleted file mode 100644
index 7e9c964d2d..0000000000
--- a/site/.cache/search.index.c83117d3b762c7f0fc98169a2df7ff5cd1538e47114b31ebba2686bd5cc986a2.json
+++ /dev/null
@@ -1 +0,0 @@
-"{\"value\":{\"mdx\":\"# Sending Transactions with EIP-7702\\n\\nThe guide below demonstrates how to send EIP-7702 Transactions to invoke Contract functions on an Externally Owned Account.\\n\\n## Overview\\n\\nHere is an end-to-end overview of how to broadcast an EIP-7702 Transaction to emit a simple event on the EOA's designated contract. We will break it down into [Steps](#steps) below.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'execute',\\n args: [\\n [\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001'),\\n },\\n {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }, \\n ],\\n ]\\n }),\\n to: walletClient.account.address,\\n})\\n```\\n\\n```ts twoslash [contract.ts] filename=\\\"contract.ts\\\"\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n```solidity [BatchCallDelegation.sol]\\npragma solidity ^0.8.20;\\n\\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n\\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, \\\"call reverted\\\");\\n }\\n }\\n}\\n```\\n\\n:::\\n\\n:::warning\\nEIP-7702 is currently not supported on Ethereum anvil or Testnets. For this example, we are using the `anvil` chain which interfaces with an [Anvil node](https://book.getfoundry.sh/anvil/) (a local Ethereum network).\\n:::\\n\\n## Steps\\n\\n### 0. Install & Run Anvil\\n\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an [Anvil node](https://book.getfoundry.sh/anvil/) for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.\\n\\n```bash\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n```\\n\\n### 1. Set up Smart Contract\\n\\nWe will need to set up a Smart Contract to interact with. For the purposes of this guide, we will [create](https://book.getfoundry.sh/reference/forge/forge-init) and [deploy](https://book.getfoundry.sh/forge/deploying) a `BatchCallDelegation.sol` contract, however, you can use any existing deployed contract.\\n\\nFirstly, [deploy a Contract](https://book.getfoundry.sh/forge/deploying) to the Network with the following source:\\n\\n```solidity [BatchCallDelegation.sol]\\npragma solidity ^0.8.20;\\n\\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n\\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, \\\"call reverted\\\");\\n }\\n }\\n}\\n```\\n\\n:::warning\\n\\n**DO NOT USE IN PRODUCTION**\\n\\nThis contract is for demonstration purposes only to show how EIP-7702 works. If [someone else (Sponsor Account) is executing calls](#5-optional-use-a-sponsor) on behalf of the Account, it does not implement a nonce & signature verification mechanism to prevent replay attacks.\\n\\n:::\\n\\n### 2. Set up Client & Account\\n\\nNext, we will need to set up a Client and Externally Owned Account to sign EIP-7702 Authorizations.\\n\\nThis code snippet uses the [Extending Client](/experimental/eip7702/client) guide.\\n\\n```ts twoslash [config.ts]\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n### 3. Authorize Contract Designation\\n\\nWe will need to sign an Authorization to designate the Contract to the Account.\\n\\nIn the example below, we are using the `account` attached to the `walletClient` to sign the Authorization – this will be the Account that the Contract's bytecode will be injected into.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n contractAddress, // [!code focus]\\n}) // [!code focus]\\n```\\n\\n```ts twoslash [contract.ts] filename=\\\"contract.ts\\\"\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n```\\n\\n```ts twoslash [config.ts]\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n### 4. Invoke Contract Function\\n\\nWe can now perform batch calls by sending a Transaction to the Account (`account`) with the Authorization (`authorizationList`).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.sendTransaction({ // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n data: encodeFunctionData({ // [!code focus]\\n abi, // [!code focus]\\n functionName: 'execute', // [!code focus]\\n args: [ // [!code focus]\\n [ // [!code focus]\\n { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n value: parseEther('0.001'), // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', // [!code focus]\\n value: parseEther('0.002'), // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n ] // [!code focus]\\n }), // [!code focus]\\n to: walletClient.account.address, // [!code focus]\\n}) // [!code focus]\\n```\\n\\n```ts twoslash [contract.ts] filename=\\\"contract.ts\\\"\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n```\\n\\n```ts twoslash [config.ts]\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n### 5. Optional: Use a Sponsor\\n\\nWe can also utilize an Sponsor Account to execute a call on behalf of the authorizing Account. This is useful for cases where we want to \\\"sponsor\\\" the Transaction for the user (i.e. pay for their gas fees).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst sponsor = privateKeyToAccount('0x...') // [!code ++]\\n\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n sponsor, // [!code ++]\\n})\\n\\nconst hash = await walletClient.sendTransaction({\\n account: sponsor, // [!code ++]\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'execute',\\n args: [\\n [\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001'),\\n },\\n {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\\n value: parseEther('0.002'),\\n },\\n ],\\n ]\\n }),\\n to: walletClient.account.address,\\n})\\n```\\n\\n```ts twoslash [config.ts]\\n// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n```ts twoslash [contract.ts] filename=\\\"contract.ts\\\"\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n```\\n\\n:::\",\"document\":[{\"href\":\"/experimental/eip7702/sending-transactions#sending-transactions-with-eip-7702\",\"html\":\"\\nThe guide below demonstrates how to send EIP-7702 Transactions to invoke Contract functions on an Externally Owned Account.
\\n\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#sending-transactions-with-eip-7702\",\"isPage\":true,\"text\":\"\\nThe guide below demonstrates how to send EIP-7702 Transactions to invoke Contract functions on an Externally Owned Account.\\n\",\"title\":\"Sending Transactions with EIP-7702\",\"titles\":[]},{\"href\":\"/experimental/eip7702/sending-transactions#overview\",\"html\":\"\\nHere is an end-to-end overview of how to broadcast an EIP-7702 Transaction to emit a simple event on the EOA's designated contract. We will break it down into Steps below.
\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n \\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'execute',\\n args: [\\n [\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001'),\\n },\\n {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }, \\n ],\\n ]\\n }),\\n to: walletClient.account.address,\\n})export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())pragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n \\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, "call reverted");\\n }\\n }\\n}EIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an Anvil node for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.
\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#0-install--run-anvil\",\"isPage\":false,\"text\":\"\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an Anvil node for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n\",\"title\":\"0. Install & Run Anvil\",\"titles\":[\"Sending Transactions with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/sending-transactions#1-set-up-smart-contract\",\"html\":\"\\nWe will need to set up a Smart Contract to interact with. For the purposes of this guide, we will create and deploy a BatchCallDelegation.sol contract, however, you can use any existing deployed contract.
Firstly, deploy a Contract to the Network with the following source:
\\npragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n \\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, "call reverted");\\n }\\n }\\n}\\n\\n\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#1-set-up-smart-contract\",\"isPage\":false,\"text\":\"\\nWe will need to set up a Smart Contract to interact with. For the purposes of this guide, we will create and deploy a BatchCallDelegation.sol contract, however, you can use any existing deployed contract.\\nFirstly, deploy a Contract to the Network with the following source:\\npragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n \\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, "call reverted");\\n }\\n }\\n}\\nDO NOT USE IN PRODUCTIONThis contract is for demonstration purposes only to show how EIP-7702 works. If someone else (Sponsor Account) is executing calls on behalf of the Account, it does not implement a nonce & signature verification mechanism to prevent replay attacks.\\n\",\"title\":\"1. Set up Smart Contract\",\"titles\":[\"Sending Transactions with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/sending-transactions#2-set-up-client--account\",\"html\":\"\\nNext, we will need to set up a Client and Externally Owned Account to sign EIP-7702 Authorizations.
\\nThis code snippet uses the Extending Client guide.
\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#2-set-up-client--account\",\"isPage\":false,\"text\":\"\\nNext, we will need to set up a Client and Externally Owned Account to sign EIP-7702 Authorizations.\\nThis code snippet uses the Extending Client guide.\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"2. Set up Client & Account\",\"titles\":[\"Sending Transactions with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/sending-transactions#3-authorize-contract-designation\",\"html\":\"\\nWe will need to sign an Authorization to designate the Contract to the Account.
\\nIn the example below, we are using the account attached to the walletClient to sign the Authorization – this will be the Account that the Contract's bytecode will be injected into.
// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({ \\n contractAddress, \\n}) export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())We can now perform batch calls by sending a Transaction to the Account (account) with the Authorization (authorizationList).
// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n \\nconst hash = await walletClient.sendTransaction({ \\n authorizationList: [authorization], \\n data: encodeFunctionData({ \\n abi, \\n functionName: 'execute', \\n args: [ \\n [ \\n { \\n data: '0x', \\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, \\n { \\n data: '0x', \\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }, \\n ], \\n ] \\n }), \\n to: walletClient.account.address, \\n}) export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())We can also utilize an Sponsor Account to execute a call on behalf of the authorizing Account. This is useful for cases where we want to "sponsor" the Transaction for the user (i.e. pay for their gas fees).
\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst sponsor = privateKeyToAccount('0x...') \\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n sponsor, \\n})\\n \\nconst hash = await walletClient.sendTransaction({\\n account: sponsor, \\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'execute',\\n args: [\\n [\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001'),\\n },\\n {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\\n value: parseEther('0.002'),\\n },\\n ],\\n ]\\n }),\\n to: walletClient.account.address,\\n})// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'To use the experimental functionality of EIP-7702, you must extend your existing (or new) Viem Client with experimental EIP-7702 Actions.
\\n\",\"id\":\"pages/experimental/eip7702/client.md#extending-client-with-eip-7702\",\"isPage\":true,\"text\":\"Setting up your Viem Client\\nTo use the experimental functionality of EIP-7702, you must extend your existing (or new) Viem Client with experimental EIP-7702 Actions.\\n\",\"title\":\"Extending Client with EIP-7702\",\"titles\":[]},{\"href\":\"/experimental/eip7702/client#overview\",\"html\":\"\\nHere is an end-to-end overview of how to extend a Viem Client with EIP-7702 Actions. We will break it down into Steps below.
\\n// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n \\nconst authorization = await walletClient.signAuthorization({/* ... */})\\n\\n\",\"id\":\"pages/experimental/eip7702/client.md#overview\",\"isPage\":false,\"text\":\"\\nHere is an end-to-end overview of how to extend a Viem Client with EIP-7702 Actions. We will break it down into Steps below.\\n// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n \\nconst authorization = await walletClient.signAuthorization({/* ... */})\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets. For this example, we are using the anvil chain which interfaces with an Anvil node (a local Ethereum network).\\n\",\"title\":\"Overview\",\"titles\":[\"Extending Client with EIP-7702\"]},{\"href\":\"/experimental/eip7702/client#steps\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/client.md#steps\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Steps\",\"titles\":[\"Extending Client with EIP-7702\"]},{\"href\":\"/experimental/eip7702/client#0-install--run-anvil\",\"html\":\"\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an Anvil node for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.
\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n\",\"id\":\"pages/experimental/eip7702/client.md#0-install--run-anvil\",\"isPage\":false,\"text\":\"\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an Anvil node for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n\",\"title\":\"0. Install & Run Anvil\",\"titles\":[\"Extending Client with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/client#1-set-up-a-client\",\"html\":\"\\nWe will need to set up a Client to sign EIP-7702 Authorizations.
\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n})\\n\\n\",\"id\":\"pages/experimental/eip7702/client.md#1-set-up-a-client\",\"isPage\":false,\"text\":\"\\nWe will need to set up a Client to sign EIP-7702 Authorizations.\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n})\\nSee createWalletClient Docs\\n\",\"title\":\"1. Set up a Client\",\"titles\":[\"Extending Client with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/client#2-extend-with-eip-7702-actions\",\"html\":\"\\nNext, we will import the experimental EIP-7702 Actions and extend them on our Client.
\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions()) \\n\",\"id\":\"pages/experimental/eip7702/client.md#2-extend-with-eip-7702-actions\",\"isPage\":false,\"text\":\"\\nNext, we will import the experimental EIP-7702 Actions and extend them on our Client.\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions()) \\n\",\"title\":\"2. Extend with EIP-7702 Actions\",\"titles\":[\"Extending Client with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/client#3-use-eip-7702-actions\",\"html\":\"\\nNow we can use EIP-7702 Actions like signAuthorization.
// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental' \\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions()) \\n \\nconst authorization = await walletClient.signAuthorization({/* ... */}) \",\"id\":\"pages/experimental/eip7702/client.md#3-use-eip-7702-actions\",\"isPage\":false,\"text\":\"\\nNow we can use EIP-7702 Actions like signAuthorization.\\n// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental' \\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions()) \\n \\nconst authorization = await walletClient.signAuthorization({/* ... */}) \",\"title\":\"3. Use EIP-7702 Actions\",\"titles\":[\"Extending Client with EIP-7702\",\"Steps\"]}]}}"
diff --git a/site/.cache/search.index.c91b7a8da60524fb1cafe85f1576c5039df09a978fac3ef66667fd3d47d07b94.json b/site/.cache/search.index.c91b7a8da60524fb1cafe85f1576c5039df09a978fac3ef66667fd3d47d07b94.json
index 5d9370ebb7..bf78925b61 100644
--- a/site/.cache/search.index.c91b7a8da60524fb1cafe85f1576c5039df09a978fac3ef66667fd3d47d07b94.json
+++ b/site/.cache/search.index.c91b7a8da60524fb1cafe85f1576c5039df09a978fac3ef66667fd3d47d07b94.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Sign and broadcast a batch of calls to the network. \\n---\\n\\n# sendCalls\\n\\nRequests for the wallet to sign and broadcast a batch of calls (transactions) to the network. \\n\\n[Read more.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_sendcalls)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ // [!code focus:99]\\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\nNotes:\\n\\n- `account` and `chain` are top level properties as all calls should be sent by the same account and chain.\\n- Properties of `calls` items are only those shared by all transaction types (e.g. `data`, `to`, `value`). The Wallet should handle other required properties like gas & fees.\\n- [Read `wallet_sendCalls` on EIP-5792.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_sendcalls)\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst id = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [abi.ts] filename=\\\"abi.ts\\\"\\nexport const wagmiAbi = [\\n // ...\\n {\\n inputs: [],\\n name: \\\"mint\\\",\\n outputs: [],\\n stateMutability: \\\"nonpayable\\\",\\n type: \\\"function\\\",\\n },\\n // ...\\n] as const;\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`string`\\n\\nThe identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call `getCallsStatus` with this identifier to retrieve a batch call status and call receipts.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nThe Account to sign & broadcast the call from. If set to `null`, it is assumed that the wallet will handle filling the sender of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### chain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain to broadcast the calls.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet, // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### calls\\n\\n- **Type:** `Call[]`\\n\\nAn array of calls to be signed and broadcasted.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n#### calls.data\\n\\n- **Type:** `Hex`\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n#### calls.to\\n\\n- **Type:** `Address`\\n\\nRecipient address of the call.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\\n```\\n\\n#### calls.value\\n\\n- **Type:** `Address`\\n\\nValue to send with the call.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### capabilities \\n\\n- **Type:** `WalletCapabilities`\\n\\nCapability metadata for the calls (e.g. specifying a paymaster).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { // [!code focus]\\n paymasterService: { // [!code focus]\\n url: 'https://...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\\n```\\n\",\"document\":[{\"href\":\"/experimental/eip5792/sendCalls#sendcalls\",\"html\":\"\\nRequests for the wallet to sign and broadcast a batch of calls (transactions) to the network.
\\n\\n\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#sendcalls\",\"isPage\":true,\"text\":\"\\nRequests for the wallet to sign and broadcast a batch of calls (transactions) to the network.\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"sendCalls\",\"titles\":[]},{\"href\":\"/experimental/eip5792/sendCalls#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ \\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()Notes:
\\naccount and chain are top level properties as all calls should be sent by the same account and chain.calls items are only those shared by all transaction types (e.g. data, to, value). The Wallet should handle other required properties like gas & fees.wallet_sendCalls on EIP-5792.If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst id = await walletClient.sendCalls({ \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})export const wagmiAbi = [\\n // ...\\n {\\n inputs: [],\\n name: "mint",\\n outputs: [],\\n stateMutability: "nonpayable",\\n type: "function",\\n },\\n // ...\\n] as const;import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())string
The identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call getCallsStatus with this identifier to retrieve a batch call status and call receipts.
Account | Address | nullThe Account to sign & broadcast the call from. If set to null, it is assumed that the wallet will handle filling the sender of the calls.
Accepts a JSON-RPC Account.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nThe Account to sign & broadcast the call from. If set to null, it is assumed that the wallet will handle filling the sender of the calls.\\nAccepts a JSON-RPC Account.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#chain\",\"html\":\"\\nChainwalletClient.chainThe target chain to broadcast the calls.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet, \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#chain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain to broadcast the calls.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet, \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"chain\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#calls\",\"html\":\"\\nCall[]An array of calls to be signed and broadcasted.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#calls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nAn array of calls to be signed and broadcasted.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#callsdata\",\"html\":\"\\nHexCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#callsdata\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"calls.data\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/eip5792/sendCalls#callsto\",\"html\":\"\\nAddressRecipient address of the call.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#callsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nRecipient address of the call.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"title\":\"calls.to\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/eip5792/sendCalls#callsvalue\",\"html\":\"\\nAddressValue to send with the call.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#callsvalue\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nValue to send with the call.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"calls.value\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/eip5792/sendCalls#capabilities\",\"html\":\"\\nWalletCapabilitiesCapability metadata for the calls (e.g. specifying a paymaster).
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { \\n paymasterService: { \\n url: 'https://...'\\n } \\n } \\n})\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#capabilities\",\"isPage\":false,\"text\":\"\\n\\nType: WalletCapabilities\\n\\nCapability metadata for the calls (e.g. specifying a paymaster).\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { \\n paymasterService: { \\n url: 'https://...'\\n } \\n } \\n})\",\"title\":\"capabilities\",\"titles\":[\"sendCalls\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\ndescription: Sign and broadcast a batch of calls to the network. \\n---\\n\\n# sendCalls\\n\\nRequests for the wallet to sign and broadcast a batch of calls to the network. \\n\\n[Read more.](https://eips.ethereum.org/EIPS/eip-5792#wallet_sendcalls)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\nNotes:\\n\\n- `account` and `chain` are top level properties as all calls should be sent by the same account and chain.\\n- Properties of `calls` items are only those shared by all transaction types (e.g. `data`, `to`, `value`). The Wallet should handle other required properties like gas & fees.\\n- [Read `wallet_sendCalls` on EIP-5792.](https://eips.ethereum.org/EIPS/eip-5792#wallet_sendcalls)\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [abi.ts] filename=\\\"abi.ts\\\"\\nexport const wagmiAbi = [\\n // ...\\n {\\n inputs: [],\\n name: \\\"mint\\\",\\n outputs: [],\\n stateMutability: \\\"nonpayable\\\",\\n type: \\\"function\\\",\\n },\\n // ...\\n] as const;\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`{ id: string, capabilities?: WalletCapabilities }`\\n\\nThe identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call `getCallsStatus` with this identifier to retrieve a batch call status and call receipts.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nThe Account to sign & broadcast the call from. If set to `null`, it is assumed that the wallet will handle filling the sender of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### chain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain to broadcast the calls.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### calls\\n\\n- **Type:** `Call[]`\\n\\nAn array of calls to be signed and broadcasted.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n#### calls.data\\n\\n- **Type:** `Hex`\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n#### calls.to\\n\\n- **Type:** `Address`\\n\\nRecipient address of the call.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\\n```\\n\\n#### calls.value\\n\\n- **Type:** `Address`\\n\\nValue to send with the call.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### capabilities \\n\\n- **Type:** `WalletCapabilities`\\n\\nCapability metadata for the calls (e.g. specifying a paymaster).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { // [!code focus]\\n paymasterService: { // [!code focus]\\n url: 'https://...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\\n```\\n\\n### forceAtomic\\n\\n- **Type:** `boolean`\\n- **Default:** `false`\\n\\nForce the calls to be executed atomically. [See more](https://eips.ethereum.org/EIPS/eip-5792#call-execution-atomicity)\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, // [!code focus]\\n})\\n```\\n\\n### id\\n\\n- **Type:** `string`\\n\\nAttribute the call batch with an identifier.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: 'Requests for the wallet to sign and broadcast a batch of calls to the network.
\\n\\n\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#sendcalls\",\"isPage\":true,\"text\":\"\\nRequests for the wallet to sign and broadcast a batch of calls to the network.\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"sendCalls\",\"titles\":[]},{\"href\":\"/experimental/eip5792/sendCalls#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ \\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()Notes:
\\naccount and chain are top level properties as all calls should be sent by the same account and chain.calls items are only those shared by all transaction types (e.g. data, to, value). The Wallet should handle other required properties like gas & fees.wallet_sendCalls on EIP-5792.If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})export const wagmiAbi = [\\n // ...\\n {\\n inputs: [],\\n name: "mint",\\n outputs: [],\\n stateMutability: "nonpayable",\\n type: "function",\\n },\\n // ...\\n] as const;import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions()){ id: string, capabilities?: WalletCapabilities }
The identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call getCallsStatus with this identifier to retrieve a batch call status and call receipts.
Account | Address | nullThe Account to sign & broadcast the call from. If set to null, it is assumed that the wallet will handle filling the sender of the calls.
Accepts a JSON-RPC Account.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nThe Account to sign & broadcast the call from. If set to null, it is assumed that the wallet will handle filling the sender of the calls.\\nAccepts a JSON-RPC Account.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#chain\",\"html\":\"\\nChainwalletClient.chainThe target chain to broadcast the calls.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#chain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain to broadcast the calls.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"chain\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#calls\",\"html\":\"\\nCall[]An array of calls to be signed and broadcasted.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#calls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nAn array of calls to be signed and broadcasted.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#callsdata\",\"html\":\"\\nHexCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#callsdata\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"calls.data\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/eip5792/sendCalls#callsto\",\"html\":\"\\nAddressRecipient address of the call.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#callsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nRecipient address of the call.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"title\":\"calls.to\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/eip5792/sendCalls#callsvalue\",\"html\":\"\\nAddressValue to send with the call.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#callsvalue\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nValue to send with the call.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"calls.value\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/eip5792/sendCalls#capabilities\",\"html\":\"\\nWalletCapabilitiesCapability metadata for the calls (e.g. specifying a paymaster).
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { \\n paymasterService: { \\n url: 'https://...'\\n } \\n } \\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#capabilities\",\"isPage\":false,\"text\":\"\\n\\nType: WalletCapabilities\\n\\nCapability metadata for the calls (e.g. specifying a paymaster).\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { \\n paymasterService: { \\n url: 'https://...'\\n } \\n } \\n})\\n\",\"title\":\"capabilities\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#forceatomic\",\"html\":\"\\nbooleanfalseForce the calls to be executed atomically. See more
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, \\n})\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#forceatomic\",\"isPage\":false,\"text\":\"\\n\\nType: boolean\\nDefault: false\\n\\nForce the calls to be executed atomically. See more\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, \\n})\\n\",\"title\":\"forceAtomic\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#id\",\"html\":\"\\nstringAttribute the call batch with an identifier.
\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: '<my-batch-id>', \\n})\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nAttribute the call batch with an identifier.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: '<my-batch-id>', \\n})\",\"title\":\"id\",\"titles\":[\"sendCalls\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.d390eddcc31eed0c46933a564a5ec15bcef7d51d685d6d5bd89e4aaba85e8b7b.json b/site/.cache/search.index.d390eddcc31eed0c46933a564a5ec15bcef7d51d685d6d5bd89e4aaba85e8b7b.json
index 1525bc75e8..af9c15bf26 100644
--- a/site/.cache/search.index.d390eddcc31eed0c46933a564a5ec15bcef7d51d685d6d5bd89e4aaba85e8b7b.json
+++ b/site/.cache/search.index.d390eddcc31eed0c46933a564a5ec15bcef7d51d685d6d5bd89e4aaba85e8b7b.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Waits for a call bundle to be confirmed & included on a Block.\\n---\\n\\n# waitForCallsStatus\\n\\nWaits for a call bundle to be confirmed & included on a [Block](/docs/glossary/terms#block) before returning the status & receipts.\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst { status, receipts } = await walletClient.waitForCallsStatus({ // [!code focus]\\n id, // [!code focus]\\n}) // [!code focus]\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WaitForCallsStatusReturnType`\\n\\nStatus and receipts of the calls.\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `string`\\n\\nIdentifier of the call batch.\\n\\n```ts\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', // [!code focus]\\n})\\n```\\n\\n### pollingInterval\\n\\n- **Type:** `number`\\n- **Default:** `client.pollingInterval`\\n\\nPolling interval in milliseconds.\\n\\n```ts\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, // [!code focus]\\n})\\n```\\n\\n### timeout\\n\\n- **Type:** `number`\\n- **Default:** `60_000`\\n\\nTimeout in milliseconds before `waitForCallsStatus` stops polling.\\n\\n```ts\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/experimental/eip5792/waitForCallsStatus#waitforcallsstatus\",\"html\":\"\\nWaits for a call bundle to be confirmed & included on a Block before returning the status & receipts.
\\n\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#waitforcallsstatus\",\"isPage\":true,\"text\":\"\\nWaits for a call bundle to be confirmed & included on a Block before returning the status & receipts.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"waitForCallsStatus\",\"titles\":[]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst { status, receipts } = await walletClient.waitForCallsStatus({ \\n id, \\n}) import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()WaitForCallsStatusReturnType
Status and receipts of the calls.
\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nWaitForCallsStatusReturnType\\nStatus and receipts of the calls.\\n\",\"title\":\"Returns\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#id\",\"html\":\"\\nstringIdentifier of the call batch.
\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', \\n})\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', \\n})\\n\",\"title\":\"id\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#pollinginterval\",\"html\":\"\\nnumberclient.pollingIntervalPolling interval in milliseconds.
\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, \\n})\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#pollinginterval\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: client.pollingInterval\\n\\nPolling interval in milliseconds.\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, \\n})\\n\",\"title\":\"pollingInterval\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#timeout\",\"html\":\"\\nnumber60_000Timeout in milliseconds before waitForCallsStatus stops polling.
const { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, \\n})\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#timeout\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: 60_000\\n\\nTimeout in milliseconds before waitForCallsStatus stops polling.\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, \\n})\",\"title\":\"timeout\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\ndescription: Waits for a call batch to be confirmed & included on a Block.\\n---\\n\\n# waitForCallsStatus\\n\\nWaits for a call batch to be confirmed & included on a [Block](/docs/glossary/terms#block) before returning the status & receipts.\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ // [!code focus]\\n id, // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n// @log: atomic: false,\\n// @log: chainId: 1,\\n// @log: id: '0x1234567890abcdef',\\n// @log: statusCode: 200,\\n// @log: status: 'success',\\n// @log: receipts: [{ ... }],\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WaitForCallsStatusReturnType`\\n\\nStatus and receipts of the calls.\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `string`\\n\\nIdentifier of the call batch.\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', // [!code focus]\\n})\\n```\\n\\n### pollingInterval\\n\\n- **Type:** `number`\\n- **Default:** `client.pollingInterval`\\n\\nPolling interval in milliseconds.\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, // [!code focus]\\n})\\n```\\n\\n### status\\n\\n- **Type:** `(parameters: { statusCode: number, status: string | undefined }) => boolean`\\n- **Default:** `(parameters) => parameters.statusCode >= 200`\\n\\nStatus to wait for. Defaults to non-pending status codes (`>=200`).\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n status: ({ status }) => status === 'success', // [!code focus]\\n})\\n```\\n\\n### timeout\\n\\n- **Type:** `number`\\n- **Default:** `60_000`\\n\\nTimeout in milliseconds before `waitForCallsStatus` stops polling.\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/experimental/eip5792/waitForCallsStatus#waitforcallsstatus\",\"html\":\"\\nWaits for a call batch to be confirmed & included on a Block before returning the status & receipts.
\\n\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#waitforcallsstatus\",\"isPage\":true,\"text\":\"\\nWaits for a call batch to be confirmed & included on a Block before returning the status & receipts.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"waitForCallsStatus\",\"titles\":[]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ \\n id, \\n}) \\n// @log: {\\n \\n// @log: atomic: false,\\n \\n// @log: chainId: 1,\\n \\n// @log: id: '0x1234567890abcdef',\\n \\n// @log: statusCode: 200,\\n \\n// @log: status: 'success',\\n \\n// @log: receipts: [{ ... }],\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()WaitForCallsStatusReturnType
Status and receipts of the calls.
\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nWaitForCallsStatusReturnType\\nStatus and receipts of the calls.\\n\",\"title\":\"Returns\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#id\",\"html\":\"\\nstringIdentifier of the call batch.
\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', \\n})\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', \\n})\\n\",\"title\":\"id\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#pollinginterval\",\"html\":\"\\nnumberclient.pollingIntervalPolling interval in milliseconds.
\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, \\n})\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#pollinginterval\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: client.pollingInterval\\n\\nPolling interval in milliseconds.\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, \\n})\\n\",\"title\":\"pollingInterval\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#status\",\"html\":\"\\n(parameters: { statusCode: number, status: string | undefined }) => boolean(parameters) => parameters.statusCode >= 200Status to wait for. Defaults to non-pending status codes (>=200).
const result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n status: ({ status }) => status === 'success', \\n})\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#status\",\"isPage\":false,\"text\":\"\\n\\nType: (parameters: { statusCode: number, status: string | undefined }) => boolean\\nDefault: (parameters) => parameters.statusCode >= 200\\n\\nStatus to wait for. Defaults to non-pending status codes (>=200).\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n status: ({ status }) => status === 'success', \\n})\\n\",\"title\":\"status\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#timeout\",\"html\":\"\\nnumber60_000Timeout in milliseconds before waitForCallsStatus stops polling.
const result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, \\n})\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#timeout\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: 60_000\\n\\nTimeout in milliseconds before waitForCallsStatus stops polling.\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, \\n})\",\"title\":\"timeout\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.d4041ea6a1c574a6cb7489af5fc2fa02489ff57b6bcfff88ad4aed1f70303c15.json b/site/.cache/search.index.d4041ea6a1c574a6cb7489af5fc2fa02489ff57b6bcfff88ad4aed1f70303c15.json
index ed01321991..0fdb71b591 100644
--- a/site/.cache/search.index.d4041ea6a1c574a6cb7489af5fc2fa02489ff57b6bcfff88ad4aed1f70303c15.json
+++ b/site/.cache/search.index.d4041ea6a1c574a6cb7489af5fc2fa02489ff57b6bcfff88ad4aed1f70303c15.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Executes call(s) using the `execute` function on an ERC-7821-compatible contract.\\n---\\n\\n# execute\\n\\nExecutes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\\n\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n## Return Value\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nA [Transaction Hash](/docs/glossary/terms#hash).\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nAccount to invoke the execution of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc). If set to `null`, it is assumed that the transport will handle filling the sender of the transaction.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### address\\n\\n- **Type:** `0x${string}`\\n\\nAddress of the contract to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### calls\\n\\n- **Type:** `Call[]`\\n\\nSet of calls to execute.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n#### calls.data\\n\\n- **Type:** `Hex`\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n```\\n\\n#### calls.to\\n\\n- **Type:** `Address`\\n\\nRecipient address of the call.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\\n```\\n\\n#### calls.value\\n\\n- **Type:** `Address`\\n\\nValue to send with the call.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nChain to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, // [!code focus]\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\\n```\\n\\n### opData (optional)\\n\\n- **Type:** `Hex`\\n\\nAdditional data to pass to execution.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', // [!code focus]\\n})\\n```\\n\",\"document\":[{\"href\":\"/experimental/erc7821/execute#execute\",\"html\":\"\\nExecutes call(s) using the execute function on an ERC-7821-compatible contract.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())Account | Address | nullAccount to invoke the execution of the calls.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nAccount to invoke the execution of the calls.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#address\",\"html\":\"\\n0x${string}Address of the contract to execute the calls on.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nAddress of the contract to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"address\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#calls\",\"html\":\"\\nCall[]Set of calls to execute.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#calls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nSet of calls to execute.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#callsdata\",\"html\":\"\\nHexCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#callsdata\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls.data\",\"titles\":[\"execute\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/erc7821/execute#callsto\",\"html\":\"\\nAddressRecipient address of the call.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#callsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nRecipient address of the call.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"title\":\"calls.to\",\"titles\":[\"execute\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/erc7821/execute#callsvalue\",\"html\":\"\\nAddressValue to send with the call.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#callsvalue\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nValue to send with the call.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls.value\",\"titles\":[\"execute\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/erc7821/execute#authorizationlist-optional\",\"html\":\"\\nAuthorizationListSigned EIP-7702 Authorization list.
\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], \\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\\n\",\"id\":\"pages/experimental/erc7821/execute.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], \\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#chain-optional\",\"html\":\"\\nChainclient.chainChain to execute the calls on.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nChain to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, \\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#gasprice-optional\",\"html\":\"\\nbigintThe price (in wei) to pay per gas.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei).
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei).\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#opdata-optional\",\"html\":\"\\nHexAdditional data to pass to execution.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', \\n})\",\"id\":\"pages/experimental/erc7821/execute.md#opdata-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nAdditional data to pass to execution.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', \\n})\",\"title\":\"opData (optional)\",\"titles\":[\"execute\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\ndescription: Executes call(s) using the `execute` function on an ERC-7821-compatible contract.\\n---\\n\\n# execute\\n\\nExecutes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\\n\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n## Return Value\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nA [Transaction Hash](/docs/glossary/terms#hash).\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nAccount to invoke the execution of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc). If set to `null`, it is assumed that the transport will handle filling the sender of the transaction.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### address\\n\\n- **Type:** `0x${string}`\\n\\nAddress of the contract to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### calls\\n\\n- **Type:** `Call[]`\\n\\nSet of calls to execute.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n#### calls.data\\n\\n- **Type:** `Hex`\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n```\\n\\n#### calls.to\\n\\n- **Type:** `Address`\\n\\nRecipient address of the call.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\\n```\\n\\n#### calls.value\\n\\n- **Type:** `Address`\\n\\nValue to send with the call.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nChain to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, // [!code focus]\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\\n```\\n\\n### opData (optional)\\n\\n- **Type:** `Hex`\\n\\nAdditional data to pass to execution.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', // [!code focus]\\n})\\n```\\n\",\"document\":[{\"href\":\"/experimental/erc7821/execute#execute\",\"html\":\"\\nExecutes call(s) using the execute function on an ERC-7821-compatible contract.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())Account | Address | nullAccount to invoke the execution of the calls.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nAccount to invoke the execution of the calls.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#address\",\"html\":\"\\n0x${string}Address of the contract to execute the calls on.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nAddress of the contract to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"address\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#calls\",\"html\":\"\\nCall[]Set of calls to execute.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#calls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nSet of calls to execute.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#callsdata\",\"html\":\"\\nHexCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#callsdata\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls.data\",\"titles\":[\"execute\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/erc7821/execute#callsto\",\"html\":\"\\nAddressRecipient address of the call.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#callsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nRecipient address of the call.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"title\":\"calls.to\",\"titles\":[\"execute\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/erc7821/execute#callsvalue\",\"html\":\"\\nAddressValue to send with the call.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#callsvalue\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nValue to send with the call.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls.value\",\"titles\":[\"execute\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/erc7821/execute#authorizationlist-optional\",\"html\":\"\\nAuthorizationListSigned EIP-7702 Authorization list.
\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], \\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\\n\",\"id\":\"pages/experimental/erc7821/execute.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], \\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#chain-optional\",\"html\":\"\\nChainclient.chainChain to execute the calls on.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nChain to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, \\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#gasprice-optional\",\"html\":\"\\nbigintThe price (in wei) to pay per gas.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei).
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n})\\n\",\"id\":\"pages/experimental/erc7821/execute.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei).\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#opdata-optional\",\"html\":\"\\nHexAdditional data to pass to execution.
\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', \\n})\",\"id\":\"pages/experimental/erc7821/execute.md#opdata-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nAdditional data to pass to execution.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', \\n})\",\"title\":\"opData (optional)\",\"titles\":[\"execute\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.d54b0bbe35bd3554be6d55b36b373470516f3450eefc18f806c879bf43e12aca.json b/site/.cache/search.index.d54b0bbe35bd3554be6d55b36b373470516f3450eefc18f806c879bf43e12aca.json
index e5976a47bc..05071cca9c 100644
--- a/site/.cache/search.index.d54b0bbe35bd3554be6d55b36b373470516f3450eefc18f806c879bf43e12aca.json
+++ b/site/.cache/search.index.d54b0bbe35bd3554be6d55b36b373470516f3450eefc18f806c879bf43e12aca.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Gets time until the L2 withdrawal transaction is ready to be proved.\\n---\\n\\n# getTimeToProve\\n\\nGets time until the L2 withdrawal transaction is ready to be proved. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.\\n\\nInternally calls [`getTimeToNextL2Output`](/op-stack/actions/getTimeToNextL2Output).\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n\\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n\\nconst { // [!code hl]\\n interval, // [!code hl]\\n seconds, // [!code hl]\\n timestamp // [!code hl]\\n} = await publicClientL1.getTimeToProve({ // [!code hl]\\n receipt, // [!code hl]\\n targetChain: publicClientL2.chain, // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`{ interval: number, seconds: number, timestamp: number }`\\n\\n- `interval` between L2 outputs – the max time to wait for transaction to be proved.\\n- Estimated `seconds` until the transaction can be proved.\\n- Estimated `timestamp` of when the transaction can be proved.\\n\\n## Parameters\\n\\n### receipt\\n\\n- **Type:** `TransactionReceipt`\\n\\nThe transaction receipt.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({ \\n receipt, // [!code focus]\\n targetChain: optimism, \\n}) \\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### intervalBuffer (optional)\\n\\n- **Type:** `number`\\n- **Default:** `1.1`\\n\\nThe buffer to account for discrepancies between non-deterministic time intervals.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({ \\n intervalBuffer: 1.2, // [!code focus]\\n l2BlockNumber,\\n targetChain: optimism, \\n}) \\n```\\n\\n### l2OutputOracleAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.l2OutputOracle[chainId].address`\\n\\nThe address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/L2OutputOracle.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/op-stack/actions/getTimeToProve#gettimetoprove\",\"html\":\"\\nGets time until the L2 withdrawal transaction is ready to be proved. Used for the Withdrawal flow.
\\nInternally calls getTimeToNextL2Output.
import { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n \\nconst { \\n interval, \\n seconds, \\n timestamp\\n} = await publicClientL1.getTimeToProve({ \\n receipt, \\n targetChain: publicClientL2.chain, \\n}) import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n}){ interval: number, seconds: number, timestamp: number }
interval between L2 outputs – the max time to wait for transaction to be proved.seconds until the transaction can be proved.timestamp of when the transaction can be proved.TransactionReceiptThe transaction receipt.
\\nconst time = await publicClientL1.getTimeToProve({ \\n receipt, \\n targetChain: optimism, \\n}) \\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#receipt\",\"isPage\":false,\"text\":\"\\n\\nType: TransactionReceipt\\n\\nThe transaction receipt.\\nconst time = await publicClientL1.getTimeToProve({ \\n receipt, \\n targetChain: optimism, \\n}) \\n\",\"title\":\"receipt\",\"titles\":[\"getTimeToProve\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToProve#targetchain\",\"html\":\"\\nChainThe L2 chain.
\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n targetChain: optimism, \\n})\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain.\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"getTimeToProve\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToProve#intervalbuffer-optional\",\"html\":\"\\nnumber1.1The buffer to account for discrepancies between non-deterministic time intervals.
\\nconst time = await publicClientL1.getTimeToProve({ \\n intervalBuffer: 1.2, \\n l2BlockNumber,\\n targetChain: optimism, \\n}) \\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#intervalbuffer-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: 1.1\\n\\nThe buffer to account for discrepancies between non-deterministic time intervals.\\nconst time = await publicClientL1.getTimeToProve({ \\n intervalBuffer: 1.2, \\n l2BlockNumber,\\n targetChain: optimism, \\n}) \\n\",\"title\":\"intervalBuffer (optional)\",\"titles\":[\"getTimeToProve\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToProve#l2outputoracleaddress-optional\",\"html\":\"\\nAddresstargetChain.contracts.l2OutputOracle[chainId].addressThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.
If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.
const time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#l2outputoracleaddress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.l2OutputOracle[chainId].address\\n\\nThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"title\":\"l2OutputOracleAddress (optional)\",\"titles\":[\"getTimeToProve\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Gets time until the L2 withdrawal transaction is ready to be proved.\\n---\\n\\n# getTimeToProve\\n\\nGets time until the L2 withdrawal transaction is ready to be proved. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.\\n\\nInternally calls [`getTimeToNextL2Output`](/op-stack/actions/getTimeToNextL2Output).\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n\\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n\\nconst { // [!code hl]\\n interval, // [!code hl]\\n seconds, // [!code hl]\\n timestamp // [!code hl]\\n} = await publicClientL1.getTimeToProve({ // [!code hl]\\n receipt, // [!code hl]\\n targetChain: publicClientL2.chain, // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`{ interval: number, seconds: number, timestamp: number }`\\n\\n- `interval` between L2 outputs – the max time to wait for transaction to be proved.\\n- Estimated `seconds` until the transaction can be proved.\\n- Estimated `timestamp` of when the transaction can be proved.\\n\\n## Parameters\\n\\n### receipt\\n\\n- **Type:** `TransactionReceipt`\\n\\nThe transaction receipt.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({ \\n receipt, // [!code focus]\\n targetChain: optimism, \\n}) \\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### intervalBuffer (optional)\\n\\n- **Type:** `number`\\n- **Default:** `1.1`\\n\\nThe buffer to account for discrepancies between non-deterministic time intervals.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({ \\n intervalBuffer: 1.2, // [!code focus]\\n l2BlockNumber,\\n targetChain: optimism, \\n}) \\n```\\n\\n### l2OutputOracleAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.l2OutputOracle[chainId].address`\\n\\nThe address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/actions/getTimeToProve#gettimetoprove\",\"html\":\"\\nGets time until the L2 withdrawal transaction is ready to be proved. Used for the Withdrawal flow.
\\nInternally calls getTimeToNextL2Output.
import { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n \\nconst { \\n interval, \\n seconds, \\n timestamp\\n} = await publicClientL1.getTimeToProve({ \\n receipt, \\n targetChain: publicClientL2.chain, \\n}) import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n}){ interval: number, seconds: number, timestamp: number }
interval between L2 outputs – the max time to wait for transaction to be proved.seconds until the transaction can be proved.timestamp of when the transaction can be proved.TransactionReceiptThe transaction receipt.
\\nconst time = await publicClientL1.getTimeToProve({ \\n receipt, \\n targetChain: optimism, \\n}) \\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#receipt\",\"isPage\":false,\"text\":\"\\n\\nType: TransactionReceipt\\n\\nThe transaction receipt.\\nconst time = await publicClientL1.getTimeToProve({ \\n receipt, \\n targetChain: optimism, \\n}) \\n\",\"title\":\"receipt\",\"titles\":[\"getTimeToProve\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToProve#targetchain\",\"html\":\"\\nChainThe L2 chain.
\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n targetChain: optimism, \\n})\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain.\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"getTimeToProve\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToProve#intervalbuffer-optional\",\"html\":\"\\nnumber1.1The buffer to account for discrepancies between non-deterministic time intervals.
\\nconst time = await publicClientL1.getTimeToProve({ \\n intervalBuffer: 1.2, \\n l2BlockNumber,\\n targetChain: optimism, \\n}) \\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#intervalbuffer-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: 1.1\\n\\nThe buffer to account for discrepancies between non-deterministic time intervals.\\nconst time = await publicClientL1.getTimeToProve({ \\n intervalBuffer: 1.2, \\n l2BlockNumber,\\n targetChain: optimism, \\n}) \\n\",\"title\":\"intervalBuffer (optional)\",\"titles\":[\"getTimeToProve\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToProve#l2outputoracleaddress-optional\",\"html\":\"\\nAddresstargetChain.contracts.l2OutputOracle[chainId].addressThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.
If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.
const time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#l2outputoracleaddress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.l2OutputOracle[chainId].address\\n\\nThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"title\":\"l2OutputOracleAddress (optional)\",\"titles\":[\"getTimeToProve\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.deefe97980bb5ce9c2653a45ca3419f066f8a0e97b0203856f98d30fa2e945f4.json b/site/.cache/search.index.deefe97980bb5ce9c2653a45ca3419f066f8a0e97b0203856f98d30fa2e945f4.json
index fb1ccc2c0e..29e996d8e6 100644
--- a/site/.cache/search.index.deefe97980bb5ce9c2653a45ca3419f066f8a0e97b0203856f98d30fa2e945f4.json
+++ b/site/.cache/search.index.deefe97980bb5ce9c2653a45ca3419f066f8a0e97b0203856f98d30fa2e945f4.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Checks whether the signature is in ERC-6492 format.\\n---\\n\\n# isErc6492Signature\\n\\nChecks whether the signature is in [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) format.\\n\\n## Import\\n\\n```ts\\nimport { isErc6492Signature } from 'viem/experimental'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { isErc6492Signature } from 'viem/experimental'\\n\\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n```\\n\\n## Returns\\n\\n`boolean`\\n\\nWhether the signature is in ERC-6492 format.\\n\\n## Parameters\\n\\n### signature\\n\\n- **Type:** [`Hex`](/docs/glossary/types#hex)\\n\\nThe signature to check.\",\"document\":[{\"href\":\"/docs/utilities/isErc6492Signature#iserc6492signature\",\"html\":\"\\nChecks whether the signature is in ERC-6492 format.
\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#iserc6492signature\",\"isPage\":true,\"text\":\"\\nChecks whether the signature is in ERC-6492 format.\\n\",\"title\":\"isErc6492Signature\",\"titles\":[]},{\"href\":\"/docs/utilities/isErc6492Signature#import\",\"html\":\"\\nimport { isErc6492Signature } from 'viem/experimental'\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#import\",\"isPage\":false,\"text\":\"\\nimport { isErc6492Signature } from 'viem/experimental'\\n\",\"title\":\"Import\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#usage\",\"html\":\"\\nimport { isErc6492Signature } from 'viem/experimental'\\n \\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#usage\",\"isPage\":false,\"text\":\"\\nimport { isErc6492Signature } from 'viem/experimental'\\n \\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n\",\"title\":\"Usage\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#returns\",\"html\":\"\\nboolean
Whether the signature is in ERC-6492 format.
\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#returns\",\"isPage\":false,\"text\":\"\\nboolean\\nWhether the signature is in ERC-6492 format.\\n\",\"title\":\"Returns\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#signature\",\"html\":\"\\nHexThe signature to check.
\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe signature to check.\",\"title\":\"signature\",\"titles\":[\"isErc6492Signature\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Checks whether the signature is in ERC-6492 format.\\n---\\n\\n# isErc6492Signature\\n\\nChecks whether the signature is in [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) format.\\n\\n## Import\\n\\n```ts\\nimport { isErc6492Signature } from 'viem/utils'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { isErc6492Signature } from 'viem/utils'\\n\\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n```\\n\\n## Returns\\n\\n`boolean`\\n\\nWhether the signature is in ERC-6492 format.\\n\\n## Parameters\\n\\n### signature\\n\\n- **Type:** [`Hex`](/docs/glossary/types#hex)\\n\\nThe signature to check.\",\"document\":[{\"href\":\"/docs/utilities/isErc6492Signature#iserc6492signature\",\"html\":\"\\nChecks whether the signature is in ERC-6492 format.
\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#iserc6492signature\",\"isPage\":true,\"text\":\"\\nChecks whether the signature is in ERC-6492 format.\\n\",\"title\":\"isErc6492Signature\",\"titles\":[]},{\"href\":\"/docs/utilities/isErc6492Signature#import\",\"html\":\"\\nimport { isErc6492Signature } from 'viem/utils'\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#import\",\"isPage\":false,\"text\":\"\\nimport { isErc6492Signature } from 'viem/utils'\\n\",\"title\":\"Import\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#usage\",\"html\":\"\\nimport { isErc6492Signature } from 'viem/utils'\\n \\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#usage\",\"isPage\":false,\"text\":\"\\nimport { isErc6492Signature } from 'viem/utils'\\n \\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n\",\"title\":\"Usage\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#returns\",\"html\":\"\\nboolean
Whether the signature is in ERC-6492 format.
\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#returns\",\"isPage\":false,\"text\":\"\\nboolean\\nWhether the signature is in ERC-6492 format.\\n\",\"title\":\"Returns\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#signature\",\"html\":\"\\nHexThe signature to check.
\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe signature to check.\",\"title\":\"signature\",\"titles\":[\"isErc6492Signature\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.ece073ce90dabf0a86cef6e19bbae89cc9f3cbb4eacd8d764bf3d283dbd74206.json b/site/.cache/search.index.ece073ce90dabf0a86cef6e19bbae89cc9f3cbb4eacd8d764bf3d283dbd74206.json new file mode 100644 index 0000000000..f1f523012a --- /dev/null +++ b/site/.cache/search.index.ece073ce90dabf0a86cef6e19bbae89cc9f3cbb4eacd8d764bf3d283dbd74206.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"---\\ndescription: Waits for a call batch to be confirmed & included on a Block.\\n---\\n\\n# waitForCallsStatus\\n\\nWaits for a call batch to be confirmed & included on a [Block](/docs/glossary/terms#block) before returning the status & receipts.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ // [!code focus]\\n id, // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n// @log: atomic: false,\\n// @log: chainId: 1,\\n// @log: id: '0x1234567890abcdef',\\n// @log: statusCode: 200,\\n// @log: status: 'success',\\n// @log: receipts: [{ ... }],\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WaitForCallsStatusReturnType`\\n\\nStatus and receipts of the calls.\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `string`\\n\\nIdentifier of the call batch.\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', // [!code focus]\\n})\\n```\\n\\n### pollingInterval\\n\\n- **Type:** `number`\\n- **Default:** `client.pollingInterval`\\n\\nPolling interval in milliseconds.\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, // [!code focus]\\n})\\n```\\n\\n### status\\n\\n- **Type:** `(parameters: { statusCode: number, status: string | undefined }) => boolean`\\n- **Default:** `(parameters) => parameters.statusCode >= 200`\\n\\nStatus to wait for. Defaults to non-pending status codes (`>=200`).\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n status: ({ status }) => status === 'success', // [!code focus]\\n})\\n```\\n\\n### timeout\\n\\n- **Type:** `number`\\n- **Default:** `60_000`\\n\\nTimeout in milliseconds before `waitForCallsStatus` stops polling.\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/docs/actions/wallet/waitForCallsStatus#waitforcallsstatus\",\"html\":\"\\nWaits for a call batch to be confirmed & included on a Block before returning the status & receipts.
\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#waitforcallsstatus\",\"isPage\":true,\"text\":\"\\nWaits for a call batch to be confirmed & included on a Block before returning the status & receipts.\\n\",\"title\":\"waitForCallsStatus\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#usage\",\"html\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ \\n id, \\n}) \\n// @log: {\\n \\n// @log: atomic: false,\\n \\n// @log: chainId: 1,\\n \\n// @log: id: '0x1234567890abcdef',\\n \\n// @log: statusCode: 200,\\n \\n// @log: status: 'success',\\n \\n// @log: receipts: [{ ... }],\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()WaitForCallsStatusReturnType
Status and receipts of the calls.
\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nWaitForCallsStatusReturnType\\nStatus and receipts of the calls.\\n\",\"title\":\"Returns\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#id\",\"html\":\"\\nstringIdentifier of the call batch.
\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', \\n})\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', \\n})\\n\",\"title\":\"id\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#pollinginterval\",\"html\":\"\\nnumberclient.pollingIntervalPolling interval in milliseconds.
\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, \\n})\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#pollinginterval\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: client.pollingInterval\\n\\nPolling interval in milliseconds.\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, \\n})\\n\",\"title\":\"pollingInterval\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#status\",\"html\":\"\\n(parameters: { statusCode: number, status: string | undefined }) => boolean(parameters) => parameters.statusCode >= 200Status to wait for. Defaults to non-pending status codes (>=200).
const result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n status: ({ status }) => status === 'success', \\n})\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#status\",\"isPage\":false,\"text\":\"\\n\\nType: (parameters: { statusCode: number, status: string | undefined }) => boolean\\nDefault: (parameters) => parameters.statusCode >= 200\\n\\nStatus to wait for. Defaults to non-pending status codes (>=200).\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n status: ({ status }) => status === 'success', \\n})\\n\",\"title\":\"status\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#timeout\",\"html\":\"\\nnumber60_000Timeout in milliseconds before waitForCallsStatus stops polling.
const result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, \\n})\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#timeout\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: 60_000\\n\\nTimeout in milliseconds before waitForCallsStatus stops polling.\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, \\n})\",\"title\":\"timeout\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.f1bf7093482dbcca671b67ea308a7b3162856079af98634d0aef0fa02599ea30.json b/site/.cache/search.index.f1bf7093482dbcca671b67ea308a7b3162856079af98634d0aef0fa02599ea30.json
deleted file mode 100644
index 26fc711029..0000000000
--- a/site/.cache/search.index.f1bf7093482dbcca671b67ea308a7b3162856079af98634d0aef0fa02599ea30.json
+++ /dev/null
@@ -1 +0,0 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Recovers the original signing address from a signed Authorization object.\\n---\\n\\n# recoverAuthorizationAddress\\n\\nRecovers the original signing address from a signed Authorization object.\\n\\n## Import\\n\\n```ts twoslash\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\n```\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { recoverAuthorizationAddress } from 'viem/experimental' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst address = await recoverAuthorizationAddress({ // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`Address`\\n\\nThe address that signed the Authorization object.\\n\\n## Parameters\\n\\n### authorization\\n\\n- **Type:** `Authorization | SignedAuthorization`\\n\\nThe Authorization object that was signed.\\n\\n```ts twoslash\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\nconst address = await recoverAuthorizationAddress({\\n authorization, // [!code focus]\\n}) \\n```\\n\\n### signature\\n\\n- **Type:** `Hex | ByteArray | Signature | SignedAuthorization`\\n\\nThe signature that was generated by signing the Authorization object with the address's private key.\\n\\n```ts twoslash\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst signature = await walletClient.signAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n\\nconst address = await recoverAuthorizationAddress({\\n authorization: {\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \\n```\",\"document\":[{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#recoverauthorizationaddress\",\"html\":\"\\nRecovers the original signing address from a signed Authorization object.
\\n\",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#recoverauthorizationaddress\",\"isPage\":true,\"text\":\"\\nRecovers the original signing address from a signed Authorization object.\\n\",\"title\":\"recoverAuthorizationAddress\",\"titles\":[]},{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#import\",\"html\":\"\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\n\",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#import\",\"isPage\":false,\"text\":\"\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\n\",\"title\":\"Import\",\"titles\":[\"recoverAuthorizationAddress\"]},{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#usage\",\"html\":\"\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n \\nconst address = await recoverAuthorizationAddress({ \\n authorization, \\n}) import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())Address
The address that signed the Authorization object.
\\n\",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#returns\",\"isPage\":false,\"text\":\"\\nAddress\\nThe address that signed the Authorization object.\\n\",\"title\":\"Returns\",\"titles\":[\"recoverAuthorizationAddress\"]},{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"recoverAuthorizationAddress\"]},{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#authorization\",\"html\":\"\\nAuthorization | SignedAuthorizationThe Authorization object that was signed.
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\nconst address = await recoverAuthorizationAddress({\\n authorization, \\n}) \\n\",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#authorization\",\"isPage\":false,\"text\":\"\\n\\nType: Authorization | SignedAuthorization\\n\\nThe Authorization object that was signed.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\nconst address = await recoverAuthorizationAddress({\\n authorization, \\n}) \\n\",\"title\":\"authorization\",\"titles\":[\"recoverAuthorizationAddress\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#signature\",\"html\":\"\\nHex | ByteArray | Signature | SignedAuthorizationThe signature that was generated by signing the Authorization object with the address's private key.
\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst signature = await walletClient.signAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n \\nconst address = await recoverAuthorizationAddress({\\n authorization: {\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, \\n}) \",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex | ByteArray | Signature | SignedAuthorization\\n\\nThe signature that was generated by signing the Authorization object with the address's private key.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst signature = await walletClient.signAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n \\nconst address = await recoverAuthorizationAddress({\\n authorization: {\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, \\n}) \",\"title\":\"signature\",\"titles\":[\"recoverAuthorizationAddress\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.f4b7d7a44c33c0702f0e466f2fe300fc90db7361a261c887d7e7b151034a41a0.json b/site/.cache/search.index.f4b7d7a44c33c0702f0e466f2fe300fc90db7361a261c887d7e7b151034a41a0.json
deleted file mode 100644
index bf94e001e9..0000000000
--- a/site/.cache/search.index.f4b7d7a44c33c0702f0e466f2fe300fc90db7361a261c887d7e7b151034a41a0.json
+++ /dev/null
@@ -1 +0,0 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Calculates an Authorization object hash in EIP-7702 format.\\n---\\n\\n# hashAuthorization\\n\\nCalculates an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\\n\\n## Import\\n\\n```ts twoslash\\nimport { hashAuthorization } from 'viem/experimental'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n// 0xd428ed36e6098e46b40a4cb99b83b930b0ca1f054f40b5996589eda33c295663\\n```\\n\\n## Returns\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nThe hashed Authorization.\\n\\n## Parameters\\n\\n### address\\n\\n- **Type:** `Address`\\n\\nAddress of the contract to set as code for the Authority.\\n\\n```ts twoslash\\nimport { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', // [!code focus]\\n chainId: 1,\\n nonce: 0,\\n}) \\n```\\n\\n### chainId\\n\\n- **Type:** `number`\\n\\nChain ID to authorize.\\n\\n```ts twoslash\\nimport { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1, // [!code focus]\\n nonce: 0,\\n}) \\n```\\n\\n### nonce\\n\\n- **Type:** `number`\\n\\nNonce of the Authority to authorize.\\n\\n```ts twoslash\\nimport { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, // [!code focus]\\n}) \\n```\\n\\n### to\\n\\n- **Type:** `\\\"hex\\\" | \\\"bytes\\\"`\\n- **Default:** `\\\"hex\\\"`\\n\\nOutput format.\\n\\n```ts twoslash\\nimport { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, \\n to: 'bytes', // [!code focus]\\n}) \\n```\",\"document\":[{\"href\":\"/experimental/eip7702/hashAuthorization#hashauthorization\",\"html\":\"\\nCalculates an Authorization hash in EIP-7702 format: keccak256('0x05' || rlp([chain_id, address, nonce])).
import { hashAuthorization } from 'viem/experimental'\\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#import\",\"isPage\":false,\"text\":\"\\nimport { hashAuthorization } from 'viem/experimental'\\n\",\"title\":\"Import\",\"titles\":[\"hashAuthorization\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#usage\",\"html\":\"\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n// 0xd428ed36e6098e46b40a4cb99b83b930b0ca1f054f40b5996589eda33c295663\\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#usage\",\"isPage\":false,\"text\":\"\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n// 0xd428ed36e6098e46b40a4cb99b83b930b0ca1f054f40b5996589eda33c295663\\n\",\"title\":\"Usage\",\"titles\":[\"hashAuthorization\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#returns\",\"html\":\"\\n\\nThe hashed Authorization.
\\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#returns\",\"isPage\":false,\"text\":\"\\nHash\\nThe hashed Authorization.\\n\",\"title\":\"Returns\",\"titles\":[\"hashAuthorization\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"hashAuthorization\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#address\",\"html\":\"\\nAddressAddress of the contract to set as code for the Authority.
\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', \\n chainId: 1,\\n nonce: 0,\\n}) \\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nAddress of the contract to set as code for the Authority.\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', \\n chainId: 1,\\n nonce: 0,\\n}) \\n\",\"title\":\"address\",\"titles\":[\"hashAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#chainid\",\"html\":\"\\nnumberChain ID to authorize.
\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1, \\n nonce: 0,\\n}) \\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#chainid\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nChain ID to authorize.\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1, \\n nonce: 0,\\n}) \\n\",\"title\":\"chainId\",\"titles\":[\"hashAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#nonce\",\"html\":\"\\nnumberNonce of the Authority to authorize.
\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, \\n}) \\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#nonce\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nNonce of the Authority to authorize.\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, \\n}) \\n\",\"title\":\"nonce\",\"titles\":[\"hashAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#to\",\"html\":\"\\n"hex" | "bytes""hex"Output format.
\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, \\n to: 'bytes', \\n}) \",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: "hex" | "bytes"\\nDefault: "hex"\\n\\nOutput format.\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, \\n to: 'bytes', \\n}) \",\"title\":\"to\",\"titles\":[\"hashAuthorization\",\"Parameters\"]}]}}"
diff --git a/site/.cache/search.index.f86f30efd8be454022627c2302071b770e10b252f7564055d38c873a45dd1eec.json b/site/.cache/search.index.f86f30efd8be454022627c2302071b770e10b252f7564055d38c873a45dd1eec.json
index 46c7e35cb9..0195d40848 100644
--- a/site/.cache/search.index.f86f30efd8be454022627c2302071b770e10b252f7564055d38c873a45dd1eec.json
+++ b/site/.cache/search.index.f86f30efd8be454022627c2302071b770e10b252f7564055d38c873a45dd1eec.json
@@ -1 +1 @@
-"{\"value\":{\"mdx\":\"---\\ndescription: Signs a transaction.\\n---\\n\\n# signTransaction\\n\\nSigns a transaction.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\n// [!include ~/snippets/walletClient.ts]\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `prepareTransactionRequest`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n```ts twoslash [config.ts (Local Account)] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`Hex`](/docs/glossary/types#hex)\\n\\nThe signed serialized transaction.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### to\\n\\n- **Type:** `0x${string}`\\n\\nThe transaction recipient or contract address.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n```\\n\\n### accessList (optional)\\n\\n- **Type:** [`AccessList`](/docs/glossary/types#accesslist)\\n\\nThe access list.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### blobs (optional)\\n\\n- **Type:** `Hex[]`\\n\\nBlobs for [Blob Transactions](/docs/guides/blob-transactions). \\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n\\nconst hash = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\n\\nThe chain is also used to infer its request type (e.g. the Celo chain has a `gatewayFee` that you can pass through to `signTransaction`).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst signature = await walletClient.signTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nA contract hashed method call with encoded args.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### kzg (optional)\\n\\n- **Type:** `KZG`\\n\\nKZG implementation for [Blob Transactions](/docs/guides/blob-transactions). \\n\\nSee [`setupKzg`](/docs/utilities/setupKzg) for more information.\\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) // [!code focus]\\n\\nconst signature = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei sent with this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\\n```\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/signTransaction#signtransaction\",\"html\":\"\\nSigns a transaction.
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#signtransaction\",\"isPage\":true,\"text\":\"\\nSigns a transaction.\\n\",\"title\":\"signTransaction\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/signTransaction#usage\",\"html\":\"\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n \\nconst signature = await walletClient.signTransaction(request) \\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n \\nconst hash = await walletClient.sendRawTransaction(signature)import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local AccountIf you do not wish to pass an account to every prepareTransactionRequest, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n \\nconst signature = await walletClient.signTransaction(request) \\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n \\nconst hash = await walletClient.sendRawTransaction(signature)import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})The signed serialized transaction.
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#returns\",\"isPage\":false,\"text\":\"\\nHex\\nThe signed serialized transaction.\\n\",\"title\":\"Returns\",\"titles\":[\"signTransaction\"]},{\"href\":\"/docs/actions/wallet/signTransaction#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"signTransaction\"]},{\"href\":\"/docs/actions/wallet/signTransaction#account\",\"html\":\"\\nAccount | AddressThe Account to send the transaction from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"account\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#to\",\"html\":\"\\n0x${string}The transaction recipient or contract address.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nThe transaction recipient or contract address.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"to\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#accesslist-optional\",\"html\":\"\\nAccessListThe access list.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#accesslist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AccessList\\n\\nThe access list.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"title\":\"accessList (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#authorizationlist-optional\",\"html\":\"\\nAuthorizationListSigned EIP-7702 Authorization list.
\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#blobs-optional\",\"html\":\"\\nHex[]Blobs for Blob Transactions.
\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#blobs-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex[]\\n\\nBlobs for Blob Transactions.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"blobs (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#chain-optional\",\"html\":\"\\nChainwalletClient.chainThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.
\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to signTransaction).
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst signature = await walletClient.signTransaction({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to signTransaction).\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst signature = await walletClient.signTransaction({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#data-optional\",\"html\":\"\\n0x${string}A contract hashed method call with encoded args.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nA contract hashed method call with encoded args.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#gasprice-optional\",\"html\":\"\\nbigintThe price (in wei) to pay per gas. Only applies to Legacy Transactions.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#kzg-optional\",\"html\":\"\\nKZGKZG implementation for Blob Transactions.
\\nSee setupKzg for more information.
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst signature = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#kzg-optional\",\"isPage\":false,\"text\":\"\\n\\nType: KZG\\n\\nKZG implementation for Blob Transactions.\\nSee setupKzg for more information.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst signature = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"kzg (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#nonce-optional\",\"html\":\"\\nnumberUnique number identifying this transaction.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#value-optional\",\"html\":\"\\nbigintValue in wei sent with this transaction.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei sent with this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\",\"title\":\"value (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]}]}}"
+"{\"value\":{\"mdx\":\"---\\ndescription: Signs a transaction.\\n---\\n\\n# signTransaction\\n\\nSigns a transaction.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\n// [!include ~/snippets/walletClient.ts]\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `prepareTransactionRequest`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n```ts twoslash [config.ts (Local Account)] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`Hex`](/docs/glossary/types#hex)\\n\\nThe signed serialized transaction.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### to\\n\\n- **Type:** `0x${string}`\\n\\nThe transaction recipient or contract address.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n```\\n\\n### accessList (optional)\\n\\n- **Type:** [`AccessList`](/docs/glossary/types#accesslist)\\n\\nThe access list.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### blobs (optional)\\n\\n- **Type:** `Hex[]`\\n\\nBlobs for [Blob Transactions](/docs/guides/blob-transactions). \\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n\\nconst hash = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\n\\nThe chain is also used to infer its request type (e.g. the Celo chain has a `gatewayFee` that you can pass through to `signTransaction`).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst signature = await walletClient.signTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nA contract hashed method call with encoded args.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nThe gas limit of the transaction. If missing, it will be estimated.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gas: 21000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### kzg (optional)\\n\\n- **Type:** `KZG`\\n\\nKZG implementation for [Blob Transactions](/docs/guides/blob-transactions). \\n\\nSee [`setupKzg`](/docs/utilities/setupKzg) for more information.\\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) // [!code focus]\\n\\nconst signature = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei sent with this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\\n```\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/signTransaction#signtransaction\",\"html\":\"\\nSigns a transaction.
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#signtransaction\",\"isPage\":true,\"text\":\"\\nSigns a transaction.\\n\",\"title\":\"signTransaction\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/signTransaction#usage\",\"html\":\"\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n \\nconst signature = await walletClient.signTransaction(request) \\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n \\nconst hash = await walletClient.sendRawTransaction(signature)import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local AccountIf you do not wish to pass an account to every prepareTransactionRequest, you can also hoist the Account on the Wallet Client (see config.ts).
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n \\nconst signature = await walletClient.signTransaction(request) \\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n \\nconst hash = await walletClient.sendRawTransaction(signature)import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})The signed serialized transaction.
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#returns\",\"isPage\":false,\"text\":\"\\nHex\\nThe signed serialized transaction.\\n\",\"title\":\"Returns\",\"titles\":[\"signTransaction\"]},{\"href\":\"/docs/actions/wallet/signTransaction#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"signTransaction\"]},{\"href\":\"/docs/actions/wallet/signTransaction#account\",\"html\":\"\\nAccount | AddressThe Account to send the transaction from.
\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"account\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#to\",\"html\":\"\\n0x${string}The transaction recipient or contract address.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nThe transaction recipient or contract address.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"to\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#accesslist-optional\",\"html\":\"\\nAccessListThe access list.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#accesslist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AccessList\\n\\nThe access list.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"title\":\"accessList (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#authorizationlist-optional\",\"html\":\"\\nAuthorizationListSigned EIP-7702 Authorization list.
\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#blobs-optional\",\"html\":\"\\nHex[]Blobs for Blob Transactions.
\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#blobs-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex[]\\n\\nBlobs for Blob Transactions.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"blobs (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#chain-optional\",\"html\":\"\\nChainwalletClient.chainThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.
\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to signTransaction).
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst signature = await walletClient.signTransaction({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to signTransaction).\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst signature = await walletClient.signTransaction({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#data-optional\",\"html\":\"\\n0x${string}A contract hashed method call with encoded args.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nA contract hashed method call with encoded args.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#gas-optional\",\"html\":\"\\nbigintThe gas limit of the transaction. If missing, it will be estimated.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gas: 21000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe gas limit of the transaction. If missing, it will be estimated.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gas: 21000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#gasprice-optional\",\"html\":\"\\nbigintThe price (in wei) to pay per gas. Only applies to Legacy Transactions.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#kzg-optional\",\"html\":\"\\nKZGKZG implementation for Blob Transactions.
\\nSee setupKzg for more information.
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst signature = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#kzg-optional\",\"isPage\":false,\"text\":\"\\n\\nType: KZG\\n\\nKZG implementation for Blob Transactions.\\nSee setupKzg for more information.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst signature = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"kzg (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#maxfeepergas-optional\",\"html\":\"\\nbigintTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#maxpriorityfeepergas-optional\",\"html\":\"\\nbigintMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#nonce-optional\",\"html\":\"\\nnumberUnique number identifying this transaction.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#value-optional\",\"html\":\"\\nbigintValue in wei sent with this transaction.
\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei sent with this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\",\"title\":\"value (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]}]}}"
diff --git a/site/.cache/twoslash.008be0f11f4925f2cb71360e9c244eb52c12bd5b2cd61b027d02d4b2b63474e5.json b/site/.cache/twoslash.008be0f11f4925f2cb71360e9c244eb52c12bd5b2cd61b027d02d4b2b63474e5.json
index eaa93de1f7..93166aefe9 100644
--- a/site/.cache/twoslash.008be0f11f4925f2cb71360e9c244eb52c12bd5b2cd61b027d02d4b2b63474e5.json
+++ b/site/.cache/twoslash.008be0f11f4925f2cb71360e9c244eb52c12bd5b2cd61b027d02d4b2b63474e5.json
@@ -1 +1 @@
-"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n nonce: 420, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify