Implements

Constructors

Methods

  • Creates a client from an account.

    Parameters

    • params: {
          account:
              | `0x${string}`
              | {
                  address: `0x${string}`;
                  experimental_signAuthorization: (
                      parameters: Authorization,
                  ) => Promise<SignAuthorizationReturnType>;
                  nonceManager?: NonceManager;
                  publicKey: `0x${string}`;
                  sign: (parameters: { hash: `0x${string}` }) => Promise<`0x${string}`>;
                  signMessage: (
                      __namedParameters: { message: SignableMessage },
                  ) => Promise<`0x${string}`>;
                  signTransaction: <
                      serializer extends
                          SerializeTransactionFn<TransactionSerializable> = SerializeTransactionFn<
                          TransactionSerializable,
                      >,
                      transaction extends
                          OneOf<TransactionSerializable> = Parameters<serializer>[0],
                  >(
                      transaction: transaction,
                      options?: { serializer?: serializer },
                  ) => Promise<
                      IsNarrowable<
                          TransactionSerialized<GetTransactionType<transaction>>,
                          `0x${string}`,
                      > extends true
                          ? TransactionSerialized<GetTransactionType<transaction>>
                          : `0x${string}`,
                  >;
                  signTypedData: <
                      const typedData extends
                          | Record<string, unknown>
                          | {
                              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: `bool[${string}]`]: undefined;
                              [key: `uint8[${string}]`]: undefined;
                              [key: `bytes[${string}]`]: undefined;
                              [key: `bytes1[${string}]`]: undefined;
                              [key: `bytes18[${string}]`]: undefined;
                              [key: `bytes5[${string}]`]: undefined;
                              [key: `bytes23[${string}]`]: undefined;
                              [key: `bytes2[${string}]`]: undefined;
                              [key: `bytes3[${string}]`]: undefined;
                              [key: `bytes4[${string}]`]: undefined;
                              [key: `bytes6[${string}]`]: undefined;
                              [key: `bytes7[${string}]`]: undefined;
                              [key: `bytes8[${string}]`]: undefined;
                              [key: `bytes9[${string}]`]: undefined;
                              [key: `bytes10[${string}]`]: undefined;
                              [key: `bytes11[${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: `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: `int8[${string}]`]: undefined;
                              [key: `int16[${string}]`]: undefined;
                              [key: `int24[${string}]`]: undefined;
                              [key: `int32[${string}]`]: undefined;
                              [key: `int40[${string}]`]: undefined;
                              [key: `int48[${string}]`]: undefined;
                              [key: `int56[${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: `uint16[${string}]`]: undefined;
                              [key: `uint24[${string}]`]: undefined;
                              [key: `uint32[${string}]`]: undefined;
                              [key: `uint40[${string}]`]: undefined;
                              [key: `uint48[${string}]`]: undefined;
                              [key: `uint56[${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;
                          },
                      primaryType extends string
                      | number
                      | symbol = keyof typedData,
                  >(
                      parameters: TypedDataDefinition<typedData, primaryType>,
                  ) => Promise<`0x${string}`>;
                  source: "privateKey";
                  type: "local";
              };
      }

    Returns {
        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}`>;
        extend: <
            const client extends
                {
                    account?: undefined;
                    batch?: undefined;
                    cacheTime?: undefined;
                    ccipRead?: undefined;
                    chain?: 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>;
        getChainId: () => Promise<number>;
        getPermissions: () => Promise<GetPermissionsReturnType>;
        key: string;
        name: string;
        pollingInterval: number;
        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]
                                : | "nonce"
                                | "fees"
                                | "gas"
                                | "blobVersionedHashes"
                                | "chainId"
                                | "type",
                        >,
                    > & (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>;
        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}`>;
        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: `bool[${string}]`]: undefined;
                    [key: `uint8[${string}]`]: undefined;
                    [key: `bytes[${string}]`]: undefined;
                    [key: `bytes1[${string}]`]: undefined;
                    [key: `bytes18[${string}]`]: undefined;
                    [key: `bytes5[${string}]`]: undefined;
                    [key: `bytes23[${string}]`]: undefined;
                    [key: `bytes2[${string}]`]: undefined;
                    [key: `bytes3[${string}]`]: undefined;
                    [key: `bytes4[${string}]`]: undefined;
                    [key: `bytes6[${string}]`]: undefined;
                    [key: `bytes7[${string}]`]: undefined;
                    [key: `bytes8[${string}]`]: undefined;
                    [key: `bytes9[${string}]`]: undefined;
                    [key: `bytes10[${string}]`]: undefined;
                    [key: `bytes11[${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: `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: `int8[${string}]`]: undefined;
                    [key: `int16[${string}]`]: undefined;
                    [key: `int24[${string}]`]: undefined;
                    [key: `int32[${string}]`]: undefined;
                    [key: `int40[${string}]`]: undefined;
                    [key: `int48[${string}]`]: undefined;
                    [key: `int56[${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: `uint16[${string}]`]: undefined;
                    [key: `uint24[${string}]`]: undefined;
                    [key: `uint32[${string}]`]: undefined;
                    [key: `uint40[${string}]`]: undefined;
                    [key: `uint48[${string}]`]: undefined;
                    [key: `uint56[${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;
        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}`>;
    }

    WalletClient

    • 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...',
      })
    • extend: <
          const client extends
              {
                  account?: undefined;
                  batch?: undefined;
                  cacheTime?: undefined;
                  ccipRead?: undefined;
                  chain?: 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()
    • 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.

    • 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]
                              : | "nonce"
                              | "fees"
                              | "gas"
                              | "blobVersionedHashes"
                              | "chainId"
                              | "type",
                      >,
                  > & (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: {}
      })
    • 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,
      })
    • 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: `bool[${string}]`]: undefined;
                  [key: `uint8[${string}]`]: undefined;
                  [key: `bytes[${string}]`]: undefined;
                  [key: `bytes1[${string}]`]: undefined;
                  [key: `bytes18[${string}]`]: undefined;
                  [key: `bytes5[${string}]`]: undefined;
                  [key: `bytes23[${string}]`]: undefined;
                  [key: `bytes2[${string}]`]: undefined;
                  [key: `bytes3[${string}]`]: undefined;
                  [key: `bytes4[${string}]`]: undefined;
                  [key: `bytes6[${string}]`]: undefined;
                  [key: `bytes7[${string}]`]: undefined;
                  [key: `bytes8[${string}]`]: undefined;
                  [key: `bytes9[${string}]`]: undefined;
                  [key: `bytes10[${string}]`]: undefined;
                  [key: `bytes11[${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: `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: `int8[${string}]`]: undefined;
                  [key: `int16[${string}]`]: undefined;
                  [key: `int24[${string}]`]: undefined;
                  [key: `int32[${string}]`]: undefined;
                  [key: `int40[${string}]`]: undefined;
                  [key: `int48[${string}]`]: undefined;
                  [key: `int56[${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: `uint16[${string}]`]: undefined;
                  [key: `uint24[${string}]`]: undefined;
                  [key: `uint32[${string}]`]: undefined;
                  [key: `uint40[${string}]`]: undefined;
                  [key: `uint48[${string}]`]: undefined;
                  [key: `uint56[${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.

    • 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)
  • Creates an account from a private key.

    Parameters

    • params: { privateKey?: `0x${string}` }

    Returns {
        address: `0x${string}`;
        experimental_signAuthorization: (
            parameters: Authorization,
        ) => Promise<SignAuthorizationReturnType>;
        nonceManager?: NonceManager;
        publicKey: `0x${string}`;
        sign: (parameters: { hash: `0x${string}` }) => Promise<`0x${string}`>;
        signMessage: (
            __namedParameters: { message: SignableMessage },
        ) => Promise<`0x${string}`>;
        signTransaction: <
            serializer extends
                SerializeTransactionFn<TransactionSerializable> = SerializeTransactionFn<
                TransactionSerializable,
            >,
            transaction extends
                OneOf<TransactionSerializable> = Parameters<serializer>[0],
        >(
            transaction: transaction,
            options?: { serializer?: serializer },
        ) => Promise<
            IsNarrowable<
                TransactionSerialized<GetTransactionType<transaction>>,
                `0x${string}`,
            > extends true
                ? TransactionSerialized<GetTransactionType<transaction>>
                : `0x${string}`,
        >;
        signTypedData: <
            const typedData extends
                | Record<string, unknown>
                | {
                    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: `bool[${string}]`]: undefined;
                    [key: `uint8[${string}]`]: undefined;
                    [key: `bytes[${string}]`]: undefined;
                    [key: `bytes1[${string}]`]: undefined;
                    [key: `bytes18[${string}]`]: undefined;
                    [key: `bytes5[${string}]`]: undefined;
                    [key: `bytes23[${string}]`]: undefined;
                    [key: `bytes2[${string}]`]: undefined;
                    [key: `bytes3[${string}]`]: undefined;
                    [key: `bytes4[${string}]`]: undefined;
                    [key: `bytes6[${string}]`]: undefined;
                    [key: `bytes7[${string}]`]: undefined;
                    [key: `bytes8[${string}]`]: undefined;
                    [key: `bytes9[${string}]`]: undefined;
                    [key: `bytes10[${string}]`]: undefined;
                    [key: `bytes11[${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: `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: `int8[${string}]`]: undefined;
                    [key: `int16[${string}]`]: undefined;
                    [key: `int24[${string}]`]: undefined;
                    [key: `int32[${string}]`]: undefined;
                    [key: `int40[${string}]`]: undefined;
                    [key: `int48[${string}]`]: undefined;
                    [key: `int56[${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: `uint16[${string}]`]: undefined;
                    [key: `uint24[${string}]`]: undefined;
                    [key: `uint32[${string}]`]: undefined;
                    [key: `uint40[${string}]`]: undefined;
                    [key: `uint48[${string}]`]: undefined;
                    [key: `uint56[${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;
                },
            primaryType extends string
            | number
            | symbol = keyof typedData,
        >(
            parameters: TypedDataDefinition<typedData, primaryType>,
        ) => Promise<`0x${string}`>;
        source: "privateKey";
        type: "local";
    }

    PrivateKeyAccount