@opensubaccounts/sdk
    Preparing search index...

    Function createSubaccount

    • Deploy the subaccount contract (no-op if already exists).

      Parameters

      • walletClient: {
            account: undefined | Account;
            addChain: (args: AddChainParameters) => Promise<void>;
            batch?: { multicall?: boolean | { batchSize?: number; wait?: number } };
            cacheTime: number;
            ccipRead?:
                | false
                | {
                    request?: (
                        parameters: CcipRequestParameters,
                    ) => Promise<`0x${string}`>;
                };
            chain: undefined
            | Chain;
            deployContract: <
                const abi extends Abi
                | readonly unknown[],
                chainOverride extends undefined | Chain,
            >(
                args: DeployContractParameters<
                    abi,
                    undefined
                    | Chain,
                    undefined | Account,
                    chainOverride,
                >,
            ) => Promise<`0x${string}`>;
            experimental_blockTag?: BlockTag;
            extend: <
                const client extends
                    {
                        account?: undefined;
                        batch?: undefined;
                        cacheTime?: undefined;
                        ccipRead?: undefined;
                        chain?: undefined;
                        experimental_blockTag?: undefined;
                        key?: undefined;
                        name?: undefined;
                        pollingInterval?: undefined;
                        request?: undefined;
                        transport?: undefined;
                        type?: undefined;
                        uid?: undefined;
                        [key: string]: unknown;
                    } & ExactPartial<
                        ExtendableProtectedActions<
                            Transport,
                            undefined
                            | Chain,
                            undefined | Account,
                        >,
                    >,
            >(
                fn: (
                    client: Client<
                        Transport,
                        undefined
                        | Chain,
                        undefined | Account,
                        WalletRpcSchema,
                        WalletActions<undefined | Chain, undefined | Account>,
                    >,
                ) => client,
            ) => Client<
                Transport,
                undefined
                | Chain,
                undefined | Account,
                WalletRpcSchema,
                { [K in string | number | symbol]: client[K] } & WalletActions<
                    undefined
                    | Chain,
                    undefined | Account,
                >,
            >;
            getAddresses: () => Promise<GetAddressesReturnType>;
            getCallsStatus: (
                parameters: GetCallsStatusParameters,
            ) => Promise<
                {
                    atomic: boolean;
                    capabilities?: { [key: string]: any }
                    | { [key: string]: any };
                    chainId: number;
                    id: string;
                    receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                    status: undefined | "success" | "pending" | "failure";
                    statusCode: number;
                    version: string;
                },
            >;
            getCapabilities: <chainId extends undefined | number>(
                parameters?: GetCapabilitiesParameters<chainId>,
            ) => Promise<
                {
                    [K in string
                    | number
                    | symbol]: (
                        chainId extends number
                            ? {
                                atomic?: { status: "supported"
                                | "ready"
                                | "unsupported" };
                                paymasterService?: { supported: boolean };
                                unstable_addSubAccount?: {
                                    keyTypes: ((...) | (...) | (...) | (...))[];
                                    supported: boolean;
                                };
                                [key: string]: any;
                            }
                            : ChainIdToCapabilities<
                                Capabilities<
                                    {
                                        atomic?: { status: ... };
                                        paymasterService?: { supported: ... };
                                        unstable_addSubAccount?: { keyTypes: ...; supported: ... };
                                        [key: string]: any;
                                    },
                                >,
                                number,
                            >
                    )[K]
                },
            >;
            getChainId: () => Promise<number>;
            getPermissions: () => Promise<GetPermissionsReturnType>;
            key: string;
            name: string;
            pollingInterval: number;
            prepareAuthorization: (
                parameters: PrepareAuthorizationParameters<undefined | Account>,
            ) => Promise<PrepareAuthorizationReturnType>;
            prepareTransactionRequest: <
                const request extends
                    (
                        | Omit<
                            {
                                accessList?: undefined;
                                authorizationList?: undefined;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: bigint;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: undefined;
                                maxPriorityFeePerGas?: undefined;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: null
                                | `0x${string}`;
                                type?: "legacy";
                                value?: bigint;
                            },
                            "from",
                        >
                        | Omit<
                            {
                                accessList?: AccessList;
                                authorizationList?: undefined;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: bigint;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: undefined;
                                maxPriorityFeePerGas?: undefined;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: null
                                | `0x${string}`;
                                type?: "eip2930";
                                value?: bigint;
                            },
                            "from",
                        >
                        | Omit<
                            {
                                accessList?: AccessList;
                                authorizationList?: undefined;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: undefined;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: null
                                | `0x${string}`;
                                type?: "eip1559";
                                value?: bigint;
                            },
                            "from",
                        >
                        | Omit<
                            {
                                accessList?: AccessList;
                                authorizationList?: undefined;
                                blobs: readonly `0x${string}`[]
                                | readonly ByteArray[];
                                blobVersionedHashes?: readonly `0x${string}`[];
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: undefined;
                                kzg?: Kzg;
                                maxFeePerBlobGas: bigint;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: readonly BlobSidecar<`0x${string}`>[];
                                to: null | `0x${string}`;
                                type?: "eip4844";
                                value?: bigint;
                            },
                            "from",
                        >
                        | Omit<
                            {
                                accessList?: AccessList;
                                authorizationList?: AuthorizationList<number, boolean>;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: undefined;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: null | `0x${string}`;
                                type?: "eip7702";
                                value?: bigint;
                            },
                            "from",
                        >
                    ) & { kzg?: Kzg } & {
                        nonceManager?: NonceManager;
                        parameters?: readonly PrepareTransactionRequestParameterType[];
                    },
                chainOverride extends undefined
                | Chain = undefined,
                accountOverride extends undefined | `0x${string}` | Account = undefined,
            >(
                args: PrepareTransactionRequestParameters<
                    undefined
                    | Chain,
                    undefined | Account,
                    chainOverride,
                    accountOverride,
                    request,
                >,
            ) => Promise<
                {
                    [K in string
                    | number
                    | symbol]: (
                        UnionRequiredBy<
                            Extract<
                                UnionOmit<(...), (...)> & ((...) extends (...) ? (...) : (...)) & (
                                    (...) extends (...) ? (...) : (...)
                                ),
                                IsNever<(...)> extends true ? unknown : ExactPartial<(...)>,
                            > & { chainId?: number },
                            ParameterTypeToParameters<
                                request["parameters"] extends readonly PrepareTransactionRequestParameterType[]
                                    ? any[any][number]
                                    : | "chainId"
                                    | "nonce"
                                    | "type"
                                    | "gas"
                                    | "blobVersionedHashes"
                                    | "fees",
                            >,
                        > & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">)
                    )[K]
                },
            >;
            request: EIP1193RequestFn<WalletRpcSchema>;
            requestAddresses: () => Promise<RequestAddressesReturnType>;
            requestPermissions: (
                args: {
                    eth_accounts: Record<string, any>;
                    [key: string]: Record<string, any>;
                },
            ) => Promise<RequestPermissionsReturnType>;
            sendCalls: <
                const calls extends readonly unknown[],
                chainOverride extends undefined | Chain = undefined,
            >(
                parameters: SendCallsParameters<
                    undefined
                    | Chain,
                    undefined | Account,
                    chainOverride,
                    calls,
                >,
            ) => Promise<{ capabilities?: { [key: string]: any }; id: string }>;
            sendRawTransaction: (
                args: SendRawTransactionParameters,
            ) => Promise<`0x${string}`>;
            sendTransaction: <
                const request extends
                    (
                        | Omit<
                            {
                                accessList?: undefined;
                                authorizationList?: undefined;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: bigint;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: undefined;
                                maxPriorityFeePerGas?: undefined;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: null
                                | `0x${string}`;
                                type?: "legacy";
                                value?: bigint;
                            },
                            "from",
                        >
                        | Omit<
                            {
                                accessList?: AccessList;
                                authorizationList?: undefined;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: bigint;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: undefined;
                                maxPriorityFeePerGas?: undefined;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: null
                                | `0x${string}`;
                                type?: "eip2930";
                                value?: bigint;
                            },
                            "from",
                        >
                        | Omit<
                            {
                                accessList?: AccessList;
                                authorizationList?: undefined;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: undefined;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: null
                                | `0x${string}`;
                                type?: "eip1559";
                                value?: bigint;
                            },
                            "from",
                        >
                        | Omit<
                            {
                                accessList?: AccessList;
                                authorizationList?: undefined;
                                blobs: readonly `0x${string}`[]
                                | readonly ByteArray[];
                                blobVersionedHashes?: readonly `0x${string}`[];
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: undefined;
                                kzg?: Kzg;
                                maxFeePerBlobGas: bigint;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: readonly BlobSidecar<`0x${string}`>[];
                                to: null | `0x${string}`;
                                type?: "eip4844";
                                value?: bigint;
                            },
                            "from",
                        >
                        | Omit<
                            {
                                accessList?: AccessList;
                                authorizationList?: AuthorizationList<number, boolean>;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: undefined;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: null | `0x${string}`;
                                type?: "eip7702";
                                value?: bigint;
                            },
                            "from",
                        >
                    ) & { kzg?: Kzg },
                chainOverride extends undefined
                | Chain = undefined,
            >(
                args: SendTransactionParameters<
                    undefined
                    | Chain,
                    undefined | Account,
                    chainOverride,
                    request,
                >,
            ) => Promise<`0x${string}`>;
            showCallsStatus: (parameters: ShowCallsStatusParameters) => Promise<void>;
            signAuthorization: (
                parameters: SignAuthorizationParameters<undefined | Account>,
            ) => Promise<SignAuthorizationReturnType>;
            signMessage: (
                args: SignMessageParameters<undefined | Account>,
            ) => Promise<`0x${string}`>;
            signTransaction: <
                chainOverride extends undefined
                | Chain,
                const request extends
                
                        | Omit<
                            {
                                accessList?: undefined;
                                authorizationList?: undefined;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: bigint;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: undefined;
                                maxPriorityFeePerGas?: undefined;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: null
                                | `0x${string}`;
                                type?: "legacy";
                                value?: bigint;
                            },
                            "from",
                        >
                        | Omit<
                            {
                                accessList?: AccessList;
                                authorizationList?: undefined;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: bigint;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: undefined;
                                maxPriorityFeePerGas?: undefined;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: null
                                | `0x${string}`;
                                type?: "eip2930";
                                value?: bigint;
                            },
                            "from",
                        >
                        | Omit<
                            {
                                accessList?: AccessList;
                                authorizationList?: undefined;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: undefined;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: null
                                | `0x${string}`;
                                type?: "eip1559";
                                value?: bigint;
                            },
                            "from",
                        >
                        | Omit<
                            {
                                accessList?: AccessList;
                                authorizationList?: undefined;
                                blobs: readonly `0x${string}`[]
                                | readonly ByteArray[];
                                blobVersionedHashes?: readonly `0x${string}`[];
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: undefined;
                                kzg?: Kzg;
                                maxFeePerBlobGas: bigint;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: readonly BlobSidecar<`0x${string}`>[];
                                to: null | `0x${string}`;
                                type?: "eip4844";
                                value?: bigint;
                            },
                            "from",
                        >
                        | Omit<
                            {
                                accessList?: AccessList;
                                authorizationList?: AuthorizationList<number, boolean>;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: undefined;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: null | `0x${string}`;
                                type?: "eip7702";
                                value?: bigint;
                            },
                            "from",
                        > = UnionOmit<
                    ExtractChainFormatterParameters<
                        DeriveChain<undefined | Chain, chainOverride>,
                        "transactionRequest",
                        TransactionRequest,
                    >,
                    "from",
                >,
            >(
                args: SignTransactionParameters<
                    undefined
                    | Chain,
                    undefined | Account,
                    chainOverride,
                    request,
                >,
            ) => Promise<
                TransactionSerialized<
                    GetTransactionType<
                        request,
                        | (request extends LegacyProperties ? "legacy" : never)
                        | (request extends EIP1559Properties ? "eip1559" : never)
                        | (request extends EIP2930Properties ? "eip2930" : never)
                        | (request extends EIP4844Properties ? "eip4844" : never)
                        | (request extends EIP7702Properties ? "eip7702" : never)
                        | (
                            request["type"] extends undefined
                            | string
                                ? Extract<any[any], string>
                                : never
                        ),
                    >,

                        | (
                            GetTransactionType<
                                request,
                                | (request extends LegacyProperties ? "legacy" : never)
                                | (request extends EIP1559Properties ? "eip1559" : never)
                                | (request extends EIP2930Properties ? "eip2930" : never)
                                | (request extends EIP4844Properties ? "eip4844" : never)
                                | (request extends EIP7702Properties ? "eip7702" : never)
                                | (
                                    request["type"] extends undefined
                                    | string
                                        ? Extract<any[any], string>
                                        : never
                                ),
                            > extends "eip1559"
                                ? `0x02${string}`
                                : never
                        )
                        | (
                            GetTransactionType<
                                request,
                                | (request extends LegacyProperties ? "legacy" : never)
                                | (request extends EIP1559Properties ? "eip1559" : never)
                                | (request extends EIP2930Properties ? "eip2930" : never)
                                | (request extends EIP4844Properties ? "eip4844" : never)
                                | (request extends EIP7702Properties ? "eip7702" : never)
                                | (
                                    request["type"] extends undefined
                                    | string
                                        ? Extract<any[any], string>
                                        : never
                                ),
                            > extends "eip2930"
                                ? `0x01${string}`
                                : never
                        )
                        | (
                            GetTransactionType<
                                request,
                                | (request extends LegacyProperties ? "legacy" : never)
                                | (request extends EIP1559Properties ? "eip1559" : never)
                                | (request extends EIP2930Properties ? "eip2930" : never)
                                | (request extends EIP4844Properties ? "eip4844" : never)
                                | (request extends EIP7702Properties ? "eip7702" : never)
                                | (
                                    request["type"] extends undefined
                                    | string
                                        ? Extract<any[any], string>
                                        : never
                                ),
                            > extends "eip4844"
                                ? `0x03${string}`
                                : never
                        )
                        | (
                            GetTransactionType<
                                request,
                                | (request extends LegacyProperties ? "legacy" : never)
                                | (request extends EIP1559Properties ? "eip1559" : never)
                                | (request extends EIP2930Properties ? "eip2930" : never)
                                | (request extends EIP4844Properties ? "eip4844" : never)
                                | (request extends EIP7702Properties ? "eip7702" : never)
                                | (
                                    request["type"] extends undefined
                                    | string
                                        ? Extract<any[any], string>
                                        : never
                                ),
                            > extends "eip7702"
                                ? `0x04${string}`
                                : never
                        )
                        | (
                            GetTransactionType<
                                request,
                                | (request extends LegacyProperties ? "legacy" : never)
                                | (request extends EIP1559Properties ? "eip1559" : never)
                                | (request extends EIP2930Properties ? "eip2930" : never)
                                | (request extends EIP4844Properties ? "eip4844" : never)
                                | (request extends EIP7702Properties ? "eip7702" : never)
                                | (
                                    request["type"] extends undefined
                                    | string
                                        ? Extract<any[any], string>
                                        : never
                                ),
                            > extends "legacy"
                                ? TransactionSerializedLegacy
                                : never
                        ),
                >,
            >;
            signTypedData: <
                const typedData extends
                    | {
                        address?: undefined;
                        bool?: undefined;
                        bytes?: undefined;
                        bytes1?: undefined;
                        bytes10?: undefined;
                        bytes11?: undefined;
                        bytes12?: undefined;
                        bytes13?: undefined;
                        bytes14?: undefined;
                        bytes15?: undefined;
                        bytes16?: undefined;
                        bytes17?: undefined;
                        bytes18?: undefined;
                        bytes19?: undefined;
                        bytes2?: undefined;
                        bytes20?: undefined;
                        bytes21?: undefined;
                        bytes22?: undefined;
                        bytes23?: undefined;
                        bytes24?: undefined;
                        bytes25?: undefined;
                        bytes26?: undefined;
                        bytes27?: undefined;
                        bytes28?: undefined;
                        bytes29?: undefined;
                        bytes3?: undefined;
                        bytes30?: undefined;
                        bytes31?: undefined;
                        bytes32?: undefined;
                        bytes4?: undefined;
                        bytes5?: undefined;
                        bytes6?: undefined;
                        bytes7?: undefined;
                        bytes8?: undefined;
                        bytes9?: undefined;
                        int104?: undefined;
                        int112?: undefined;
                        int120?: undefined;
                        int128?: undefined;
                        int136?: undefined;
                        int144?: undefined;
                        int152?: undefined;
                        int16?: undefined;
                        int160?: undefined;
                        int168?: undefined;
                        int176?: undefined;
                        int184?: undefined;
                        int192?: undefined;
                        int200?: undefined;
                        int208?: undefined;
                        int216?: undefined;
                        int224?: undefined;
                        int232?: undefined;
                        int24?: undefined;
                        int240?: undefined;
                        int248?: undefined;
                        int256?: undefined;
                        int32?: undefined;
                        int40?: undefined;
                        int48?: undefined;
                        int56?: undefined;
                        int64?: undefined;
                        int72?: undefined;
                        int8?: undefined;
                        int80?: undefined;
                        int88?: undefined;
                        int96?: undefined;
                        string?: undefined;
                        uint104?: undefined;
                        uint112?: undefined;
                        uint120?: undefined;
                        uint128?: undefined;
                        uint136?: undefined;
                        uint144?: undefined;
                        uint152?: undefined;
                        uint16?: undefined;
                        uint160?: undefined;
                        uint168?: undefined;
                        uint176?: undefined;
                        uint184?: undefined;
                        uint192?: undefined;
                        uint200?: undefined;
                        uint208?: undefined;
                        uint216?: undefined;
                        uint224?: undefined;
                        uint232?: undefined;
                        uint24?: undefined;
                        uint240?: undefined;
                        uint248?: undefined;
                        uint256?: undefined;
                        uint32?: undefined;
                        uint40?: undefined;
                        uint48?: undefined;
                        uint56?: undefined;
                        uint64?: undefined;
                        uint72?: undefined;
                        uint8?: undefined;
                        uint80?: undefined;
                        uint88?: undefined;
                        uint96?: undefined;
                        [key: string]: readonly TypedDataParameter[];
                        [key: `string[${string}]`]: undefined;
                        [key: `function[${string}]`]: undefined;
                        [key: `address[${string}]`]: undefined;
                        [key: `uint256[${string}]`]: undefined;
                        [key: `bytes32[${string}]`]: undefined;
                        [key: `bytes[${string}]`]: undefined;
                        [key: `uint8[${string}]`]: undefined;
                        [key: `uint32[${string}]`]: undefined;
                        [key: `bytes1[${string}]`]: undefined;
                        [key: `bool[${string}]`]: undefined;
                        [key: `bytes10[${string}]`]: undefined;
                        [key: `bytes5[${string}]`]: undefined;
                        [key: `bytes3[${string}]`]: undefined;
                        [key: `bytes4[${string}]`]: undefined;
                        [key: `bytes11[${string}]`]: undefined;
                        [key: `bytes7[${string}]`]: undefined;
                        [key: `bytes2[${string}]`]: undefined;
                        [key: `bytes23[${string}]`]: undefined;
                        [key: `bytes9[${string}]`]: undefined;
                        [key: `bytes6[${string}]`]: undefined;
                        [key: `bytes8[${string}]`]: undefined;
                        [key: `bytes12[${string}]`]: undefined;
                        [key: `bytes13[${string}]`]: undefined;
                        [key: `bytes14[${string}]`]: undefined;
                        [key: `bytes15[${string}]`]: undefined;
                        [key: `bytes16[${string}]`]: undefined;
                        [key: `bytes17[${string}]`]: undefined;
                        [key: `bytes18[${string}]`]: undefined;
                        [key: `bytes19[${string}]`]: undefined;
                        [key: `bytes20[${string}]`]: undefined;
                        [key: `bytes21[${string}]`]: undefined;
                        [key: `bytes22[${string}]`]: undefined;
                        [key: `bytes24[${string}]`]: undefined;
                        [key: `bytes25[${string}]`]: undefined;
                        [key: `bytes26[${string}]`]: undefined;
                        [key: `bytes27[${string}]`]: undefined;
                        [key: `bytes28[${string}]`]: undefined;
                        [key: `bytes29[${string}]`]: undefined;
                        [key: `bytes30[${string}]`]: undefined;
                        [key: `bytes31[${string}]`]: undefined;
                        [key: `int[${string}]`]: undefined;
                        [key: `int56[${string}]`]: undefined;
                        [key: `int8[${string}]`]: undefined;
                        [key: `int16[${string}]`]: undefined;
                        [key: `int24[${string}]`]: undefined;
                        [key: `int32[${string}]`]: undefined;
                        [key: `int40[${string}]`]: undefined;
                        [key: `int48[${string}]`]: undefined;
                        [key: `int64[${string}]`]: undefined;
                        [key: `int72[${string}]`]: undefined;
                        [key: `int80[${string}]`]: undefined;
                        [key: `int88[${string}]`]: undefined;
                        [key: `int96[${string}]`]: undefined;
                        [key: `int104[${string}]`]: undefined;
                        [key: `int112[${string}]`]: undefined;
                        [key: `int120[${string}]`]: undefined;
                        [key: `int128[${string}]`]: undefined;
                        [key: `int136[${string}]`]: undefined;
                        [key: `int144[${string}]`]: undefined;
                        [key: `int152[${string}]`]: undefined;
                        [key: `int160[${string}]`]: undefined;
                        [key: `int168[${string}]`]: undefined;
                        [key: `int176[${string}]`]: undefined;
                        [key: `int184[${string}]`]: undefined;
                        [key: `int192[${string}]`]: undefined;
                        [key: `int200[${string}]`]: undefined;
                        [key: `int208[${string}]`]: undefined;
                        [key: `int216[${string}]`]: undefined;
                        [key: `int224[${string}]`]: undefined;
                        [key: `int232[${string}]`]: undefined;
                        [key: `int240[${string}]`]: undefined;
                        [key: `int248[${string}]`]: undefined;
                        [key: `int256[${string}]`]: undefined;
                        [key: `uint[${string}]`]: undefined;
                        [key: `uint56[${string}]`]: undefined;
                        [key: `uint16[${string}]`]: undefined;
                        [key: `uint24[${string}]`]: undefined;
                        [key: `uint40[${string}]`]: undefined;
                        [key: `uint48[${string}]`]: undefined;
                        [key: `uint64[${string}]`]: undefined;
                        [key: `uint72[${string}]`]: undefined;
                        [key: `uint80[${string}]`]: undefined;
                        [key: `uint88[${string}]`]: undefined;
                        [key: `uint96[${string}]`]: undefined;
                        [key: `uint104[${string}]`]: undefined;
                        [key: `uint112[${string}]`]: undefined;
                        [key: `uint120[${string}]`]: undefined;
                        [key: `uint128[${string}]`]: undefined;
                        [key: `uint136[${string}]`]: undefined;
                        [key: `uint144[${string}]`]: undefined;
                        [key: `uint152[${string}]`]: undefined;
                        [key: `uint160[${string}]`]: undefined;
                        [key: `uint168[${string}]`]: undefined;
                        [key: `uint176[${string}]`]: undefined;
                        [key: `uint184[${string}]`]: undefined;
                        [key: `uint192[${string}]`]: undefined;
                        [key: `uint200[${string}]`]: undefined;
                        [key: `uint208[${string}]`]: undefined;
                        [key: `uint216[${string}]`]: undefined;
                        [key: `uint224[${string}]`]: undefined;
                        [key: `uint232[${string}]`]: undefined;
                        [key: `uint240[${string}]`]: undefined;
                        [key: `uint248[${string}]`]: undefined;
                    }
                    | { [key: string]: unknown },
                primaryType extends string,
            >(
                args: SignTypedDataParameters<
                    typedData,
                    primaryType,
                    undefined
                    | Account,
                >,
            ) => Promise<`0x${string}`>;
            switchChain: (args: SwitchChainParameters) => Promise<void>;
            transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
            type: string;
            uid: string;
            waitForCallsStatus: (
                parameters: WaitForCallsStatusParameters,
            ) => Promise<
                {
                    atomic: boolean;
                    capabilities?: { [key: string]: any }
                    | { [key: string]: any };
                    chainId: number;
                    id: string;
                    receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                    status: undefined | "success" | "pending" | "failure";
                    statusCode: number;
                    version: string;
                },
            >;
            watchAsset: (args: WatchAssetParams) => Promise<boolean>;
            writeContract: <
                const abi extends Abi
                | readonly unknown[],
                functionName extends string,
                args extends unknown,
                chainOverride extends undefined | Chain = undefined,
            >(
                args: WriteContractParameters<
                    abi,
                    functionName,
                    args,
                    undefined
                    | Chain,
                    undefined | Account,
                    chainOverride,
                >,
            ) => Promise<`0x${string}`>;
        }
        • account: undefined | Account

          The Account of the Client.

        • addChain: (args: AddChainParameters) => Promise<void>

          Adds an EVM chain to the wallet.

          import { createWalletClient, custom } from 'viem'
          import { optimism } from 'viem/chains'

          const client = createWalletClient({
          transport: custom(window.ethereum),
          })
          await client.addChain({ chain: optimism })
        • Optionalbatch?: { multicall?: boolean | { batchSize?: number; wait?: number } }

          Flags for batch settings.

          • Optionalmulticall?: boolean | { batchSize?: number; wait?: number }

            Toggle to enable eth_call multicall aggregation.

        • cacheTime: number

          Time (in ms) that cached data will remain in memory.

        • OptionalccipRead?:
              | false
              | {
                  request?: (parameters: CcipRequestParameters) => Promise<`0x${string}`>;
              }

          CCIP Read configuration.

        • chain: undefined | Chain

          Chain for the client.

        • deployContract: <
              const abi extends Abi
              | readonly unknown[],
              chainOverride extends undefined | Chain,
          >(
              args: DeployContractParameters<
                  abi,
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
              >,
          ) => Promise<`0x${string}`>

          Deploys a contract to the network, given bytecode and constructor arguments.

          import { createWalletClient, http } from 'viem'
          import { privateKeyToAccount } from 'viem/accounts'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          account: privateKeyToAccount('0x…'),
          chain: mainnet,
          transport: http(),
          })
          const hash = await client.deployContract({
          abi: [],
          account: '0x…,
          bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',
          })
        • Optionalexperimental_blockTag?: BlockTag

          Default block tag to use for RPC requests.

        • extend: <
              const client extends
                  {
                      account?: undefined;
                      batch?: undefined;
                      cacheTime?: undefined;
                      ccipRead?: undefined;
                      chain?: undefined;
                      experimental_blockTag?: undefined;
                      key?: undefined;
                      name?: undefined;
                      pollingInterval?: undefined;
                      request?: undefined;
                      transport?: undefined;
                      type?: undefined;
                      uid?: undefined;
                      [key: string]: unknown;
                  } & ExactPartial<
                      ExtendableProtectedActions<
                          Transport,
                          undefined
                          | Chain,
                          undefined | Account,
                      >,
                  >,
          >(
              fn: (
                  client: Client<
                      Transport,
                      undefined
                      | Chain,
                      undefined | Account,
                      WalletRpcSchema,
                      WalletActions<undefined | Chain, undefined | Account>,
                  >,
              ) => client,
          ) => Client<
              Transport,
              undefined
              | Chain,
              undefined | Account,
              WalletRpcSchema,
              { [K in string | number | symbol]: client[K] } & WalletActions<
                  undefined
                  | Chain,
                  undefined | Account,
              >,
          >
        • getAddresses: () => Promise<GetAddressesReturnType>

          Returns a list of account addresses owned by the wallet or client.

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const accounts = await client.getAddresses()
        • getCallsStatus: (
              parameters: GetCallsStatusParameters,
          ) => Promise<
              {
                  atomic: boolean;
                  capabilities?: { [key: string]: any }
                  | { [key: string]: any };
                  chainId: number;
                  id: string;
                  receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                  status: undefined | "success" | "pending" | "failure";
                  statusCode: number;
                  version: string;
              },
          >

          Returns the status of a call batch that was sent via sendCalls.

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })

          const { receipts, status } = await client.getCallsStatus({ id: '0xdeadbeef' })
        • getCapabilities: <chainId extends undefined | number>(
              parameters?: GetCapabilitiesParameters<chainId>,
          ) => Promise<
              {
                  [K in string
                  | number
                  | symbol]: (
                      chainId extends number
                          ? {
                              atomic?: { status: "supported"
                              | "ready"
                              | "unsupported" };
                              paymasterService?: { supported: boolean };
                              unstable_addSubAccount?: {
                                  keyTypes: ((...) | (...) | (...) | (...))[];
                                  supported: boolean;
                              };
                              [key: string]: any;
                          }
                          : ChainIdToCapabilities<
                              Capabilities<
                                  {
                                      atomic?: { status: ... };
                                      paymasterService?: { supported: ... };
                                      unstable_addSubAccount?: { keyTypes: ...; supported: ... };
                                      [key: string]: any;
                                  },
                              >,
                              number,
                          >
                  )[K]
              },
          >

          Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })

          const capabilities = await client.getCapabilities({
          account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
          })
        • getChainId: () => Promise<number>

          Returns the chain ID associated with the current network.

          import { createWalletClient, http } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const chainId = await client.getChainId()
          // 1
        • getPermissions: () => Promise<GetPermissionsReturnType>

          Gets the wallets current permissions.

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const permissions = await client.getPermissions()
        • key: string

          A key for the client.

        • name: string

          A name for the client.

        • pollingInterval: number

          Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds.

        • prepareAuthorization: (
              parameters: PrepareAuthorizationParameters<undefined | Account>,
          ) => Promise<PrepareAuthorizationReturnType>

          Prepares an EIP-7702 Authorization object for signing. This 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 the Authorization object.

          import { createWalletClient, http } from 'viem'
          import { privateKeyToAccount } from 'viem/accounts'
          import { mainnet } from 'viem/chains'

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

          const authorization = await client.prepareAuthorization({
          account: privateKeyToAccount('0x..'),
          contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
          })
          // Account Hoisting
          import { createWalletClient, http } from 'viem'
          import { privateKeyToAccount } from 'viem/accounts'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          account: privateKeyToAccount('0x…'),
          chain: mainnet,
          transport: http(),
          })

          const authorization = await client.prepareAuthorization({
          contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
          })
        • prepareTransactionRequest: <
              const request extends
                  (
                      | Omit<
                          {
                              accessList?: undefined;
                              authorizationList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: bigint;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: null
                              | `0x${string}`;
                              type?: "legacy";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              accessList?: AccessList;
                              authorizationList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: bigint;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: null
                              | `0x${string}`;
                              type?: "eip2930";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              accessList?: AccessList;
                              authorizationList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: undefined;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: null
                              | `0x${string}`;
                              type?: "eip1559";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              accessList?: AccessList;
                              authorizationList?: undefined;
                              blobs: readonly `0x${string}`[]
                              | readonly ByteArray[];
                              blobVersionedHashes?: readonly `0x${string}`[];
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: undefined;
                              kzg?: Kzg;
                              maxFeePerBlobGas: bigint;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: readonly BlobSidecar<`0x${string}`>[];
                              to: null | `0x${string}`;
                              type?: "eip4844";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              accessList?: AccessList;
                              authorizationList?: AuthorizationList<number, boolean>;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: undefined;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: null | `0x${string}`;
                              type?: "eip7702";
                              value?: bigint;
                          },
                          "from",
                      >
                  ) & { kzg?: Kzg } & {
                      nonceManager?: NonceManager;
                      parameters?: readonly PrepareTransactionRequestParameterType[];
                  },
              chainOverride extends undefined
              | Chain = undefined,
              accountOverride extends undefined | `0x${string}` | Account = undefined,
          >(
              args: PrepareTransactionRequestParameters<
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
                  accountOverride,
                  request,
              >,
          ) => Promise<
              {
                  [K in string
                  | number
                  | symbol]: (
                      UnionRequiredBy<
                          Extract<
                              UnionOmit<(...), (...)> & ((...) extends (...) ? (...) : (...)) & (
                                  (...) extends (...) ? (...) : (...)
                              ),
                              IsNever<(...)> extends true ? unknown : ExactPartial<(...)>,
                          > & { chainId?: number },
                          ParameterTypeToParameters<
                              request["parameters"] extends readonly PrepareTransactionRequestParameterType[]
                                  ? any[any][number]
                                  : | "chainId"
                                  | "nonce"
                                  | "type"
                                  | "gas"
                                  | "blobVersionedHashes"
                                  | "fees",
                          >,
                      > & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">)
                  )[K]
              },
          >

          Prepares a transaction request for signing.

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const request = await client.prepareTransactionRequest({
          account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
          to: '0x0000000000000000000000000000000000000000',
          value: 1n,
          })
          // Account Hoisting
          import { createWalletClient, http } from 'viem'
          import { privateKeyToAccount } from 'viem/accounts'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          account: privateKeyToAccount('0x…'),
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const request = await client.prepareTransactionRequest({
          to: '0x0000000000000000000000000000000000000000',
          value: 1n,
          })
        • request: EIP1193RequestFn<WalletRpcSchema>

          Request function wrapped with friendly error handling

        • requestAddresses: () => Promise<RequestAddressesReturnType>

          Requests a list of accounts managed by a wallet.

          Sends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).

          This API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const accounts = await client.requestAddresses()
        • requestPermissions: (
              args: {
                  eth_accounts: Record<string, any>;
                  [key: string]: Record<string, any>;
              },
          ) => Promise<RequestPermissionsReturnType>

          Requests permissions for a wallet.

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const permissions = await client.requestPermissions({
          eth_accounts: {}
          })
        • sendCalls: <
              const calls extends readonly unknown[],
              chainOverride extends undefined | Chain = undefined,
          >(
              parameters: SendCallsParameters<
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
                  calls,
              >,
          ) => Promise<{ capabilities?: { [key: string]: any }; id: string }>

          Requests the connected wallet to send a batch of calls.

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })

          const id = await client.sendCalls({
          account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
          calls: [
          {
          data: '0xdeadbeef',
          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
          },
          {
          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
          value: 69420n,
          },
          ],
          })
        • sendRawTransaction: (args: SendRawTransactionParameters) => Promise<`0x${string}`>

          Sends a signed transaction to the network

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'
          import { sendRawTransaction } from 'viem/wallet'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })

          const hash = await client.sendRawTransaction({
          serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'
          })
        • sendTransaction: <
              const request extends
                  (
                      | Omit<
                          {
                              accessList?: undefined;
                              authorizationList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: bigint;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: null
                              | `0x${string}`;
                              type?: "legacy";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              accessList?: AccessList;
                              authorizationList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: bigint;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: null
                              | `0x${string}`;
                              type?: "eip2930";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              accessList?: AccessList;
                              authorizationList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: undefined;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: null
                              | `0x${string}`;
                              type?: "eip1559";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              accessList?: AccessList;
                              authorizationList?: undefined;
                              blobs: readonly `0x${string}`[]
                              | readonly ByteArray[];
                              blobVersionedHashes?: readonly `0x${string}`[];
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: undefined;
                              kzg?: Kzg;
                              maxFeePerBlobGas: bigint;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: readonly BlobSidecar<`0x${string}`>[];
                              to: null | `0x${string}`;
                              type?: "eip4844";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              accessList?: AccessList;
                              authorizationList?: AuthorizationList<number, boolean>;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: undefined;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: null | `0x${string}`;
                              type?: "eip7702";
                              value?: bigint;
                          },
                          "from",
                      >
                  ) & { kzg?: Kzg },
              chainOverride extends undefined
              | Chain = undefined,
          >(
              args: SendTransactionParameters<
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
                  request,
              >,
          ) => Promise<`0x${string}`>

          Creates, signs, and sends a new transaction to the network.

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const hash = await client.sendTransaction({
          account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
          value: 1000000000000000000n,
          })
          // Account Hoisting
          import { createWalletClient, http } from 'viem'
          import { privateKeyToAccount } from 'viem/accounts'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          account: privateKeyToAccount('0x…'),
          chain: mainnet,
          transport: http(),
          })
          const hash = await client.sendTransaction({
          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
          value: 1000000000000000000n,
          })
        • showCallsStatus: (parameters: ShowCallsStatusParameters) => Promise<void>

          Requests for the wallet to show information about a call batch that was sent via sendCalls.

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })

          await client.showCallsStatus({ id: '0xdeadbeef' })
        • signAuthorization: (
              parameters: SignAuthorizationParameters<undefined | Account>,
          ) => Promise<SignAuthorizationReturnType>

          Signs an EIP-7702 Authorization object.

          With the calculated signature, you can:

          import { createWalletClient, http } from 'viem'
          import { privateKeyToAccount } from 'viem/accounts'
          import { mainnet } from 'viem/chains'

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

          const signature = await client.signAuthorization({
          account: privateKeyToAccount('0x..'),
          contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
          })
          // Account Hoisting
          import { createWalletClient, http } from 'viem'
          import { privateKeyToAccount } from 'viem/accounts'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          account: privateKeyToAccount('0x…'),
          chain: mainnet,
          transport: http(),
          })

          const signature = await client.signAuthorization({
          contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
          })
        • signMessage: (args: SignMessageParameters<undefined | Account>) => Promise<`0x${string}`>

          Calculates an Ethereum-specific signature in EIP-191 format: keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)).

          With the calculated signature, you can:

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const signature = await client.signMessage({
          account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
          message: 'hello world',
          })
          // Account Hoisting
          import { createWalletClient, http } from 'viem'
          import { privateKeyToAccount } from 'viem/accounts'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          account: privateKeyToAccount('0x…'),
          chain: mainnet,
          transport: http(),
          })
          const signature = await client.signMessage({
          message: 'hello world',
          })
        • signTransaction: <
              chainOverride extends undefined
              | Chain,
              const request extends
              
                      | Omit<
                          {
                              accessList?: undefined;
                              authorizationList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: bigint;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: null
                              | `0x${string}`;
                              type?: "legacy";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              accessList?: AccessList;
                              authorizationList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: bigint;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: null
                              | `0x${string}`;
                              type?: "eip2930";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              accessList?: AccessList;
                              authorizationList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: undefined;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: null
                              | `0x${string}`;
                              type?: "eip1559";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              accessList?: AccessList;
                              authorizationList?: undefined;
                              blobs: readonly `0x${string}`[]
                              | readonly ByteArray[];
                              blobVersionedHashes?: readonly `0x${string}`[];
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: undefined;
                              kzg?: Kzg;
                              maxFeePerBlobGas: bigint;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: readonly BlobSidecar<`0x${string}`>[];
                              to: null | `0x${string}`;
                              type?: "eip4844";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              accessList?: AccessList;
                              authorizationList?: AuthorizationList<number, boolean>;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: undefined;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: null | `0x${string}`;
                              type?: "eip7702";
                              value?: bigint;
                          },
                          "from",
                      > = UnionOmit<
                  ExtractChainFormatterParameters<
                      DeriveChain<undefined | Chain, chainOverride>,
                      "transactionRequest",
                      TransactionRequest,
                  >,
                  "from",
              >,
          >(
              args: SignTransactionParameters<
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
                  request,
              >,
          ) => Promise<
              TransactionSerialized<
                  GetTransactionType<
                      request,
                      | (request extends LegacyProperties ? "legacy" : never)
                      | (request extends EIP1559Properties ? "eip1559" : never)
                      | (request extends EIP2930Properties ? "eip2930" : never)
                      | (request extends EIP4844Properties ? "eip4844" : never)
                      | (request extends EIP7702Properties ? "eip7702" : never)
                      | (
                          request["type"] extends undefined
                          | string
                              ? Extract<any[any], string>
                              : never
                      ),
                  >,

                      | (
                          GetTransactionType<
                              request,
                              | (request extends LegacyProperties ? "legacy" : never)
                              | (request extends EIP1559Properties ? "eip1559" : never)
                              | (request extends EIP2930Properties ? "eip2930" : never)
                              | (request extends EIP4844Properties ? "eip4844" : never)
                              | (request extends EIP7702Properties ? "eip7702" : never)
                              | (
                                  request["type"] extends undefined
                                  | string
                                      ? Extract<any[any], string>
                                      : never
                              ),
                          > extends "eip1559"
                              ? `0x02${string}`
                              : never
                      )
                      | (
                          GetTransactionType<
                              request,
                              | (request extends LegacyProperties ? "legacy" : never)
                              | (request extends EIP1559Properties ? "eip1559" : never)
                              | (request extends EIP2930Properties ? "eip2930" : never)
                              | (request extends EIP4844Properties ? "eip4844" : never)
                              | (request extends EIP7702Properties ? "eip7702" : never)
                              | (
                                  request["type"] extends undefined
                                  | string
                                      ? Extract<any[any], string>
                                      : never
                              ),
                          > extends "eip2930"
                              ? `0x01${string}`
                              : never
                      )
                      | (
                          GetTransactionType<
                              request,
                              | (request extends LegacyProperties ? "legacy" : never)
                              | (request extends EIP1559Properties ? "eip1559" : never)
                              | (request extends EIP2930Properties ? "eip2930" : never)
                              | (request extends EIP4844Properties ? "eip4844" : never)
                              | (request extends EIP7702Properties ? "eip7702" : never)
                              | (
                                  request["type"] extends undefined
                                  | string
                                      ? Extract<any[any], string>
                                      : never
                              ),
                          > extends "eip4844"
                              ? `0x03${string}`
                              : never
                      )
                      | (
                          GetTransactionType<
                              request,
                              | (request extends LegacyProperties ? "legacy" : never)
                              | (request extends EIP1559Properties ? "eip1559" : never)
                              | (request extends EIP2930Properties ? "eip2930" : never)
                              | (request extends EIP4844Properties ? "eip4844" : never)
                              | (request extends EIP7702Properties ? "eip7702" : never)
                              | (
                                  request["type"] extends undefined
                                  | string
                                      ? Extract<any[any], string>
                                      : never
                              ),
                          > extends "eip7702"
                              ? `0x04${string}`
                              : never
                      )
                      | (
                          GetTransactionType<
                              request,
                              | (request extends LegacyProperties ? "legacy" : never)
                              | (request extends EIP1559Properties ? "eip1559" : never)
                              | (request extends EIP2930Properties ? "eip2930" : never)
                              | (request extends EIP4844Properties ? "eip4844" : never)
                              | (request extends EIP7702Properties ? "eip7702" : never)
                              | (
                                  request["type"] extends undefined
                                  | string
                                      ? Extract<any[any], string>
                                      : never
                              ),
                          > extends "legacy"
                              ? TransactionSerializedLegacy
                              : never
                      ),
              >,
          >

          Signs a transaction.

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const request = await client.prepareTransactionRequest({
          account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
          to: '0x0000000000000000000000000000000000000000',
          value: 1n,
          })
          const signature = await client.signTransaction(request)
          // Account Hoisting
          import { createWalletClient, http } from 'viem'
          import { privateKeyToAccount } from 'viem/accounts'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          account: privateKeyToAccount('0x…'),
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const request = await client.prepareTransactionRequest({
          to: '0x0000000000000000000000000000000000000000',
          value: 1n,
          })
          const signature = await client.signTransaction(request)
        • signTypedData: <
              const typedData extends
                  | {
                      address?: undefined;
                      bool?: undefined;
                      bytes?: undefined;
                      bytes1?: undefined;
                      bytes10?: undefined;
                      bytes11?: undefined;
                      bytes12?: undefined;
                      bytes13?: undefined;
                      bytes14?: undefined;
                      bytes15?: undefined;
                      bytes16?: undefined;
                      bytes17?: undefined;
                      bytes18?: undefined;
                      bytes19?: undefined;
                      bytes2?: undefined;
                      bytes20?: undefined;
                      bytes21?: undefined;
                      bytes22?: undefined;
                      bytes23?: undefined;
                      bytes24?: undefined;
                      bytes25?: undefined;
                      bytes26?: undefined;
                      bytes27?: undefined;
                      bytes28?: undefined;
                      bytes29?: undefined;
                      bytes3?: undefined;
                      bytes30?: undefined;
                      bytes31?: undefined;
                      bytes32?: undefined;
                      bytes4?: undefined;
                      bytes5?: undefined;
                      bytes6?: undefined;
                      bytes7?: undefined;
                      bytes8?: undefined;
                      bytes9?: undefined;
                      int104?: undefined;
                      int112?: undefined;
                      int120?: undefined;
                      int128?: undefined;
                      int136?: undefined;
                      int144?: undefined;
                      int152?: undefined;
                      int16?: undefined;
                      int160?: undefined;
                      int168?: undefined;
                      int176?: undefined;
                      int184?: undefined;
                      int192?: undefined;
                      int200?: undefined;
                      int208?: undefined;
                      int216?: undefined;
                      int224?: undefined;
                      int232?: undefined;
                      int24?: undefined;
                      int240?: undefined;
                      int248?: undefined;
                      int256?: undefined;
                      int32?: undefined;
                      int40?: undefined;
                      int48?: undefined;
                      int56?: undefined;
                      int64?: undefined;
                      int72?: undefined;
                      int8?: undefined;
                      int80?: undefined;
                      int88?: undefined;
                      int96?: undefined;
                      string?: undefined;
                      uint104?: undefined;
                      uint112?: undefined;
                      uint120?: undefined;
                      uint128?: undefined;
                      uint136?: undefined;
                      uint144?: undefined;
                      uint152?: undefined;
                      uint16?: undefined;
                      uint160?: undefined;
                      uint168?: undefined;
                      uint176?: undefined;
                      uint184?: undefined;
                      uint192?: undefined;
                      uint200?: undefined;
                      uint208?: undefined;
                      uint216?: undefined;
                      uint224?: undefined;
                      uint232?: undefined;
                      uint24?: undefined;
                      uint240?: undefined;
                      uint248?: undefined;
                      uint256?: undefined;
                      uint32?: undefined;
                      uint40?: undefined;
                      uint48?: undefined;
                      uint56?: undefined;
                      uint64?: undefined;
                      uint72?: undefined;
                      uint8?: undefined;
                      uint80?: undefined;
                      uint88?: undefined;
                      uint96?: undefined;
                      [key: string]: readonly TypedDataParameter[];
                      [key: `string[${string}]`]: undefined;
                      [key: `function[${string}]`]: undefined;
                      [key: `address[${string}]`]: undefined;
                      [key: `uint256[${string}]`]: undefined;
                      [key: `bytes32[${string}]`]: undefined;
                      [key: `bytes[${string}]`]: undefined;
                      [key: `uint8[${string}]`]: undefined;
                      [key: `uint32[${string}]`]: undefined;
                      [key: `bytes1[${string}]`]: undefined;
                      [key: `bool[${string}]`]: undefined;
                      [key: `bytes10[${string}]`]: undefined;
                      [key: `bytes5[${string}]`]: undefined;
                      [key: `bytes3[${string}]`]: undefined;
                      [key: `bytes4[${string}]`]: undefined;
                      [key: `bytes11[${string}]`]: undefined;
                      [key: `bytes7[${string}]`]: undefined;
                      [key: `bytes2[${string}]`]: undefined;
                      [key: `bytes23[${string}]`]: undefined;
                      [key: `bytes9[${string}]`]: undefined;
                      [key: `bytes6[${string}]`]: undefined;
                      [key: `bytes8[${string}]`]: undefined;
                      [key: `bytes12[${string}]`]: undefined;
                      [key: `bytes13[${string}]`]: undefined;
                      [key: `bytes14[${string}]`]: undefined;
                      [key: `bytes15[${string}]`]: undefined;
                      [key: `bytes16[${string}]`]: undefined;
                      [key: `bytes17[${string}]`]: undefined;
                      [key: `bytes18[${string}]`]: undefined;
                      [key: `bytes19[${string}]`]: undefined;
                      [key: `bytes20[${string}]`]: undefined;
                      [key: `bytes21[${string}]`]: undefined;
                      [key: `bytes22[${string}]`]: undefined;
                      [key: `bytes24[${string}]`]: undefined;
                      [key: `bytes25[${string}]`]: undefined;
                      [key: `bytes26[${string}]`]: undefined;
                      [key: `bytes27[${string}]`]: undefined;
                      [key: `bytes28[${string}]`]: undefined;
                      [key: `bytes29[${string}]`]: undefined;
                      [key: `bytes30[${string}]`]: undefined;
                      [key: `bytes31[${string}]`]: undefined;
                      [key: `int[${string}]`]: undefined;
                      [key: `int56[${string}]`]: undefined;
                      [key: `int8[${string}]`]: undefined;
                      [key: `int16[${string}]`]: undefined;
                      [key: `int24[${string}]`]: undefined;
                      [key: `int32[${string}]`]: undefined;
                      [key: `int40[${string}]`]: undefined;
                      [key: `int48[${string}]`]: undefined;
                      [key: `int64[${string}]`]: undefined;
                      [key: `int72[${string}]`]: undefined;
                      [key: `int80[${string}]`]: undefined;
                      [key: `int88[${string}]`]: undefined;
                      [key: `int96[${string}]`]: undefined;
                      [key: `int104[${string}]`]: undefined;
                      [key: `int112[${string}]`]: undefined;
                      [key: `int120[${string}]`]: undefined;
                      [key: `int128[${string}]`]: undefined;
                      [key: `int136[${string}]`]: undefined;
                      [key: `int144[${string}]`]: undefined;
                      [key: `int152[${string}]`]: undefined;
                      [key: `int160[${string}]`]: undefined;
                      [key: `int168[${string}]`]: undefined;
                      [key: `int176[${string}]`]: undefined;
                      [key: `int184[${string}]`]: undefined;
                      [key: `int192[${string}]`]: undefined;
                      [key: `int200[${string}]`]: undefined;
                      [key: `int208[${string}]`]: undefined;
                      [key: `int216[${string}]`]: undefined;
                      [key: `int224[${string}]`]: undefined;
                      [key: `int232[${string}]`]: undefined;
                      [key: `int240[${string}]`]: undefined;
                      [key: `int248[${string}]`]: undefined;
                      [key: `int256[${string}]`]: undefined;
                      [key: `uint[${string}]`]: undefined;
                      [key: `uint56[${string}]`]: undefined;
                      [key: `uint16[${string}]`]: undefined;
                      [key: `uint24[${string}]`]: undefined;
                      [key: `uint40[${string}]`]: undefined;
                      [key: `uint48[${string}]`]: undefined;
                      [key: `uint64[${string}]`]: undefined;
                      [key: `uint72[${string}]`]: undefined;
                      [key: `uint80[${string}]`]: undefined;
                      [key: `uint88[${string}]`]: undefined;
                      [key: `uint96[${string}]`]: undefined;
                      [key: `uint104[${string}]`]: undefined;
                      [key: `uint112[${string}]`]: undefined;
                      [key: `uint120[${string}]`]: undefined;
                      [key: `uint128[${string}]`]: undefined;
                      [key: `uint136[${string}]`]: undefined;
                      [key: `uint144[${string}]`]: undefined;
                      [key: `uint152[${string}]`]: undefined;
                      [key: `uint160[${string}]`]: undefined;
                      [key: `uint168[${string}]`]: undefined;
                      [key: `uint176[${string}]`]: undefined;
                      [key: `uint184[${string}]`]: undefined;
                      [key: `uint192[${string}]`]: undefined;
                      [key: `uint200[${string}]`]: undefined;
                      [key: `uint208[${string}]`]: undefined;
                      [key: `uint216[${string}]`]: undefined;
                      [key: `uint224[${string}]`]: undefined;
                      [key: `uint232[${string}]`]: undefined;
                      [key: `uint240[${string}]`]: undefined;
                      [key: `uint248[${string}]`]: undefined;
                  }
                  | { [key: string]: unknown },
              primaryType extends string,
          >(
              args: SignTypedDataParameters<
                  typedData,
                  primaryType,
                  undefined
                  | Account,
              >,
          ) => Promise<`0x${string}`>

          Signs typed data and calculates an Ethereum-specific signature in EIP-191 format: keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)).

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const signature = await client.signTypedData({
          account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
          domain: {
          name: 'Ether Mail',
          version: '1',
          chainId: 1,
          verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
          },
          types: {
          Person: [
          { name: 'name', type: 'string' },
          { name: 'wallet', type: 'address' },
          ],
          Mail: [
          { name: 'from', type: 'Person' },
          { name: 'to', type: 'Person' },
          { name: 'contents', type: 'string' },
          ],
          },
          primaryType: 'Mail',
          message: {
          from: {
          name: 'Cow',
          wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
          },
          to: {
          name: 'Bob',
          wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
          },
          contents: 'Hello, Bob!',
          },
          })
          // Account Hoisting
          import { createWalletClient, http } from 'viem'
          import { privateKeyToAccount } from 'viem/accounts'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          account: privateKeyToAccount('0x…'),
          chain: mainnet,
          transport: http(),
          })
          const signature = await client.signTypedData({
          domain: {
          name: 'Ether Mail',
          version: '1',
          chainId: 1,
          verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
          },
          types: {
          Person: [
          { name: 'name', type: 'string' },
          { name: 'wallet', type: 'address' },
          ],
          Mail: [
          { name: 'from', type: 'Person' },
          { name: 'to', type: 'Person' },
          { name: 'contents', type: 'string' },
          ],
          },
          primaryType: 'Mail',
          message: {
          from: {
          name: 'Cow',
          wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
          },
          to: {
          name: 'Bob',
          wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
          },
          contents: 'Hello, Bob!',
          },
          })
        • switchChain: (args: SwitchChainParameters) => Promise<void>

          Switch the target chain in a wallet.

          import { createWalletClient, custom } from 'viem'
          import { mainnet, optimism } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          await client.switchChain({ id: optimism.id })
        • transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>

          The RPC transport

        • type: string

          The type of client.

        • uid: string

          A unique ID for the client.

        • waitForCallsStatus: (
              parameters: WaitForCallsStatusParameters,
          ) => Promise<
              {
                  atomic: boolean;
                  capabilities?: { [key: string]: any }
                  | { [key: string]: any };
                  chainId: number;
                  id: string;
                  receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                  status: undefined | "success" | "pending" | "failure";
                  statusCode: number;
                  version: string;
              },
          >

          Waits for the status & receipts of a call bundle that was sent via sendCalls.

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })

          const { receipts, status } = await waitForCallsStatus(client, { id: '0xdeadbeef' })
        • watchAsset: (args: WatchAssetParams) => Promise<boolean>

          Adds an EVM chain to the wallet.

          import { createWalletClient, custom } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const success = await client.watchAsset({
          type: 'ERC20',
          options: {
          address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
          decimals: 18,
          symbol: 'WETH',
          },
          })
        • writeContract: <
              const abi extends Abi
              | readonly unknown[],
              functionName extends string,
              args extends unknown,
              chainOverride extends undefined | Chain = undefined,
          >(
              args: WriteContractParameters<
                  abi,
                  functionName,
                  args,
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
              >,
          ) => Promise<`0x${string}`>

          Executes a write function on a contract.

          A "write" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a Transaction is needed to be broadcast in order to change the state.

          Internally, uses a Wallet Client to call the sendTransaction action with ABI-encoded data.

          Warning: The write internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to simulate the contract write with contract.simulate before you execute it.

          import { createWalletClient, custom, parseAbi } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const hash = await client.writeContract({
          address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
          abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),
          functionName: 'mint',
          args: [69420],
          })
          // With Validation
          import { createWalletClient, custom, parseAbi } from 'viem'
          import { mainnet } from 'viem/chains'

          const client = createWalletClient({
          chain: mainnet,
          transport: custom(window.ethereum),
          })
          const { request } = await client.simulateContract({
          address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
          abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),
          functionName: 'mint',
          args: [69420],
          }
          const hash = await client.writeContract(request)
      • chainId: number
      • owner: `0x${string}`
      • appDomain: string
      • index: number

      Returns Promise<`0x${string}`>