hoodchain - v0.1.0
    Preparing search index...

    Interface HoodClient

    A connected hoodchain client: a viem public client (multicall batching on), an optional wallet client, and the resolved chain.

    interface HoodClient {
        account: Account | null;
        acknowledgeStockTokenEligibility: boolean;
        chain: Chain;
        network: HoodNetwork;
        public: {
            account: undefined;
            batch?: {
                multicall?:
                    | boolean
                    | { batchSize?: number; deployless?: boolean; wait?: number };
            };
            cacheTime: number;
            call: (
                parameters: CallParameters<Chain | undefined>,
            ) => Promise<CallReturnType>;
            ccipRead?:
                | false
                | {
                    request?: (
                        parameters: CcipRequestParameters,
                    ) => Promise<`0x${string}`>;
                };
            chain: Chain
            | undefined;
            createAccessList: (
                parameters: CreateAccessListParameters<Chain | undefined>,
            ) => Promise<{ accessList: AccessList; gasUsed: bigint }>;
            createBlockFilter: () => Promise<
                {
                    id: `0x${string}`;
                    request: EIP1193RequestFn<
                        readonly [
                            {
                                Method: "eth_getFilterChanges";
                                Parameters: [filterId: `0x${string}`];
                                ReturnType: `0x${string}`[] | RpcLog[];
                            },
                            {
                                Method: "eth_getFilterLogs";
                                Parameters: [filterId: `0x${string}`];
                                ReturnType: RpcLog[];
                            },
                            {
                                Method: "eth_uninstallFilter";
                                Parameters: [filterId: `0x${string}`];
                                ReturnType: boolean;
                            },
                        ],
                    >;
                    type: "block";
                },
            >;
            createContractEventFilter: <
                const abi extends Abi
                | readonly unknown[],
                eventName extends string | undefined,
                args extends Record<string, unknown> | readonly unknown[] | undefined,
                strict extends boolean | undefined = undefined,
                fromBlock extends bigint | BlockTag | undefined = undefined,
                toBlock extends bigint | BlockTag | undefined = undefined,
            >(
                args: CreateContractEventFilterParameters<
                    abi,
                    eventName,
                    args,
                    strict,
                    fromBlock,
                    toBlock,
                >,
            ) => Promise<
                CreateContractEventFilterReturnType<
                    abi,
                    eventName,
                    args,
                    strict,
                    fromBlock,
                    toBlock,
                >,
            >;
            createEventFilter: <
                const abiEvent extends AbiEvent
                | undefined = undefined,
                const abiEvents extends
                    readonly unknown[] | readonly AbiEvent[] | undefined = abiEvent extends AbiEvent
                    ? [abiEvent]
                    : undefined,
                strict extends boolean
                | undefined = undefined,
                fromBlock extends bigint | BlockTag | undefined = undefined,
                toBlock extends bigint | BlockTag | undefined = undefined,
                _EventName extends string | undefined = MaybeAbiEventName<abiEvent>,
                _Args extends
                    Record<string, unknown> | readonly unknown[] | undefined = undefined,
            >(
                args?: CreateEventFilterParameters<
                    abiEvent,
                    abiEvents,
                    strict,
                    fromBlock,
                    toBlock,
                    _EventName,
                    _Args,
                >,
            ) => Promise<
                {
                    [K in string
                    | number
                    | symbol]: Filter<
                        "event",
                        abiEvents,
                        _EventName,
                        _Args,
                        strict,
                        fromBlock,
                        toBlock,
                    >[K]
                },
            >;
            createPendingTransactionFilter: () => Promise<
                {
                    id: `0x${string}`;
                    request: EIP1193RequestFn<
                        readonly [
                            {
                                Method: "eth_getFilterChanges";
                                Parameters: [filterId: `0x${string}`];
                                ReturnType: `0x${string}`[] | RpcLog[];
                            },
                            {
                                Method: "eth_getFilterLogs";
                                Parameters: [filterId: `0x${string}`];
                                ReturnType: RpcLog[];
                            },
                            {
                                Method: "eth_uninstallFilter";
                                Parameters: [filterId: `0x${string}`];
                                ReturnType: boolean;
                            },
                        ],
                    >;
                    type: "transaction";
                },
            >;
            dataSuffix?: DataSuffix;
            estimateContractGas: <
                chain extends Chain
                | undefined,
                const abi extends Abi | readonly unknown[],
                functionName extends string,
                args extends unknown,
            >(
                args: EstimateContractGasParameters<abi, functionName, args, chain>,
            ) => Promise<bigint>;
            estimateFeesPerGas: <
                chainOverride extends Chain
                | undefined = undefined,
                type extends FeeValuesType = "eip1559",
            >(
                args?: EstimateFeesPerGasParameters<
                    Chain
                    | undefined,
                    chainOverride,
                    type,
                >,
            ) => Promise<EstimateFeesPerGasReturnType<type>>;
            estimateGas: (
                args: EstimateGasParameters<Chain | undefined>,
            ) => Promise<bigint>;
            estimateMaxPriorityFeePerGas: <
                chainOverride extends Chain
                | undefined = undefined,
            >(
                args?: { chain: chainOverride | null },
            ) => Promise<bigint>;
            experimental_blockTag?: BlockTag;
            extend: <
                const client extends
                    {
                        account?: undefined;
                        batch?: undefined;
                        cacheTime?: undefined;
                        ccipRead?: undefined;
                        chain?: undefined;
                        dataSuffix?: undefined;
                        experimental_blockTag?: undefined;
                        key?: undefined;
                        name?: undefined;
                        pollingInterval?: undefined;
                        request?: undefined;
                        tokens?: undefined;
                        transport?: undefined;
                        type?: undefined;
                        uid?: undefined;
                        [key: string]: unknown;
                    } & ExactPartial<
                        ExtendableProtectedActions<
                            Transport,
                            Chain
                            | undefined,
                            undefined,
                            Tokens | undefined,
                        >,
                    >,
            >(
                fn: (
                    client: Client<
                        Transport,
                        Chain
                        | undefined,
                        undefined,
                        PublicRpcSchema,
                        PublicActions<
                            Transport,
                            Chain
                            | undefined,
                            undefined,
                            Tokens | undefined,
                        >,
                        Tokens | undefined,
                    >,
                ) => client,
            ) => Client<
                Transport,
                Chain
                | undefined,
                undefined,
                PublicRpcSchema,
                { [K in string | number | symbol]: client[K] } & PublicActions<
                    Transport,
                    Chain
                    | undefined,
                    undefined,
                    Tokens | undefined,
                >,
                Tokens | undefined,
            >;
            fillTransaction: <
                chainOverride extends Chain
                | undefined = undefined,
                accountOverride extends `0x${string}` | Account | undefined = undefined,
            >(
                args: FillTransactionParameters<
                    Chain
                    | undefined,
                    undefined,
                    chainOverride,
                    accountOverride,
                >,
            ) => Promise<FillTransactionReturnType<Chain | undefined, chainOverride>>;
            getBalance: (args: GetBalanceParameters) => Promise<bigint>;
            getBlobBaseFee: () => Promise<bigint>;
            getBlock: <
                includeTransactions extends boolean = false,
                blockTag extends BlockTag = "latest",
            >(
                args?: GetBlockParameters<includeTransactions, blockTag>,
            ) => Promise<
                {
                    baseFeePerGas: bigint
                    | null;
                    blobGasUsed: bigint;
                    difficulty: bigint;
                    excessBlobGas: bigint;
                    extraData: `0x${string}`;
                    gasLimit: bigint;
                    gasUsed: bigint;
                    hash: blockTag extends "pending" ? null : `0x${string}`;
                    logsBloom: blockTag extends "pending" ? null : `0x${string}`;
                    miner: `0x${string}`;
                    mixHash: `0x${string}`;
                    nonce: blockTag extends "pending" ? null : `0x${string}`;
                    number: blockTag extends "pending" ? null : bigint;
                    parentBeaconBlockRoot?: `0x${string}`;
                    parentHash: `0x${string}`;
                    receiptsRoot: `0x${string}`;
                    sealFields: `0x${string}`[];
                    sha3Uncles: `0x${string}`;
                    size: bigint;
                    stateRoot: `0x${string}`;
                    timestamp: bigint;
                    totalDifficulty: bigint | null;
                    transactions: includeTransactions extends true
                        ? (
                            | {
                                accessList?: undefined;
                                authorizationList?: undefined;
                                blobVersionedHashes?: undefined;
                                blockHash: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : `0x${string}`;
                                blockNumber: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : bigint;
                                blockTimestamp?: bigint;
                                chainId?: number;
                                from: `0x${string}`;
                                gas: bigint;
                                gasPrice: bigint;
                                hash: `0x${string}`;
                                input: `0x${string}`;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: undefined;
                                maxPriorityFeePerGas?: undefined;
                                nonce: number;
                                r: `0x${string}`;
                                s: `0x${string}`;
                                to: `0x${string}` | null;
                                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : number;
                                type: "legacy";
                                typeHex: `0x${string}` | null;
                                v: bigint;
                                value: bigint;
                                yParity?: undefined;
                            }
                            | {
                                accessList: AccessList;
                                authorizationList?: undefined;
                                blobVersionedHashes?: undefined;
                                blockHash: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : `0x${string}`;
                                blockNumber: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : bigint;
                                blockTimestamp?: bigint;
                                chainId: number;
                                from: `0x${string}`;
                                gas: bigint;
                                gasPrice: bigint;
                                hash: `0x${string}`;
                                input: `0x${string}`;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: undefined;
                                maxPriorityFeePerGas?: undefined;
                                nonce: number;
                                r: `0x${string}`;
                                s: `0x${string}`;
                                to: `0x${string}` | null;
                                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : number;
                                type: "eip2930";
                                typeHex: `0x${string}` | null;
                                v: bigint;
                                value: bigint;
                                yParity: number;
                            }
                            | {
                                accessList: AccessList;
                                authorizationList?: undefined;
                                blobVersionedHashes?: undefined;
                                blockHash: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : `0x${string}`;
                                blockNumber: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : bigint;
                                blockTimestamp?: bigint;
                                chainId: number;
                                from: `0x${string}`;
                                gas: bigint;
                                gasPrice?: undefined;
                                hash: `0x${string}`;
                                input: `0x${string}`;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas: bigint;
                                maxPriorityFeePerGas: bigint;
                                nonce: number;
                                r: `0x${string}`;
                                s: `0x${string}`;
                                to: `0x${string}` | null;
                                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : number;
                                type: "eip1559";
                                typeHex: `0x${string}` | null;
                                v: bigint;
                                value: bigint;
                                yParity: number;
                            }
                            | {
                                accessList: AccessList;
                                authorizationList?: undefined;
                                blobVersionedHashes: readonly `0x${string}`[];
                                blockHash: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : `0x${string}`;
                                blockNumber: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : bigint;
                                blockTimestamp?: bigint;
                                chainId: number;
                                from: `0x${string}`;
                                gas: bigint;
                                gasPrice?: undefined;
                                hash: `0x${string}`;
                                input: `0x${string}`;
                                maxFeePerBlobGas: bigint;
                                maxFeePerGas: bigint;
                                maxPriorityFeePerGas: bigint;
                                nonce: number;
                                r: `0x${string}`;
                                s: `0x${string}`;
                                to: `0x${string}` | null;
                                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : number;
                                type: "eip4844";
                                typeHex: `0x${string}` | null;
                                v: bigint;
                                value: bigint;
                                yParity: number;
                            }
                            | {
                                accessList: AccessList;
                                authorizationList: SignedAuthorizationList;
                                blobVersionedHashes?: undefined;
                                blockHash: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : `0x${string}`;
                                blockNumber: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : bigint;
                                blockTimestamp?: bigint;
                                chainId: number;
                                from: `0x${string}`;
                                gas: bigint;
                                gasPrice?: undefined;
                                hash: `0x${string}`;
                                input: `0x${string}`;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas: bigint;
                                maxPriorityFeePerGas: bigint;
                                nonce: number;
                                r: `0x${string}`;
                                s: `0x${string}`;
                                to: `0x${string}` | null;
                                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                                    ? null
                                    : number;
                                type: "eip7702";
                                typeHex: `0x${string}` | null;
                                v: bigint;
                                value: bigint;
                                yParity: number;
                            }
                        )[]
                        : `0x${string}`[];
                    transactionsRoot: `0x${string}`;
                    uncles: `0x${string}`[];
                    withdrawals?: Withdrawal[];
                    withdrawalsRoot?: `0x${string}`;
                },
            >;
            getBlockNumber: (args?: GetBlockNumberParameters) => Promise<bigint>;
            getBlockReceipts: (
                args?: GetBlockReceiptsParameters,
            ) => Promise<GetBlockReceiptsReturnType<Chain | undefined>>;
            getBlockTransactionCount: (
                args?: GetBlockTransactionCountParameters,
            ) => Promise<number>;
            getBytecode: (args: GetCodeParameters) => Promise<GetCodeReturnType>;
            getChainId: () => Promise<number>;
            getCode: (args: GetCodeParameters) => Promise<GetCodeReturnType>;
            getContractEvents: <
                const abi extends Abi
                | readonly unknown[],
                eventName extends string | undefined = undefined,
                strict extends boolean | undefined = undefined,
                fromBlock extends bigint | BlockTag | undefined = undefined,
                toBlock extends bigint | BlockTag | undefined = undefined,
            >(
                args: GetContractEventsParameters<
                    abi,
                    eventName,
                    strict,
                    fromBlock,
                    toBlock,
                >,
            ) => Promise<
                GetContractEventsReturnType<
                    abi,
                    eventName,
                    strict,
                    fromBlock,
                    toBlock,
                >,
            >;
            getDelegation: (
                args: GetDelegationParameters,
            ) => Promise<GetDelegationReturnType>;
            getEip712Domain: (
                args: GetEip712DomainParameters,
            ) => Promise<GetEip712DomainReturnType>;
            getEnsAddress: (
                args: {
                    blockNumber?: bigint;
                    blockTag?: BlockTag;
                    coinType?: bigint;
                    gatewayUrls?: string[];
                    name: string;
                    strict?: boolean;
                    universalResolverAddress?: `0x${string}`;
                },
            ) => Promise<GetEnsAddressReturnType>;
            getEnsAvatar: (
                args: {
                    assetGatewayUrls?: AssetGatewayUrls;
                    blockNumber?: bigint;
                    blockTag?: BlockTag;
                    gatewayUrls?: string[];
                    name: string;
                    strict?: boolean;
                    universalResolverAddress?: `0x${string}`;
                },
            ) => Promise<GetEnsAvatarReturnType>;
            getEnsName: (
                args: {
                    address: `0x${string}`;
                    blockNumber?: bigint;
                    blockTag?: BlockTag;
                    coinType?: bigint;
                    gatewayUrls?: string[];
                    strict?: boolean;
                    universalResolverAddress?: `0x${string}`;
                },
            ) => Promise<GetEnsNameReturnType>;
            getEnsResolver: (
                args: {
                    blockNumber?: bigint;
                    blockTag?: BlockTag;
                    name: string;
                    universalResolverAddress?: `0x${string}`;
                },
            ) => Promise<`0x${string}`>;
            getEnsText: (
                args: {
                    blockNumber?: bigint;
                    blockTag?: BlockTag;
                    gatewayUrls?: string[];
                    key: string;
                    name: string;
                    strict?: boolean;
                    universalResolverAddress?: `0x${string}`;
                },
            ) => Promise<GetEnsTextReturnType>;
            getFeeHistory: (
                args: GetFeeHistoryParameters,
            ) => Promise<GetFeeHistoryReturnType>;
            getFilterChanges: <
                filterType extends FilterType,
                const abi extends Abi | readonly unknown[] | undefined,
                eventName extends string | undefined,
                strict extends boolean | undefined = undefined,
                fromBlock extends bigint | BlockTag | undefined = undefined,
                toBlock extends bigint | BlockTag | undefined = undefined,
            >(
                args: GetFilterChangesParameters<
                    filterType,
                    abi,
                    eventName,
                    strict,
                    fromBlock,
                    toBlock,
                >,
            ) => Promise<
                GetFilterChangesReturnType<
                    filterType,
                    abi,
                    eventName,
                    strict,
                    fromBlock,
                    toBlock,
                >,
            >;
            getFilterLogs: <
                const abi extends Abi
                | readonly unknown[]
                | undefined,
                eventName extends string | undefined,
                strict extends boolean | undefined = undefined,
                fromBlock extends bigint | BlockTag | undefined = undefined,
                toBlock extends bigint | BlockTag | undefined = undefined,
            >(
                args: GetFilterLogsParameters<
                    abi,
                    eventName,
                    strict,
                    fromBlock,
                    toBlock,
                >,
            ) => Promise<
                GetFilterLogsReturnType<abi, eventName, strict, fromBlock, toBlock>,
            >;
            getGasPrice: () => Promise<bigint>;
            getLogs: <
                const abiEvent extends AbiEvent
                | undefined = undefined,
                const abiEvents extends
                    readonly unknown[] | readonly AbiEvent[] | undefined = abiEvent extends AbiEvent
                    ? [abiEvent]
                    : undefined,
                strict extends boolean
                | undefined = undefined,
                fromBlock extends bigint | BlockTag | undefined = undefined,
                toBlock extends bigint | BlockTag | undefined = undefined,
            >(
                args?: GetLogsParameters<
                    abiEvent,
                    abiEvents,
                    strict,
                    fromBlock,
                    toBlock,
                >,
            ) => Promise<
                GetLogsReturnType<abiEvent, abiEvents, strict, fromBlock, toBlock>,
            >;
            getProof: (args: GetProofParameters) => Promise<GetProofReturnType>;
            getRawTransaction: (
                args: GetRawTransactionParameters,
            ) => Promise<`0x${string}`>;
            getStorageAt: (
                args: GetStorageAtParameters,
            ) => Promise<GetStorageAtReturnType>;
            getTransaction: <blockTag extends BlockTag = "latest">(
                args: GetTransactionParameters<blockTag>,
            ) => Promise<
                | {
                    accessList?: undefined;
                    authorizationList?: undefined;
                    blobVersionedHashes?: undefined;
                    blockHash: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : bigint;
                    blockTimestamp?: bigint;
                    chainId?: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice: bigint;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas?: undefined;
                    maxPriorityFeePerGas?: undefined;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: `0x${string}` | null;
                    transactionIndex: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : number;
                    type: "legacy";
                    typeHex: `0x${string}` | null;
                    v: bigint;
                    value: bigint;
                    yParity?: undefined;
                }
                | {
                    accessList: AccessList;
                    authorizationList?: undefined;
                    blobVersionedHashes?: undefined;
                    blockHash: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : bigint;
                    blockTimestamp?: bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice: bigint;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas?: undefined;
                    maxPriorityFeePerGas?: undefined;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: `0x${string}` | null;
                    transactionIndex: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : number;
                    type: "eip2930";
                    typeHex: `0x${string}` | null;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                }
                | {
                    accessList: AccessList;
                    authorizationList?: undefined;
                    blobVersionedHashes?: undefined;
                    blockHash: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : bigint;
                    blockTimestamp?: bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice?: undefined;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas: bigint;
                    maxPriorityFeePerGas: bigint;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: `0x${string}` | null;
                    transactionIndex: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : number;
                    type: "eip1559";
                    typeHex: `0x${string}` | null;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                }
                | {
                    accessList: AccessList;
                    authorizationList?: undefined;
                    blobVersionedHashes: readonly `0x${string}`[];
                    blockHash: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : bigint;
                    blockTimestamp?: bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice?: undefined;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas: bigint;
                    maxFeePerGas: bigint;
                    maxPriorityFeePerGas: bigint;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: `0x${string}` | null;
                    transactionIndex: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : number;
                    type: "eip4844";
                    typeHex: `0x${string}` | null;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                }
                | {
                    accessList: AccessList;
                    authorizationList: SignedAuthorizationList;
                    blobVersionedHashes?: undefined;
                    blockHash: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : bigint;
                    blockTimestamp?: bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice?: undefined;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas: bigint;
                    maxPriorityFeePerGas: bigint;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: `0x${string}` | null;
                    transactionIndex: (blockTag extends "pending" ? true : false) extends true
                        ? null
                        : number;
                    type: "eip7702";
                    typeHex: `0x${string}` | null;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                },
            >;
            getTransactionConfirmations: (
                args: GetTransactionConfirmationsParameters<Chain | undefined>,
            ) => Promise<bigint>;
            getTransactionCount: (
                args: GetTransactionCountParameters,
            ) => Promise<number>;
            getTransactionReceipt: (
                args: GetTransactionReceiptParameters,
            ) => Promise<TransactionReceipt>;
            key: string;
            multicall: <
                const contracts extends readonly unknown[],
                allowFailure extends boolean = true,
            >(
                args: MulticallParameters<contracts, allowFailure>,
            ) => Promise<MulticallReturnType<contracts, allowFailure>>;
            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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: undefined;
                                maxFeePerBlobGas?: bigint;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: readonly BlobSidecar<`0x${string}`>[];
                                to: `0x${string}` | null;
                                type?: "eip4844";
                                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: `0x${string}` | null;
                                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?: `0x${string}` | null;
                                type?: "eip7702";
                                value?: bigint;
                            },
                            "from",
                        >
                    ) & { kzg?: Kzg } & {
                        nonceManager?: NonceManager;
                        parameters?: readonly PrepareTransactionRequestParameterType[];
                    },
                chainOverride extends Chain
                | undefined = undefined,
                accountOverride extends `0x${string}` | Account | undefined = undefined,
            >(
                args: PrepareTransactionRequestParameters<
                    Chain
                    | undefined,
                    undefined,
                    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]
                                    : | "type"
                                    | "gas"
                                    | "nonce"
                                    | "blobVersionedHashes"
                                    | "fees"
                                    | "chainId",
                            >,
                        > & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">) & {
                            _capabilities?: { [key: string]: any };
                        }
                    )[K]
                },
            >;
            readContract: <
                const abi extends Abi
                | readonly unknown[],
                functionName extends string,
                const args extends unknown,
            >(
                args: ReadContractParameters<abi, functionName, args>,
            ) => Promise<ReadContractReturnType<abi, functionName, args>>;
            request: EIP1193RequestFn<PublicRpcSchema>;
            sendRawTransaction: (
                args: SendRawTransactionParameters,
            ) => Promise<`0x${string}`>;
            sendRawTransactionSync: (
                args: SendRawTransactionSyncParameters,
            ) => Promise<TransactionReceipt>;
            simulate: <const calls extends readonly unknown[]>(
                args: SimulateBlocksParameters<calls>,
            ) => Promise<SimulateBlocksReturnType<calls>>;
            simulateBlocks: <const calls extends readonly unknown[]>(
                args: SimulateBlocksParameters<calls>,
            ) => Promise<SimulateBlocksReturnType<calls>>;
            simulateCalls: <const calls extends readonly unknown[]>(
                args: SimulateCallsParameters<calls>,
            ) => Promise<SimulateCallsReturnType<calls>>;
            simulateContract: <
                const abi extends Abi
                | readonly unknown[],
                functionName extends string,
                const args extends unknown,
                chainOverride extends Chain | undefined,
                accountOverride extends `0x${string}` | Account | undefined = undefined,
            >(
                args: SimulateContractParameters<
                    abi,
                    functionName,
                    args,
                    Chain
                    | undefined,
                    chainOverride,
                    accountOverride,
                >,
            ) => Promise<
                SimulateContractReturnType<
                    abi,
                    functionName,
                    args,
                    Chain
                    | undefined,
                    undefined,
                    chainOverride,
                    accountOverride,
                >,
            >;
            token: {
                getAllowance: (
                    parameters: Parameters<Chain | undefined, Tokens | undefined>,
                ) => Promise<Amount> & {
                    call: (
                        args: Args<Chain | undefined, Tokens | undefined>,
                    ) => {
                        abi: [
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "allowance";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                        ];
                        functionName: "allowance";
                    } & { args: readonly [`0x${string}`, `0x${string}`] } & {
                        address: `0x${string}`;
                    } & { data: `0x${string}`; to: `0x${string}` };
                };
                getBalance: (
                    parameters: Parameters<
                        Chain
                        | undefined,
                        undefined,
                        Tokens | undefined,
                    >,
                ) => Promise<Amount> & {
                    call: (
                        args: Args<Chain | undefined, undefined, Tokens | undefined>,
                    ) => {
                        abi: [
                            {
                                inputs: readonly [{ name: ...; type: ... }];
                                name: "balanceOf";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                        ];
                        functionName: "balanceOf";
                    } & { args: readonly [`0x${string}`] } & { address: `0x${string}` } & {
                        data: `0x${string}`;
                        to: `0x${string}`;
                    };
                };
                getMetadata: (
                    parameters: Parameters<Chain | undefined, Tokens | undefined>,
                ) => Promise<ReturnValue>;
                getTotalSupply: (
                    parameters: Parameters<Chain | undefined, Tokens | undefined>,
                ) => Promise<Amount> & {
                    call: (
                        args: Args<Chain | undefined, Tokens | undefined>,
                    ) => {
                        abi: [
                            {
                                inputs: readonly [];
                                name: "totalSupply";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                        ];
                        functionName: "totalSupply";
                    } & { args?: readonly [] } & { address: `0x${string}` } & {
                        data: `0x${string}`;
                        to: `0x${string}`;
                    };
                };
            };
            tokens: Tokens
            | undefined;
            transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
            type: string;
            uid: string;
            uninstallFilter: (args: UninstallFilterParameters) => Promise<boolean>;
            verifyHash: (args: VerifyHashParameters) => Promise<boolean>;
            verifyMessage: (args: VerifyMessageParameters) => Promise<boolean>;
            verifySiweMessage: (args: VerifySiweMessageParameters) => Promise<boolean>;
            verifyTypedData: (args: VerifyTypedDataParameters) => Promise<boolean>;
            waitForTransactionReceipt: (
                args: WaitForTransactionReceiptParameters<Chain | undefined>,
            ) => Promise<TransactionReceipt>;
            watchBlockNumber: (
                args: WatchBlockNumberParameters,
            ) => WatchBlockNumberReturnType;
            watchBlocks: <
                includeTransactions extends boolean = false,
                blockTag extends BlockTag = "latest",
            >(
                args: WatchBlocksParameters<
                    Transport,
                    Chain
                    | undefined,
                    includeTransactions,
                    blockTag,
                >,
            ) => WatchBlocksReturnType;
            watchContractEvent: <
                const abi extends Abi
                | readonly unknown[],
                eventName extends string,
                strict extends boolean | undefined = undefined,
            >(
                args: WatchContractEventParameters<abi, eventName, strict, Transport>,
            ) => WatchContractEventReturnType;
            watchEvent: <
                const abiEvent extends AbiEvent
                | undefined = undefined,
                const abiEvents extends
                    readonly unknown[] | readonly AbiEvent[] | undefined = abiEvent extends AbiEvent
                    ? [abiEvent]
                    : undefined,
                strict extends boolean
                | undefined = undefined,
            >(
                args: WatchEventParameters<abiEvent, abiEvents, strict, Transport>,
            ) => WatchEventReturnType;
            watchPendingTransactions: (
                args: WatchPendingTransactionsParameters<Transport>,
            ) => WatchPendingTransactionsReturnType;
        };
        wallet: | {
            account: Account;
            addChain: (args: AddChainParameters) => Promise<void>;
            batch?: {
                multicall?:
                    | boolean
                    | { batchSize?: number; deployless?: boolean; wait?: number };
            };
            cacheTime: number;
            ccipRead?: | false
            | {
                request?: (
                    parameters: CcipRequestParameters,
                ) => Promise<`0x${string}`>;
            };
            chain: Chain;
            dataSuffix?: DataSuffix;
            deployContract: <
                const abi extends Abi
                | readonly unknown[],
                chainOverride extends Chain | undefined,
            >(
                args: DeployContractParameters<abi, Chain, Account, chainOverride>,
            ) => Promise<`0x${string}`>;
            experimental_blockTag?: BlockTag;
            extend: <
                const client extends
                    {
                        account?: undefined;
                        batch?: undefined;
                        cacheTime?: undefined;
                        ccipRead?: undefined;
                        chain?: undefined;
                        dataSuffix?: undefined;
                        experimental_blockTag?: undefined;
                        key?: undefined;
                        name?: undefined;
                        pollingInterval?: undefined;
                        request?: undefined;
                        tokens?: undefined;
                        transport?: undefined;
                        type?: undefined;
                        uid?: undefined;
                        [key: string]: unknown;
                    } & ExactPartial<
                        ExtendableProtectedActions<
                            Transport,
                            Chain,
                            Account,
                            Tokens
                            | undefined,
                        >,
                    >,
            >(
                fn: (
                    client: Client<
                        Transport,
                        Chain,
                        Account,
                        WalletRpcSchema,
                        WalletActions<Chain, Account, Tokens | undefined>,
                        Tokens | undefined,
                    >,
                ) => client,
            ) => Client<
                Transport,
                Chain,
                Account,
                WalletRpcSchema,
                { [K in string
                | number
                | symbol]: client[K] } & WalletActions<
                    Chain,
                    Account,
                    Tokens
                    | undefined,
                >,
                Tokens | undefined,
            >;
            fillTransaction: <
                chainOverride extends Chain
                | undefined = undefined,
                accountOverride extends `0x${string}` | Account | undefined = undefined,
            >(
                args: FillTransactionParameters<
                    Chain,
                    Account,
                    chainOverride,
                    accountOverride,
                >,
            ) => Promise<FillTransactionReturnType<Chain, chainOverride>>;
            getAddresses: () => Promise<GetAddressesReturnType>;
            getCallsStatus: (
                parameters: GetCallsStatusParameters,
            ) => Promise<
                {
                    atomic: boolean;
                    capabilities?: { [key: string]: any }
                    | { [key: string]: any };
                    chainId: number;
                    id: string;
                    receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                    status: "pending" | "success" | "failure" | undefined;
                    statusCode: number;
                    version: string;
                },
            >;
            getCapabilities: <chainId extends number | undefined>(
                parameters?: GetCapabilitiesParameters<chainId>,
            ) => Promise<
                {
                    [K in string
                    | number
                    | symbol]: (
                        chainId extends number
                            ? {
                                atomic?: { status: (...)
                                | (...)
                                | (...) };
                                paymasterService?: { supported: boolean };
                                unstable_addSubAccount?: { keyTypes: (...)[]; supported: boolean };
                                [key: string]: any;
                            }
                            : ChainIdToCapabilities<
                                Capabilities<
                                    {
                                        atomic?: (...)
                                        | (...);
                                        paymasterService?: (...) | (...);
                                        unstable_addSubAccount?: (...) | (...);
                                        [key: string]: any;
                                    },
                                >,
                                number,
                            >
                    )[K]
                },
            >;
            getChainId: () => Promise<number>;
            getPermissions: () => Promise<GetPermissionsReturnType>;
            key: string;
            name: string;
            pollingInterval: number;
            prepareAuthorization: (
                parameters: PrepareAuthorizationParameters<Account>,
            ) => Promise<PrepareAuthorizationReturnType>;
            prepareTransactionRequest: <
                const request extends
                    (
                        | Omit<
                            {
                                accessList?: undefined;
                                authorizationList?: undefined;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: bigint;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: undefined;
                                maxPriorityFeePerGas?: undefined;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: undefined;
                                maxFeePerBlobGas?: bigint;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                                to: `0x${string}` | null;
                                type?: "eip4844";
                                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${(...)}`>[];
                                to: `0x${string}` | null;
                                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?: `0x${string}` | null;
                                type?: "eip7702";
                                value?: bigint;
                            },
                            "from",
                        >
                    ) & { kzg?: Kzg } & {
                        nonceManager?: NonceManager;
                        parameters?: readonly PrepareTransactionRequestParameterType[];
                    },
                chainOverride extends Chain
                | undefined = undefined,
                accountOverride extends `0x${string}` | Account | undefined = undefined,
            >(
                args: PrepareTransactionRequestParameters<
                    Chain,
                    Account,
                    chainOverride,
                    accountOverride,
                    request,
                >,
            ) => Promise<
                {
                    [K in string
                    | number
                    | symbol]: (
                        UnionRequiredBy<
                            Extract<(...) & (...) & (...), (...) extends (...) ? (...) : (...)> & {
                                chainId?: (...) | (...);
                            },
                            ParameterTypeToParameters<
                                (...)[(...)] extends readonly (...)[]
                                    ? (...)[(...)]
                                    : (...) | (...) | (...) | (...) | (...) | (...),
                            >,
                        > & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">) & {
                            _capabilities?: { [key: string]: any };
                        }
                    )[K]
                },
            >;
            request: EIP1193RequestFn<WalletRpcSchema>;
            requestAddresses: () => Promise<RequestAddressesReturnType>;
            requestPermissions: (
                args: {
                    eth_accounts: Record<string, any>;
                    [key: string]: Record<string, any>;
                },
            ) => Promise<RequestPermissionsReturnType>;
            sendCalls: <
                const calls extends readonly unknown[],
                chainOverride extends Chain | undefined = undefined,
            >(
                parameters: SendCallsParameters<Chain, Account, chainOverride, calls>,
            ) => Promise<{ capabilities?: { [key: string]: any }; id: string }>;
            sendCallsSync: <
                const calls extends readonly unknown[],
                chainOverride extends Chain | undefined = undefined,
            >(
                parameters: SendCallsSyncParameters<
                    Chain,
                    Account,
                    chainOverride,
                    calls,
                >,
            ) => Promise<
                {
                    atomic: boolean;
                    capabilities?: { [key: string]: any }
                    | { [key: string]: any };
                    chainId: number;
                    id: string;
                    receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                    status: "pending" | "success" | "failure" | undefined;
                    statusCode: number;
                    version: string;
                },
            >;
            sendRawTransaction: (
                args: SendRawTransactionParameters,
            ) => Promise<`0x${string}`>;
            sendRawTransactionSync: (
                args: SendRawTransactionSyncParameters,
            ) => Promise<TransactionReceipt>;
            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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: undefined;
                                maxFeePerBlobGas?: bigint;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                                to: `0x${string}` | null;
                                type?: "eip4844";
                                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${(...)}`>[];
                                to: `0x${string}` | null;
                                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?: `0x${string}` | null;
                                type?: "eip7702";
                                value?: bigint;
                            },
                            "from",
                        >
                    ) & { kzg?: Kzg },
                chainOverride extends Chain
                | undefined = undefined,
            >(
                args: SendTransactionParameters<
                    Chain,
                    Account,
                    chainOverride,
                    request,
                >,
            ) => Promise<`0x${string}`>;
            sendTransactionSync: <
                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: undefined;
                                maxFeePerBlobGas?: bigint;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                                to: `0x${string}` | null;
                                type?: "eip4844";
                                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${(...)}`>[];
                                to: `0x${string}` | null;
                                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?: `0x${string}` | null;
                                type?: "eip7702";
                                value?: bigint;
                            },
                            "from",
                        >
                    ) & { kzg?: Kzg },
                chainOverride extends Chain
                | undefined = undefined,
            >(
                args: SendTransactionSyncParameters<
                    Chain,
                    Account,
                    chainOverride,
                    request,
                >,
            ) => Promise<TransactionReceipt>;
            showCallsStatus: (parameters: ShowCallsStatusParameters) => Promise<void>;
            signAuthorization: (
                parameters: SignAuthorizationParameters<Account>,
            ) => Promise<SignAuthorizationReturnType>;
            signMessage: (
                args: SignMessageParameters<Account>,
            ) => Promise<`0x${string}`>;
            signTransaction: <
                chainOverride extends Chain
                | undefined,
                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: undefined;
                                maxFeePerBlobGas?: bigint;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: readonly BlobSidecar<`0x${string}`>[];
                                to: `0x${string}` | null;
                                type?: "eip4844";
                                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: `0x${string}` | null;
                                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?: `0x${string}` | null;
                                type?: "eip7702";
                                value?: bigint;
                            },
                            "from",
                        > = UnionOmit<
                    ExtractChainFormatterParameters<
                        DeriveChain<Chain, chainOverride>,
                        "transactionRequest",
                        TransactionRequest,
                    >,
                    "from",
                >,
            >(
                args: SignTransactionParameters<
                    Chain,
                    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 string
                            | undefined
                                ? 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)
                                | (
                                    (...)[(...)] extends (...) | (...)
                                        ? Extract<(...), (...)>
                                        : 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)
                                | (
                                    (...)[(...)] extends (...) | (...)
                                        ? Extract<(...), (...)>
                                        : 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)
                                | (
                                    (...)[(...)] extends (...) | (...)
                                        ? Extract<(...), (...)>
                                        : 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)
                                | (
                                    (...)[(...)] extends (...) | (...)
                                        ? Extract<(...), (...)>
                                        : 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)
                                | (
                                    (...)[(...)] extends (...) | (...)
                                        ? Extract<(...), (...)>
                                        : 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: `uint8[${string}]`]: undefined;
                        [key: `uint256[${string}]`]: undefined;
                        [key: `address[${string}]`]: undefined;
                        [key: `bool[${string}]`]: undefined;
                        [key: `bytes32[${string}]`]: undefined;
                        [key: `uint80[${string}]`]: undefined;
                        [key: `int256[${string}]`]: undefined;
                        [key: `uint24[${string}]`]: undefined;
                        [key: `uint160[${string}]`]: undefined;
                        [key: `uint32[${string}]`]: undefined;
                        [key: `bytes[${string}]`]: undefined;
                        [key: `uint128[${string}]`]: undefined;
                        [key: `int24[${string}]`]: undefined;
                        [key: `uint16[${string}]`]: undefined;
                        [key: `bytes1[${string}]`]: undefined;
                        [key: `bytes2[${string}]`]: undefined;
                        [key: `bytes3[${string}]`]: undefined;
                        [key: `bytes11[${string}]`]: undefined;
                        [key: `bytes7[${string}]`]: undefined;
                        [key: `bytes23[${string}]`]: undefined;
                        [key: `bytes5[${string}]`]: undefined;
                        [key: `bytes4[${string}]`]: undefined;
                        [key: `bytes8[${string}]`]: undefined;
                        [key: `bytes13[${string}]`]: undefined;
                        [key: `bytes6[${string}]`]: undefined;
                        [key: `bytes18[${string}]`]: undefined;
                        [key: `bytes9[${string}]`]: undefined;
                        [key: `bytes10[${string}]`]: undefined;
                        [key: `bytes12[${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: `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: `uint[${string}]`]: undefined;
                        [key: `uint40[${string}]`]: undefined;
                        [key: `uint48[${string}]`]: undefined;
                        [key: `uint56[${string}]`]: undefined;
                        [key: `uint64[${string}]`]: undefined;
                        [key: `uint72[${string}]`]: undefined;
                        [key: `uint88[${string}]`]: undefined;
                        [key: `uint96[${string}]`]: undefined;
                        [key: `uint104[${string}]`]: undefined;
                        [key: `uint112[${string}]`]: undefined;
                        [key: `uint120[${string}]`]: undefined;
                        [key: `uint136[${string}]`]: undefined;
                        [key: `uint144[${string}]`]: undefined;
                        [key: `uint152[${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, Account>,
            ) => Promise<`0x${string}`>;
            switchChain: (args: SwitchChainParameters) => Promise<void>;
            token: {
                approve: (
                    parameters: Parameters<Chain, Account, Tokens | undefined>,
                ) => Promise<`0x${string}`> & {
                    call: (
                        args: Args<Chain, Tokens | undefined>,
                    ) => {
                        abi: [
                            {
                                inputs: readonly [(...), (...)];
                                name: "approve";
                                outputs: readonly [(...)];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                        ];
                        functionName: "approve";
                    } & { args: readonly [`0x${string}`, bigint] } & {
                        address: `0x${string}`;
                    } & { data: `0x${string}`; to: `0x${string}` };
                    estimateGas: (
                        parameters: Parameters<Chain, Account, Tokens | undefined>,
                    ) => Promise<bigint>;
                    extractEvent: (
                        logs: Log[],
                    ) => Log<
                        bigint,
                        number,
                        false,
                        undefined,
                        true,
                        readonly [
                            {
                                inputs: readonly [
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                ];
                                name: "Approval";
                                type: "event";
                            },
                            {
                                inputs: readonly [
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                ];
                                name: "Transfer";
                                type: "event";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "allowance";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "approve";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                            {
                                inputs: readonly [{ name: ...; type: ... }];
                                name: "balanceOf";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "decimals";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "name";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "symbol";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "totalSupply";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "transfer";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "transferFrom";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                        ],
                        "Approval",
                    >;
                    simulate: (
                        parameters: Parameters<Chain, Account, Tokens | undefined>,
                    ) => Promise<
                        SimulateContractReturnType<
                            readonly [
                                {
                                    inputs: readonly [(...), (...), (...)];
                                    name: "Approval";
                                    type: "event";
                                },
                                {
                                    inputs: readonly [(...), (...), (...)];
                                    name: "Transfer";
                                    type: "event";
                                },
                                {
                                    inputs: readonly [(...), (...)];
                                    name: "allowance";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...), (...)];
                                    name: "approve";
                                    outputs: readonly [(...)];
                                    stateMutability: "nonpayable";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...)];
                                    name: "balanceOf";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "decimals";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "name";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "symbol";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "totalSupply";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...), (...)];
                                    name: "transfer";
                                    outputs: readonly [(...)];
                                    stateMutability: "nonpayable";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...), (...), (...)];
                                    name: "transferFrom";
                                    outputs: readonly [(...)];
                                    stateMutability: "nonpayable";
                                    type: "function";
                                },
                            ],
                            "approve",
                        >,
                    >;
                };
                approveSync: (
                    parameters: Parameters<Chain, Account, Tokens | undefined>,
                ) => Promise<
                    {
                        decimals?: number;
                        formatted?: string;
                        owner: `0x${string}`;
                        receipt: TransactionReceipt;
                        spender: `0x${string}`;
                        value: bigint;
                    },
                >;
                transfer: (
                    parameters: Parameters<Chain, Account, Tokens | undefined>,
                ) => Promise<`0x${string}`> & {
                    call: (
                        args: Args<Chain, Tokens | undefined>,
                    ) => {
                        abi: [
                            | {
                                inputs: ...;
                                name: ...;
                                outputs: ...;
                                stateMutability: ...;
                                type: ...;
                            }
                            | {
                                inputs: ...;
                                name: ...;
                                outputs: ...;
                                stateMutability: ...;
                                type: ...;
                            },
                        ];
                        functionName: "transfer"
                        | "transferFrom";
                    } & {
                        args: | readonly [`0x${(...)}`, bigint]
                        | readonly [`0x${(...)}`, `0x${(...)}`, bigint];
                    } & { address: `0x${string}` } & {
                        data: `0x${string}`;
                        to: `0x${string}`;
                    };
                    estimateGas: (
                        parameters: Parameters<Chain, Account, Tokens | undefined>,
                    ) => Promise<bigint>;
                    extractEvent: (
                        logs: Log[],
                    ) => Log<
                        bigint,
                        number,
                        false,
                        undefined,
                        true,
                        readonly [
                            {
                                inputs: readonly [
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                ];
                                name: "Approval";
                                type: "event";
                            },
                            {
                                inputs: readonly [
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                ];
                                name: "Transfer";
                                type: "event";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "allowance";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "approve";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                            {
                                inputs: readonly [{ name: ...; type: ... }];
                                name: "balanceOf";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "decimals";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "name";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "symbol";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "totalSupply";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "transfer";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "transferFrom";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                        ],
                        "Transfer",
                    >;
                    simulate: (
                        parameters: Parameters<Chain, Account, Tokens | undefined>,
                    ) => Promise<
                        SimulateContractReturnType<
                            readonly [
                                {
                                    inputs: readonly [(...), (...), (...)];
                                    name: "Approval";
                                    type: "event";
                                },
                                {
                                    inputs: readonly [(...), (...), (...)];
                                    name: "Transfer";
                                    type: "event";
                                },
                                {
                                    inputs: readonly [(...), (...)];
                                    name: "allowance";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...), (...)];
                                    name: "approve";
                                    outputs: readonly [(...)];
                                    stateMutability: "nonpayable";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...)];
                                    name: "balanceOf";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "decimals";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "name";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "symbol";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "totalSupply";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...), (...)];
                                    name: "transfer";
                                    outputs: readonly [(...)];
                                    stateMutability: "nonpayable";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...), (...), (...)];
                                    name: "transferFrom";
                                    outputs: readonly [(...)];
                                    stateMutability: "nonpayable";
                                    type: "function";
                                },
                            ],
                            "transfer"
                            | "transferFrom",
                        >,
                    >;
                };
                transferSync: (
                    parameters: Parameters<Chain, Account, Tokens | undefined>,
                ) => Promise<
                    {
                        decimals?: number;
                        formatted?: string;
                        from: `0x${string}`;
                        receipt: TransactionReceipt;
                        to: `0x${string}`;
                        value: bigint;
                    },
                >;
            };
            tokens: Tokens
            | undefined;
            transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
            type: string;
            uid: string;
            waitForCallsStatus: (
                parameters: WaitForCallsStatusParameters,
            ) => Promise<
                {
                    atomic: boolean;
                    capabilities?: { [key: string]: any }
                    | { [key: string]: any };
                    chainId: number;
                    id: string;
                    receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                    status: "pending" | "success" | "failure" | undefined;
                    statusCode: number;
                    version: string;
                },
            >;
            watchAsset: (args: WatchAssetParams) => Promise<boolean>;
            writeContract: <
                const abi extends Abi
                | readonly unknown[],
                functionName extends string,
                args extends unknown,
                chainOverride extends Chain | undefined = undefined,
            >(
                args: WriteContractParameters<
                    abi,
                    functionName,
                    args,
                    Chain,
                    Account,
                    chainOverride,
                >,
            ) => Promise<`0x${string}`>;
            writeContractSync: <
                const abi extends Abi
                | readonly unknown[],
                functionName extends string,
                args extends unknown,
                chainOverride extends Chain | undefined = undefined,
            >(
                args: WriteContractSyncParameters<
                    abi,
                    functionName,
                    args,
                    Chain,
                    Account,
                    chainOverride,
                >,
            ) => Promise<TransactionReceipt>;
        }
        | null;
    }
    Index
    account: Account | null

    The wallet account, or null in read-only mode.

    acknowledgeStockTokenEligibility: boolean

    Whether the operator affirmed Stock Token acquisition eligibility.

    chain: Chain

    The resolved viem chain object (robinhood or robinhoodTestnet).

    network: HoodNetwork

    Network name this client was created with.

    public: {
        account: undefined;
        batch?: {
            multicall?:
                | boolean
                | { batchSize?: number; deployless?: boolean; wait?: number };
        };
        cacheTime: number;
        call: (
            parameters: CallParameters<Chain | undefined>,
        ) => Promise<CallReturnType>;
        ccipRead?:
            | false
            | {
                request?: (
                    parameters: CcipRequestParameters,
                ) => Promise<`0x${string}`>;
            };
        chain: Chain
        | undefined;
        createAccessList: (
            parameters: CreateAccessListParameters<Chain | undefined>,
        ) => Promise<{ accessList: AccessList; gasUsed: bigint }>;
        createBlockFilter: () => Promise<
            {
                id: `0x${string}`;
                request: EIP1193RequestFn<
                    readonly [
                        {
                            Method: "eth_getFilterChanges";
                            Parameters: [filterId: `0x${string}`];
                            ReturnType: `0x${string}`[] | RpcLog[];
                        },
                        {
                            Method: "eth_getFilterLogs";
                            Parameters: [filterId: `0x${string}`];
                            ReturnType: RpcLog[];
                        },
                        {
                            Method: "eth_uninstallFilter";
                            Parameters: [filterId: `0x${string}`];
                            ReturnType: boolean;
                        },
                    ],
                >;
                type: "block";
            },
        >;
        createContractEventFilter: <
            const abi extends Abi
            | readonly unknown[],
            eventName extends string | undefined,
            args extends Record<string, unknown> | readonly unknown[] | undefined,
            strict extends boolean | undefined = undefined,
            fromBlock extends bigint | BlockTag | undefined = undefined,
            toBlock extends bigint | BlockTag | undefined = undefined,
        >(
            args: CreateContractEventFilterParameters<
                abi,
                eventName,
                args,
                strict,
                fromBlock,
                toBlock,
            >,
        ) => Promise<
            CreateContractEventFilterReturnType<
                abi,
                eventName,
                args,
                strict,
                fromBlock,
                toBlock,
            >,
        >;
        createEventFilter: <
            const abiEvent extends AbiEvent
            | undefined = undefined,
            const abiEvents extends
                readonly unknown[] | readonly AbiEvent[] | undefined = abiEvent extends AbiEvent
                ? [abiEvent]
                : undefined,
            strict extends boolean
            | undefined = undefined,
            fromBlock extends bigint | BlockTag | undefined = undefined,
            toBlock extends bigint | BlockTag | undefined = undefined,
            _EventName extends string | undefined = MaybeAbiEventName<abiEvent>,
            _Args extends
                Record<string, unknown> | readonly unknown[] | undefined = undefined,
        >(
            args?: CreateEventFilterParameters<
                abiEvent,
                abiEvents,
                strict,
                fromBlock,
                toBlock,
                _EventName,
                _Args,
            >,
        ) => Promise<
            {
                [K in string
                | number
                | symbol]: Filter<
                    "event",
                    abiEvents,
                    _EventName,
                    _Args,
                    strict,
                    fromBlock,
                    toBlock,
                >[K]
            },
        >;
        createPendingTransactionFilter: () => Promise<
            {
                id: `0x${string}`;
                request: EIP1193RequestFn<
                    readonly [
                        {
                            Method: "eth_getFilterChanges";
                            Parameters: [filterId: `0x${string}`];
                            ReturnType: `0x${string}`[] | RpcLog[];
                        },
                        {
                            Method: "eth_getFilterLogs";
                            Parameters: [filterId: `0x${string}`];
                            ReturnType: RpcLog[];
                        },
                        {
                            Method: "eth_uninstallFilter";
                            Parameters: [filterId: `0x${string}`];
                            ReturnType: boolean;
                        },
                    ],
                >;
                type: "transaction";
            },
        >;
        dataSuffix?: DataSuffix;
        estimateContractGas: <
            chain extends Chain
            | undefined,
            const abi extends Abi | readonly unknown[],
            functionName extends string,
            args extends unknown,
        >(
            args: EstimateContractGasParameters<abi, functionName, args, chain>,
        ) => Promise<bigint>;
        estimateFeesPerGas: <
            chainOverride extends Chain
            | undefined = undefined,
            type extends FeeValuesType = "eip1559",
        >(
            args?: EstimateFeesPerGasParameters<
                Chain
                | undefined,
                chainOverride,
                type,
            >,
        ) => Promise<EstimateFeesPerGasReturnType<type>>;
        estimateGas: (
            args: EstimateGasParameters<Chain | undefined>,
        ) => Promise<bigint>;
        estimateMaxPriorityFeePerGas: <
            chainOverride extends Chain
            | undefined = undefined,
        >(
            args?: { chain: chainOverride | null },
        ) => Promise<bigint>;
        experimental_blockTag?: BlockTag;
        extend: <
            const client extends
                {
                    account?: undefined;
                    batch?: undefined;
                    cacheTime?: undefined;
                    ccipRead?: undefined;
                    chain?: undefined;
                    dataSuffix?: undefined;
                    experimental_blockTag?: undefined;
                    key?: undefined;
                    name?: undefined;
                    pollingInterval?: undefined;
                    request?: undefined;
                    tokens?: undefined;
                    transport?: undefined;
                    type?: undefined;
                    uid?: undefined;
                    [key: string]: unknown;
                } & ExactPartial<
                    ExtendableProtectedActions<
                        Transport,
                        Chain
                        | undefined,
                        undefined,
                        Tokens | undefined,
                    >,
                >,
        >(
            fn: (
                client: Client<
                    Transport,
                    Chain
                    | undefined,
                    undefined,
                    PublicRpcSchema,
                    PublicActions<
                        Transport,
                        Chain
                        | undefined,
                        undefined,
                        Tokens | undefined,
                    >,
                    Tokens | undefined,
                >,
            ) => client,
        ) => Client<
            Transport,
            Chain
            | undefined,
            undefined,
            PublicRpcSchema,
            { [K in string | number | symbol]: client[K] } & PublicActions<
                Transport,
                Chain
                | undefined,
                undefined,
                Tokens | undefined,
            >,
            Tokens | undefined,
        >;
        fillTransaction: <
            chainOverride extends Chain
            | undefined = undefined,
            accountOverride extends `0x${string}` | Account | undefined = undefined,
        >(
            args: FillTransactionParameters<
                Chain
                | undefined,
                undefined,
                chainOverride,
                accountOverride,
            >,
        ) => Promise<FillTransactionReturnType<Chain | undefined, chainOverride>>;
        getBalance: (args: GetBalanceParameters) => Promise<bigint>;
        getBlobBaseFee: () => Promise<bigint>;
        getBlock: <
            includeTransactions extends boolean = false,
            blockTag extends BlockTag = "latest",
        >(
            args?: GetBlockParameters<includeTransactions, blockTag>,
        ) => Promise<
            {
                baseFeePerGas: bigint
                | null;
                blobGasUsed: bigint;
                difficulty: bigint;
                excessBlobGas: bigint;
                extraData: `0x${string}`;
                gasLimit: bigint;
                gasUsed: bigint;
                hash: blockTag extends "pending" ? null : `0x${string}`;
                logsBloom: blockTag extends "pending" ? null : `0x${string}`;
                miner: `0x${string}`;
                mixHash: `0x${string}`;
                nonce: blockTag extends "pending" ? null : `0x${string}`;
                number: blockTag extends "pending" ? null : bigint;
                parentBeaconBlockRoot?: `0x${string}`;
                parentHash: `0x${string}`;
                receiptsRoot: `0x${string}`;
                sealFields: `0x${string}`[];
                sha3Uncles: `0x${string}`;
                size: bigint;
                stateRoot: `0x${string}`;
                timestamp: bigint;
                totalDifficulty: bigint | null;
                transactions: includeTransactions extends true
                    ? (
                        | {
                            accessList?: undefined;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            blockHash: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : `0x${string}`;
                            blockNumber: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : bigint;
                            blockTimestamp?: bigint;
                            chainId?: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice: bigint;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            to: `0x${string}` | null;
                            transactionIndex: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : number;
                            type: "legacy";
                            typeHex: `0x${string}` | null;
                            v: bigint;
                            value: bigint;
                            yParity?: undefined;
                        }
                        | {
                            accessList: AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            blockHash: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : `0x${string}`;
                            blockNumber: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : bigint;
                            blockTimestamp?: bigint;
                            chainId: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice: bigint;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            to: `0x${string}` | null;
                            transactionIndex: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : number;
                            type: "eip2930";
                            typeHex: `0x${string}` | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        }
                        | {
                            accessList: AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            blockHash: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : `0x${string}`;
                            blockNumber: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : bigint;
                            blockTimestamp?: bigint;
                            chainId: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice?: undefined;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            to: `0x${string}` | null;
                            transactionIndex: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : number;
                            type: "eip1559";
                            typeHex: `0x${string}` | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        }
                        | {
                            accessList: AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes: readonly `0x${string}`[];
                            blockHash: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : `0x${string}`;
                            blockNumber: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : bigint;
                            blockTimestamp?: bigint;
                            chainId: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice?: undefined;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            to: `0x${string}` | null;
                            transactionIndex: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : number;
                            type: "eip4844";
                            typeHex: `0x${string}` | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        }
                        | {
                            accessList: AccessList;
                            authorizationList: SignedAuthorizationList;
                            blobVersionedHashes?: undefined;
                            blockHash: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : `0x${string}`;
                            blockNumber: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : bigint;
                            blockTimestamp?: bigint;
                            chainId: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice?: undefined;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            to: `0x${string}` | null;
                            transactionIndex: (blockTag extends "pending" ? true : false) extends true
                                ? null
                                : number;
                            type: "eip7702";
                            typeHex: `0x${string}` | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        }
                    )[]
                    : `0x${string}`[];
                transactionsRoot: `0x${string}`;
                uncles: `0x${string}`[];
                withdrawals?: Withdrawal[];
                withdrawalsRoot?: `0x${string}`;
            },
        >;
        getBlockNumber: (args?: GetBlockNumberParameters) => Promise<bigint>;
        getBlockReceipts: (
            args?: GetBlockReceiptsParameters,
        ) => Promise<GetBlockReceiptsReturnType<Chain | undefined>>;
        getBlockTransactionCount: (
            args?: GetBlockTransactionCountParameters,
        ) => Promise<number>;
        getBytecode: (args: GetCodeParameters) => Promise<GetCodeReturnType>;
        getChainId: () => Promise<number>;
        getCode: (args: GetCodeParameters) => Promise<GetCodeReturnType>;
        getContractEvents: <
            const abi extends Abi
            | readonly unknown[],
            eventName extends string | undefined = undefined,
            strict extends boolean | undefined = undefined,
            fromBlock extends bigint | BlockTag | undefined = undefined,
            toBlock extends bigint | BlockTag | undefined = undefined,
        >(
            args: GetContractEventsParameters<
                abi,
                eventName,
                strict,
                fromBlock,
                toBlock,
            >,
        ) => Promise<
            GetContractEventsReturnType<abi, eventName, strict, fromBlock, toBlock>,
        >;
        getDelegation: (
            args: GetDelegationParameters,
        ) => Promise<GetDelegationReturnType>;
        getEip712Domain: (
            args: GetEip712DomainParameters,
        ) => Promise<GetEip712DomainReturnType>;
        getEnsAddress: (
            args: {
                blockNumber?: bigint;
                blockTag?: BlockTag;
                coinType?: bigint;
                gatewayUrls?: string[];
                name: string;
                strict?: boolean;
                universalResolverAddress?: `0x${string}`;
            },
        ) => Promise<GetEnsAddressReturnType>;
        getEnsAvatar: (
            args: {
                assetGatewayUrls?: AssetGatewayUrls;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                gatewayUrls?: string[];
                name: string;
                strict?: boolean;
                universalResolverAddress?: `0x${string}`;
            },
        ) => Promise<GetEnsAvatarReturnType>;
        getEnsName: (
            args: {
                address: `0x${string}`;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                coinType?: bigint;
                gatewayUrls?: string[];
                strict?: boolean;
                universalResolverAddress?: `0x${string}`;
            },
        ) => Promise<GetEnsNameReturnType>;
        getEnsResolver: (
            args: {
                blockNumber?: bigint;
                blockTag?: BlockTag;
                name: string;
                universalResolverAddress?: `0x${string}`;
            },
        ) => Promise<`0x${string}`>;
        getEnsText: (
            args: {
                blockNumber?: bigint;
                blockTag?: BlockTag;
                gatewayUrls?: string[];
                key: string;
                name: string;
                strict?: boolean;
                universalResolverAddress?: `0x${string}`;
            },
        ) => Promise<GetEnsTextReturnType>;
        getFeeHistory: (
            args: GetFeeHistoryParameters,
        ) => Promise<GetFeeHistoryReturnType>;
        getFilterChanges: <
            filterType extends FilterType,
            const abi extends Abi | readonly unknown[] | undefined,
            eventName extends string | undefined,
            strict extends boolean | undefined = undefined,
            fromBlock extends bigint | BlockTag | undefined = undefined,
            toBlock extends bigint | BlockTag | undefined = undefined,
        >(
            args: GetFilterChangesParameters<
                filterType,
                abi,
                eventName,
                strict,
                fromBlock,
                toBlock,
            >,
        ) => Promise<
            GetFilterChangesReturnType<
                filterType,
                abi,
                eventName,
                strict,
                fromBlock,
                toBlock,
            >,
        >;
        getFilterLogs: <
            const abi extends Abi
            | readonly unknown[]
            | undefined,
            eventName extends string | undefined,
            strict extends boolean | undefined = undefined,
            fromBlock extends bigint | BlockTag | undefined = undefined,
            toBlock extends bigint | BlockTag | undefined = undefined,
        >(
            args: GetFilterLogsParameters<
                abi,
                eventName,
                strict,
                fromBlock,
                toBlock,
            >,
        ) => Promise<
            GetFilterLogsReturnType<abi, eventName, strict, fromBlock, toBlock>,
        >;
        getGasPrice: () => Promise<bigint>;
        getLogs: <
            const abiEvent extends AbiEvent
            | undefined = undefined,
            const abiEvents extends
                readonly unknown[] | readonly AbiEvent[] | undefined = abiEvent extends AbiEvent
                ? [abiEvent]
                : undefined,
            strict extends boolean
            | undefined = undefined,
            fromBlock extends bigint | BlockTag | undefined = undefined,
            toBlock extends bigint | BlockTag | undefined = undefined,
        >(
            args?: GetLogsParameters<
                abiEvent,
                abiEvents,
                strict,
                fromBlock,
                toBlock,
            >,
        ) => Promise<
            GetLogsReturnType<abiEvent, abiEvents, strict, fromBlock, toBlock>,
        >;
        getProof: (args: GetProofParameters) => Promise<GetProofReturnType>;
        getRawTransaction: (
            args: GetRawTransactionParameters,
        ) => Promise<`0x${string}`>;
        getStorageAt: (
            args: GetStorageAtParameters,
        ) => Promise<GetStorageAtReturnType>;
        getTransaction: <blockTag extends BlockTag = "latest">(
            args: GetTransactionParameters<blockTag>,
        ) => Promise<
            | {
                accessList?: undefined;
                authorizationList?: undefined;
                blobVersionedHashes?: undefined;
                blockHash: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : bigint;
                blockTimestamp?: bigint;
                chainId?: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas?: undefined;
                maxPriorityFeePerGas?: undefined;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: `0x${string}` | null;
                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : number;
                type: "legacy";
                typeHex: `0x${string}` | null;
                v: bigint;
                value: bigint;
                yParity?: undefined;
            }
            | {
                accessList: AccessList;
                authorizationList?: undefined;
                blobVersionedHashes?: undefined;
                blockHash: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : bigint;
                blockTimestamp?: bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas?: undefined;
                maxPriorityFeePerGas?: undefined;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: `0x${string}` | null;
                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : number;
                type: "eip2930";
                typeHex: `0x${string}` | null;
                v: bigint;
                value: bigint;
                yParity: number;
            }
            | {
                accessList: AccessList;
                authorizationList?: undefined;
                blobVersionedHashes?: undefined;
                blockHash: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : bigint;
                blockTimestamp?: bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice?: undefined;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: `0x${string}` | null;
                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : number;
                type: "eip1559";
                typeHex: `0x${string}` | null;
                v: bigint;
                value: bigint;
                yParity: number;
            }
            | {
                accessList: AccessList;
                authorizationList?: undefined;
                blobVersionedHashes: readonly `0x${string}`[];
                blockHash: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : bigint;
                blockTimestamp?: bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice?: undefined;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas: bigint;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: `0x${string}` | null;
                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : number;
                type: "eip4844";
                typeHex: `0x${string}` | null;
                v: bigint;
                value: bigint;
                yParity: number;
            }
            | {
                accessList: AccessList;
                authorizationList: SignedAuthorizationList;
                blobVersionedHashes?: undefined;
                blockHash: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : bigint;
                blockTimestamp?: bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice?: undefined;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: `0x${string}` | null;
                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : number;
                type: "eip7702";
                typeHex: `0x${string}` | null;
                v: bigint;
                value: bigint;
                yParity: number;
            },
        >;
        getTransactionConfirmations: (
            args: GetTransactionConfirmationsParameters<Chain | undefined>,
        ) => Promise<bigint>;
        getTransactionCount: (
            args: GetTransactionCountParameters,
        ) => Promise<number>;
        getTransactionReceipt: (
            args: GetTransactionReceiptParameters,
        ) => Promise<TransactionReceipt>;
        key: string;
        multicall: <
            const contracts extends readonly unknown[],
            allowFailure extends boolean = true,
        >(
            args: MulticallParameters<contracts, allowFailure>,
        ) => Promise<MulticallReturnType<contracts, allowFailure>>;
        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?: `0x${string}`
                            | null;
                            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?: `0x${string}`
                            | null;
                            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?: `0x${string}`
                            | null;
                            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?: undefined;
                            maxFeePerBlobGas?: bigint;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            nonce?: number;
                            sidecars?: readonly BlobSidecar<`0x${string}`>[];
                            to: `0x${string}` | null;
                            type?: "eip4844";
                            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: `0x${string}` | null;
                            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?: `0x${string}` | null;
                            type?: "eip7702";
                            value?: bigint;
                        },
                        "from",
                    >
                ) & { kzg?: Kzg } & {
                    nonceManager?: NonceManager;
                    parameters?: readonly PrepareTransactionRequestParameterType[];
                },
            chainOverride extends Chain
            | undefined = undefined,
            accountOverride extends `0x${string}` | Account | undefined = undefined,
        >(
            args: PrepareTransactionRequestParameters<
                Chain
                | undefined,
                undefined,
                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]
                                : | "type"
                                | "gas"
                                | "nonce"
                                | "blobVersionedHashes"
                                | "fees"
                                | "chainId",
                        >,
                    > & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">) & {
                        _capabilities?: { [key: string]: any };
                    }
                )[K]
            },
        >;
        readContract: <
            const abi extends Abi
            | readonly unknown[],
            functionName extends string,
            const args extends unknown,
        >(
            args: ReadContractParameters<abi, functionName, args>,
        ) => Promise<ReadContractReturnType<abi, functionName, args>>;
        request: EIP1193RequestFn<PublicRpcSchema>;
        sendRawTransaction: (
            args: SendRawTransactionParameters,
        ) => Promise<`0x${string}`>;
        sendRawTransactionSync: (
            args: SendRawTransactionSyncParameters,
        ) => Promise<TransactionReceipt>;
        simulate: <const calls extends readonly unknown[]>(
            args: SimulateBlocksParameters<calls>,
        ) => Promise<SimulateBlocksReturnType<calls>>;
        simulateBlocks: <const calls extends readonly unknown[]>(
            args: SimulateBlocksParameters<calls>,
        ) => Promise<SimulateBlocksReturnType<calls>>;
        simulateCalls: <const calls extends readonly unknown[]>(
            args: SimulateCallsParameters<calls>,
        ) => Promise<SimulateCallsReturnType<calls>>;
        simulateContract: <
            const abi extends Abi
            | readonly unknown[],
            functionName extends string,
            const args extends unknown,
            chainOverride extends Chain | undefined,
            accountOverride extends `0x${string}` | Account | undefined = undefined,
        >(
            args: SimulateContractParameters<
                abi,
                functionName,
                args,
                Chain
                | undefined,
                chainOverride,
                accountOverride,
            >,
        ) => Promise<
            SimulateContractReturnType<
                abi,
                functionName,
                args,
                Chain
                | undefined,
                undefined,
                chainOverride,
                accountOverride,
            >,
        >;
        token: {
            getAllowance: (
                parameters: Parameters<Chain | undefined, Tokens | undefined>,
            ) => Promise<Amount> & {
                call: (
                    args: Args<Chain | undefined, Tokens | undefined>,
                ) => {
                    abi: [
                        {
                            inputs: readonly [
                                { name: ...; type: ... },
                                { name: ...; type: ... },
                            ];
                            name: "allowance";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                    ];
                    functionName: "allowance";
                } & { args: readonly [`0x${string}`, `0x${string}`] } & {
                    address: `0x${string}`;
                } & { data: `0x${string}`; to: `0x${string}` };
            };
            getBalance: (
                parameters: Parameters<
                    Chain
                    | undefined,
                    undefined,
                    Tokens | undefined,
                >,
            ) => Promise<Amount> & {
                call: (
                    args: Args<Chain | undefined, undefined, Tokens | undefined>,
                ) => {
                    abi: [
                        {
                            inputs: readonly [{ name: ...; type: ... }];
                            name: "balanceOf";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                    ];
                    functionName: "balanceOf";
                } & { args: readonly [`0x${string}`] } & { address: `0x${string}` } & {
                    data: `0x${string}`;
                    to: `0x${string}`;
                };
            };
            getMetadata: (
                parameters: Parameters<Chain | undefined, Tokens | undefined>,
            ) => Promise<ReturnValue>;
            getTotalSupply: (
                parameters: Parameters<Chain | undefined, Tokens | undefined>,
            ) => Promise<Amount> & {
                call: (
                    args: Args<Chain | undefined, Tokens | undefined>,
                ) => {
                    abi: [
                        {
                            inputs: readonly [];
                            name: "totalSupply";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                    ];
                    functionName: "totalSupply";
                } & { args?: readonly [] } & { address: `0x${string}` } & {
                    data: `0x${string}`;
                    to: `0x${string}`;
                };
            };
        };
        tokens: Tokens
        | undefined;
        transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
        type: string;
        uid: string;
        uninstallFilter: (args: UninstallFilterParameters) => Promise<boolean>;
        verifyHash: (args: VerifyHashParameters) => Promise<boolean>;
        verifyMessage: (args: VerifyMessageParameters) => Promise<boolean>;
        verifySiweMessage: (args: VerifySiweMessageParameters) => Promise<boolean>;
        verifyTypedData: (args: VerifyTypedDataParameters) => Promise<boolean>;
        waitForTransactionReceipt: (
            args: WaitForTransactionReceiptParameters<Chain | undefined>,
        ) => Promise<TransactionReceipt>;
        watchBlockNumber: (
            args: WatchBlockNumberParameters,
        ) => WatchBlockNumberReturnType;
        watchBlocks: <
            includeTransactions extends boolean = false,
            blockTag extends BlockTag = "latest",
        >(
            args: WatchBlocksParameters<
                Transport,
                Chain
                | undefined,
                includeTransactions,
                blockTag,
            >,
        ) => WatchBlocksReturnType;
        watchContractEvent: <
            const abi extends Abi
            | readonly unknown[],
            eventName extends string,
            strict extends boolean | undefined = undefined,
        >(
            args: WatchContractEventParameters<abi, eventName, strict, Transport>,
        ) => WatchContractEventReturnType;
        watchEvent: <
            const abiEvent extends AbiEvent
            | undefined = undefined,
            const abiEvents extends
                readonly unknown[] | readonly AbiEvent[] | undefined = abiEvent extends AbiEvent
                ? [abiEvent]
                : undefined,
            strict extends boolean
            | undefined = undefined,
        >(
            args: WatchEventParameters<abiEvent, abiEvents, strict, Transport>,
        ) => WatchEventReturnType;
        watchPendingTransactions: (
            args: WatchPendingTransactionsParameters<Transport>,
        ) => WatchPendingTransactionsReturnType;
    }

    viem public client for reads. Multicall batching is enabled by default.

    Type Declaration

    • account: undefined

      The Account of the Client.

    • Optionalbatch?: {
          multicall?:
              | boolean
              | { batchSize?: number; deployless?: boolean; wait?: number };
      }

      Flags for batch settings.

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

        Toggle to enable eth_call multicall aggregation.

    • cacheTime: number

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

    • call: (parameters: CallParameters<Chain | undefined>) => Promise<CallReturnType>

      Executes a new message call immediately without submitting a transaction to the network.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const data = await client.call({
      account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
      data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
      })
    • OptionalccipRead?:
          | false
          | {
              request?: (parameters: CcipRequestParameters) => Promise<`0x${string}`>;
          }

      CCIP Read configuration.

    • chain: Chain | undefined

      Chain for the client.

    • createAccessList: (
          parameters: CreateAccessListParameters<Chain | undefined>,
      ) => Promise<{ accessList: AccessList; gasUsed: bigint }>

      Creates an EIP-2930 access list that you can include in a transaction.

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

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

      const data = await client.createAccessList({
      data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
      })
    • createBlockFilter: () => Promise<
          {
              id: `0x${string}`;
              request: EIP1193RequestFn<
                  readonly [
                      {
                          Method: "eth_getFilterChanges";
                          Parameters: [filterId: `0x${string}`];
                          ReturnType: `0x${string}`[] | RpcLog[];
                      },
                      {
                          Method: "eth_getFilterLogs";
                          Parameters: [filterId: `0x${string}`];
                          ReturnType: RpcLog[];
                      },
                      {
                          Method: "eth_uninstallFilter";
                          Parameters: [filterId: `0x${string}`];
                          ReturnType: boolean;
                      },
                  ],
              >;
              type: "block";
          },
      >

      Creates a Filter to listen for new block hashes that can be used with getFilterChanges.

      import { createPublicClient, createBlockFilter, http } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const filter = await createBlockFilter(client)
      // { id: "0x345a6572337856574a76364e457a4366", type: 'block' }
    • createContractEventFilter: <
          const abi extends Abi
          | readonly unknown[],
          eventName extends string | undefined,
          args extends Record<string, unknown> | readonly unknown[] | undefined,
          strict extends boolean | undefined = undefined,
          fromBlock extends bigint | BlockTag | undefined = undefined,
          toBlock extends bigint | BlockTag | undefined = undefined,
      >(
          args: CreateContractEventFilterParameters<
              abi,
              eventName,
              args,
              strict,
              fromBlock,
              toBlock,
          >,
      ) => Promise<
          CreateContractEventFilterReturnType<
              abi,
              eventName,
              args,
              strict,
              fromBlock,
              toBlock,
          >,
      >

      Creates a Filter to retrieve event logs that can be used with getFilterChanges or getFilterLogs.

      import { createPublicClient, http, parseAbi } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const filter = await client.createContractEventFilter({
      abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),
      })
    • createEventFilter: <
          const abiEvent extends AbiEvent
          | undefined = undefined,
          const abiEvents extends
              readonly unknown[] | readonly AbiEvent[] | undefined = abiEvent extends AbiEvent
              ? [abiEvent]
              : undefined,
          strict extends boolean
          | undefined = undefined,
          fromBlock extends bigint | BlockTag | undefined = undefined,
          toBlock extends bigint | BlockTag | undefined = undefined,
          _EventName extends string | undefined = MaybeAbiEventName<abiEvent>,
          _Args extends
              Record<string, unknown> | readonly unknown[] | undefined = undefined,
      >(
          args?: CreateEventFilterParameters<
              abiEvent,
              abiEvents,
              strict,
              fromBlock,
              toBlock,
              _EventName,
              _Args,
          >,
      ) => Promise<
          {
              [K in string
              | number
              | symbol]: Filter<
                  "event",
                  abiEvents,
                  _EventName,
                  _Args,
                  strict,
                  fromBlock,
                  toBlock,
              >[K]
          },
      >

      Creates a Filter to listen for new events that can be used with getFilterChanges.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const filter = await client.createEventFilter({
      address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',
      })
    • createPendingTransactionFilter: () => Promise<
          {
              id: `0x${string}`;
              request: EIP1193RequestFn<
                  readonly [
                      {
                          Method: "eth_getFilterChanges";
                          Parameters: [filterId: `0x${string}`];
                          ReturnType: `0x${string}`[] | RpcLog[];
                      },
                      {
                          Method: "eth_getFilterLogs";
                          Parameters: [filterId: `0x${string}`];
                          ReturnType: RpcLog[];
                      },
                      {
                          Method: "eth_uninstallFilter";
                          Parameters: [filterId: `0x${string}`];
                          ReturnType: boolean;
                      },
                  ],
              >;
              type: "transaction";
          },
      >

      Creates a Filter to listen for new pending transaction hashes that can be used with getFilterChanges.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const filter = await client.createPendingTransactionFilter()
      // { id: "0x345a6572337856574a76364e457a4366", type: 'transaction' }
    • OptionaldataSuffix?: DataSuffix

      Data suffix to append to transaction data.

    • estimateContractGas: <
          chain extends Chain
          | undefined,
          const abi extends Abi | readonly unknown[],
          functionName extends string,
          args extends unknown,
      >(
          args: EstimateContractGasParameters<abi, functionName, args, chain>,
      ) => Promise<bigint>

      Estimates the gas required to successfully execute a contract write function call.

      Internally, uses a Public Client to call the estimateGas action with ABI-encoded data.

      import { createPublicClient, http, parseAbi } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const gas = await client.estimateContractGas({
      address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
      abi: parseAbi(['function mint() public']),
      functionName: 'mint',
      account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
      })
    • estimateFeesPerGas: <
          chainOverride extends Chain
          | undefined = undefined,
          type extends FeeValuesType = "eip1559",
      >(
          args?: EstimateFeesPerGasParameters<
              Chain
              | undefined,
              chainOverride,
              type,
          >,
      ) => Promise<EstimateFeesPerGasReturnType<type>>

      Returns an estimate for the fees per gas for a transaction to be included in the next block.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const maxPriorityFeePerGas = await client.estimateFeesPerGas()
      // { maxFeePerGas: ..., maxPriorityFeePerGas: ... }
    • estimateGas: (args: EstimateGasParameters<Chain | undefined>) => Promise<bigint>

      Estimates the gas necessary to complete a transaction without submitting it to the network.

      import { createPublicClient, http, parseEther } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const gasEstimate = await client.estimateGas({
      account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
      value: parseEther('1'),
      })
    • estimateMaxPriorityFeePerGas: <chainOverride extends Chain | undefined = undefined>(
          args?: { chain: chainOverride | null },
      ) => Promise<bigint>

      Returns an estimate for the max priority fee per gas (in wei) for a transaction to be included in the next block.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const maxPriorityFeePerGas = await client.estimateMaxPriorityFeePerGas()
      // 10000000n
    • Optionalexperimental_blockTag?: BlockTag

      Default block tag to use for RPC requests.

    • extend: <
          const client extends
              {
                  account?: undefined;
                  batch?: undefined;
                  cacheTime?: undefined;
                  ccipRead?: undefined;
                  chain?: undefined;
                  dataSuffix?: undefined;
                  experimental_blockTag?: undefined;
                  key?: undefined;
                  name?: undefined;
                  pollingInterval?: undefined;
                  request?: undefined;
                  tokens?: undefined;
                  transport?: undefined;
                  type?: undefined;
                  uid?: undefined;
                  [key: string]: unknown;
              } & ExactPartial<
                  ExtendableProtectedActions<
                      Transport,
                      Chain
                      | undefined,
                      undefined,
                      Tokens | undefined,
                  >,
              >,
      >(
          fn: (
              client: Client<
                  Transport,
                  Chain
                  | undefined,
                  undefined,
                  PublicRpcSchema,
                  PublicActions<
                      Transport,
                      Chain
                      | undefined,
                      undefined,
                      Tokens | undefined,
                  >,
                  Tokens | undefined,
              >,
          ) => client,
      ) => Client<
          Transport,
          Chain
          | undefined,
          undefined,
          PublicRpcSchema,
          { [K in string | number | symbol]: client[K] } & PublicActions<
              Transport,
              Chain
              | undefined,
              undefined,
              Tokens | undefined,
          >,
          Tokens | undefined,
      >
    • fillTransaction: <
          chainOverride extends Chain
          | undefined = undefined,
          accountOverride extends `0x${string}` | Account | undefined = undefined,
      >(
          args: FillTransactionParameters<
              Chain
              | undefined,
              undefined,
              chainOverride,
              accountOverride,
          >,
      ) => Promise<FillTransactionReturnType<Chain | undefined, chainOverride>>

      Fills a transaction request with the necessary fields to be signed over.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const result = await client.fillTransaction({
      account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
      value: parseEther('1'),
      })
    • getBalance: (args: GetBalanceParameters) => Promise<bigint>

      Returns the balance of an address in wei.

      You can convert the balance to ether units with formatEther.

      const balance = await getBalance(client, {
      address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
      blockTag: 'safe'
      })
      const balanceAsEther = formatEther(balance)
      // "6.942"
      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const balance = await client.getBalance({
      address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
      })
      // 10000000000000000000000n (wei)
    • getBlobBaseFee: () => Promise<bigint>

      Returns the base fee per blob gas in wei.

      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'
      import { getBlobBaseFee } from 'viem/public'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const blobBaseFee = await client.getBlobBaseFee()
    • getBlock: <
          includeTransactions extends boolean = false,
          blockTag extends BlockTag = "latest",
      >(
          args?: GetBlockParameters<includeTransactions, blockTag>,
      ) => Promise<
          {
              baseFeePerGas: bigint
              | null;
              blobGasUsed: bigint;
              difficulty: bigint;
              excessBlobGas: bigint;
              extraData: `0x${string}`;
              gasLimit: bigint;
              gasUsed: bigint;
              hash: blockTag extends "pending" ? null : `0x${string}`;
              logsBloom: blockTag extends "pending" ? null : `0x${string}`;
              miner: `0x${string}`;
              mixHash: `0x${string}`;
              nonce: blockTag extends "pending" ? null : `0x${string}`;
              number: blockTag extends "pending" ? null : bigint;
              parentBeaconBlockRoot?: `0x${string}`;
              parentHash: `0x${string}`;
              receiptsRoot: `0x${string}`;
              sealFields: `0x${string}`[];
              sha3Uncles: `0x${string}`;
              size: bigint;
              stateRoot: `0x${string}`;
              timestamp: bigint;
              totalDifficulty: bigint | null;
              transactions: includeTransactions extends true
                  ? (
                      | {
                          accessList?: undefined;
                          authorizationList?: undefined;
                          blobVersionedHashes?: undefined;
                          blockHash: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : `0x${string}`;
                          blockNumber: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : bigint;
                          blockTimestamp?: bigint;
                          chainId?: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice: bigint;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas?: undefined;
                          maxPriorityFeePerGas?: undefined;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          to: `0x${string}` | null;
                          transactionIndex: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : number;
                          type: "legacy";
                          typeHex: `0x${string}` | null;
                          v: bigint;
                          value: bigint;
                          yParity?: undefined;
                      }
                      | {
                          accessList: AccessList;
                          authorizationList?: undefined;
                          blobVersionedHashes?: undefined;
                          blockHash: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : `0x${string}`;
                          blockNumber: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : bigint;
                          blockTimestamp?: bigint;
                          chainId: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice: bigint;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas?: undefined;
                          maxPriorityFeePerGas?: undefined;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          to: `0x${string}` | null;
                          transactionIndex: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : number;
                          type: "eip2930";
                          typeHex: `0x${string}` | null;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      }
                      | {
                          accessList: AccessList;
                          authorizationList?: undefined;
                          blobVersionedHashes?: undefined;
                          blockHash: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : `0x${string}`;
                          blockNumber: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : bigint;
                          blockTimestamp?: bigint;
                          chainId: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice?: undefined;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas: bigint;
                          maxPriorityFeePerGas: bigint;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          to: `0x${string}` | null;
                          transactionIndex: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : number;
                          type: "eip1559";
                          typeHex: `0x${string}` | null;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      }
                      | {
                          accessList: AccessList;
                          authorizationList?: undefined;
                          blobVersionedHashes: readonly `0x${string}`[];
                          blockHash: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : `0x${string}`;
                          blockNumber: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : bigint;
                          blockTimestamp?: bigint;
                          chainId: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice?: undefined;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          maxFeePerBlobGas: bigint;
                          maxFeePerGas: bigint;
                          maxPriorityFeePerGas: bigint;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          to: `0x${string}` | null;
                          transactionIndex: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : number;
                          type: "eip4844";
                          typeHex: `0x${string}` | null;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      }
                      | {
                          accessList: AccessList;
                          authorizationList: SignedAuthorizationList;
                          blobVersionedHashes?: undefined;
                          blockHash: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : `0x${string}`;
                          blockNumber: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : bigint;
                          blockTimestamp?: bigint;
                          chainId: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice?: undefined;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas: bigint;
                          maxPriorityFeePerGas: bigint;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          to: `0x${string}` | null;
                          transactionIndex: (blockTag extends "pending" ? true : false) extends true
                              ? null
                              : number;
                          type: "eip7702";
                          typeHex: `0x${string}` | null;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      }
                  )[]
                  : `0x${string}`[];
              transactionsRoot: `0x${string}`;
              uncles: `0x${string}`[];
              withdrawals?: Withdrawal[];
              withdrawalsRoot?: `0x${string}`;
          },
      >

      Returns information about a block at a block number, hash, or tag.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const block = await client.getBlock()
    • getBlockNumber: (args?: GetBlockNumberParameters) => Promise<bigint>
      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const blockNumber = await client.getBlockNumber()
      // 69420n
    • getBlockReceipts: (
          args?: GetBlockReceiptsParameters,
      ) => Promise<GetBlockReceiptsReturnType<Chain | undefined>>

      Returns the transaction receipts of a block at a block number, hash, or tag.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const receipts = await client.getBlockReceipts({
      blockNumber: 69420n,
      })
    • getBlockTransactionCount: (args?: GetBlockTransactionCountParameters) => Promise<number>

      Returns the number of Transactions at a block number, hash, or tag.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const count = await client.getBlockTransactionCount()
    • getBytecode: (args: GetCodeParameters) => Promise<GetCodeReturnType>

      Use getCode instead.

    • getChainId: () => Promise<number>

      Returns the chain ID associated with the current network.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const chainId = await client.getChainId()
      // 1
    • getCode: (args: GetCodeParameters) => Promise<GetCodeReturnType>

      Retrieves the bytecode at an address.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const code = await client.getCode({
      address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
      })
    • getContractEvents: <
          const abi extends Abi
          | readonly unknown[],
          eventName extends string | undefined = undefined,
          strict extends boolean | undefined = undefined,
          fromBlock extends bigint | BlockTag | undefined = undefined,
          toBlock extends bigint | BlockTag | undefined = undefined,
      >(
          args: GetContractEventsParameters<
              abi,
              eventName,
              strict,
              fromBlock,
              toBlock,
          >,
      ) => Promise<
          GetContractEventsReturnType<abi, eventName, strict, fromBlock, toBlock>,
      >

      Returns a list of event logs emitted by a contract.

      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'
      import { wagmiAbi } from './abi'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const logs = await client.getContractEvents(client, {
      address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
      abi: wagmiAbi,
      eventName: 'Transfer'
      })
    • getDelegation: (args: GetDelegationParameters) => Promise<GetDelegationReturnType>

      Returns the address that an account has delegated to via EIP-7702.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const delegation = await client.getDelegation({
      address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
      })
    • getEip712Domain: (args: GetEip712DomainParameters) => Promise<GetEip712DomainReturnType>

      Reads the EIP-712 domain from a contract, based on the ERC-5267 specification.

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

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

      const domain = await client.getEip712Domain({
      address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
      })
      // {
      // domain: {
      // name: 'ExampleContract',
      // version: '1',
      // chainId: 1,
      // verifyingContract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
      // },
      // fields: '0x0f',
      // extensions: [],
      // }
    • getEnsAddress: (
          args: {
              blockNumber?: bigint;
              blockTag?: BlockTag;
              coinType?: bigint;
              gatewayUrls?: string[];
              name: string;
              strict?: boolean;
              universalResolverAddress?: `0x${string}`;
          },
      ) => Promise<GetEnsAddressReturnType>

      Calls resolve(bytes, bytes) on ENS Universal Resolver Contract.

      Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to normalize ENS names with UTS-46 normalization before passing them to getEnsAddress. You can use the built-in normalize function for this.

      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'
      import { normalize } from 'viem/ens'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const ensAddress = await client.getEnsAddress({
      name: normalize('wevm.eth'),
      })
      // '0xd2135CfB216b74109775236E36d4b433F1DF507B'
    • getEnsAvatar: (
          args: {
              assetGatewayUrls?: AssetGatewayUrls;
              blockNumber?: bigint;
              blockTag?: BlockTag;
              gatewayUrls?: string[];
              name: string;
              strict?: boolean;
              universalResolverAddress?: `0x${string}`;
          },
      ) => Promise<GetEnsAvatarReturnType>

      Calls getEnsText with key set to 'avatar'.

      Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to normalize ENS names with UTS-46 normalization before passing them to getEnsAddress. You can use the built-in normalize function for this.

      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'
      import { normalize } from 'viem/ens'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const ensAvatar = await client.getEnsAvatar({
      name: normalize('wevm.eth'),
      })
      // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'
    • getEnsName: (
          args: {
              address: `0x${string}`;
              blockNumber?: bigint;
              blockTag?: BlockTag;
              coinType?: bigint;
              gatewayUrls?: string[];
              strict?: boolean;
              universalResolverAddress?: `0x${string}`;
          },
      ) => Promise<GetEnsNameReturnType>

      Calls reverse(bytes) on ENS Universal Resolver Contract to "reverse resolve" the address to the primary ENS name.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const ensName = await client.getEnsName({
      address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
      })
      // 'wevm.eth'
    • getEnsResolver: (
          args: {
              blockNumber?: bigint;
              blockTag?: BlockTag;
              name: string;
              universalResolverAddress?: `0x${string}`;
          },
      ) => Promise<`0x${string}`>

      Calls findResolver(bytes) on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.

      Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to normalize ENS names with UTS-46 normalization before passing them to getEnsAddress. You can use the built-in normalize function for this.

      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'
      import { normalize } from 'viem/ens'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const resolverAddress = await client.getEnsResolver({
      name: normalize('wevm.eth'),
      })
      // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'
    • getEnsText: (
          args: {
              blockNumber?: bigint;
              blockTag?: BlockTag;
              gatewayUrls?: string[];
              key: string;
              name: string;
              strict?: boolean;
              universalResolverAddress?: `0x${string}`;
          },
      ) => Promise<GetEnsTextReturnType>

      Calls resolve(bytes, bytes) on ENS Universal Resolver Contract.

      Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to normalize ENS names with UTS-46 normalization before passing them to getEnsAddress. You can use the built-in normalize function for this.

      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'
      import { normalize } from 'viem/ens'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const twitterRecord = await client.getEnsText({
      name: normalize('wevm.eth'),
      key: 'com.twitter',
      })
      // 'wevm_dev'
    • getFeeHistory: (args: GetFeeHistoryParameters) => Promise<GetFeeHistoryReturnType>

      Returns a collection of historical gas information.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const feeHistory = await client.getFeeHistory({
      blockCount: 4,
      rewardPercentiles: [25, 75],
      })
    • getFilterChanges: <
          filterType extends FilterType,
          const abi extends Abi | readonly unknown[] | undefined,
          eventName extends string | undefined,
          strict extends boolean | undefined = undefined,
          fromBlock extends bigint | BlockTag | undefined = undefined,
          toBlock extends bigint | BlockTag | undefined = undefined,
      >(
          args: GetFilterChangesParameters<
              filterType,
              abi,
              eventName,
              strict,
              fromBlock,
              toBlock,
          >,
      ) => Promise<
          GetFilterChangesReturnType<
              filterType,
              abi,
              eventName,
              strict,
              fromBlock,
              toBlock,
          >,
      >

      Returns a list of logs or hashes based on a Filter since the last time it was called.

      A Filter can be created from the following actions:

      Depending on the type of filter, the return value will be different:

      • If the filter was created with createContractEventFilter or createEventFilter, it returns a list of logs.
      • If the filter was created with createPendingTransactionFilter, it returns a list of transaction hashes.
      • If the filter was created with createBlockFilter, it returns a list of block hashes.
      // Blocks
      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const filter = await client.createBlockFilter()
      const hashes = await client.getFilterChanges({ filter })
      // Contract Events
      import { createPublicClient, http, parseAbi } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const filter = await client.createContractEventFilter({
      address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
      abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),
      eventName: 'Transfer',
      })
      const logs = await client.getFilterChanges({ filter })
      // Raw Events
      import { createPublicClient, http, parseAbiItem } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const filter = await client.createEventFilter({
      address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
      event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),
      })
      const logs = await client.getFilterChanges({ filter })
      // Transactions
      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const filter = await client.createPendingTransactionFilter()
      const hashes = await client.getFilterChanges({ filter })
    • getFilterLogs: <
          const abi extends Abi
          | readonly unknown[]
          | undefined,
          eventName extends string | undefined,
          strict extends boolean | undefined = undefined,
          fromBlock extends bigint | BlockTag | undefined = undefined,
          toBlock extends bigint | BlockTag | undefined = undefined,
      >(
          args: GetFilterLogsParameters<
              abi,
              eventName,
              strict,
              fromBlock,
              toBlock,
          >,
      ) => Promise<
          GetFilterLogsReturnType<abi, eventName, strict, fromBlock, toBlock>,
      >

      Returns a list of event logs since the filter was created.

      getFilterLogs is only compatible with event filters.

      import { createPublicClient, http, parseAbiItem } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const filter = await client.createEventFilter({
      address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
      event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),
      })
      const logs = await client.getFilterLogs({ filter })
    • getGasPrice: () => Promise<bigint>

      Returns the current price of gas (in wei).

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const gasPrice = await client.getGasPrice()
    • getLogs: <
          const abiEvent extends AbiEvent
          | undefined = undefined,
          const abiEvents extends
              readonly unknown[] | readonly AbiEvent[] | undefined = abiEvent extends AbiEvent
              ? [abiEvent]
              : undefined,
          strict extends boolean
          | undefined = undefined,
          fromBlock extends bigint | BlockTag | undefined = undefined,
          toBlock extends bigint | BlockTag | undefined = undefined,
      >(
          args?: GetLogsParameters<
              abiEvent,
              abiEvents,
              strict,
              fromBlock,
              toBlock,
          >,
      ) => Promise<
          GetLogsReturnType<abiEvent, abiEvents, strict, fromBlock, toBlock>,
      >

      Returns a list of event logs matching the provided parameters.

      import { createPublicClient, http, parseAbiItem } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const logs = await client.getLogs()
    • getProof: (args: GetProofParameters) => Promise<GetProofReturnType>

      Returns the account and storage values of the specified account including the Merkle-proof.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const block = await client.getProof({
      address: '0x...',
      storageKeys: ['0x...'],
      })
    • getRawTransaction: (args: GetRawTransactionParameters) => Promise<`0x${string}`>

      Returns the raw, serialized Transaction given a hash.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const rawTransaction = await client.getRawTransaction({
      hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
      })
    • getStorageAt: (args: GetStorageAtParameters) => Promise<GetStorageAtReturnType>

      Returns the value from a storage slot at a given address.

      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'
      import { getStorageAt } from 'viem/contract'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const code = await client.getStorageAt({
      address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
      slot: toHex(0),
      })
    • getTransaction: <blockTag extends BlockTag = "latest">(
          args: GetTransactionParameters<blockTag>,
      ) => Promise<
          | {
              accessList?: undefined;
              authorizationList?: undefined;
              blobVersionedHashes?: undefined;
              blockHash: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : `0x${string}`;
              blockNumber: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : bigint;
              blockTimestamp?: bigint;
              chainId?: number;
              from: `0x${string}`;
              gas: bigint;
              gasPrice: bigint;
              hash: `0x${string}`;
              input: `0x${string}`;
              maxFeePerBlobGas?: undefined;
              maxFeePerGas?: undefined;
              maxPriorityFeePerGas?: undefined;
              nonce: number;
              r: `0x${string}`;
              s: `0x${string}`;
              to: `0x${string}` | null;
              transactionIndex: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : number;
              type: "legacy";
              typeHex: `0x${string}` | null;
              v: bigint;
              value: bigint;
              yParity?: undefined;
          }
          | {
              accessList: AccessList;
              authorizationList?: undefined;
              blobVersionedHashes?: undefined;
              blockHash: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : `0x${string}`;
              blockNumber: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : bigint;
              blockTimestamp?: bigint;
              chainId: number;
              from: `0x${string}`;
              gas: bigint;
              gasPrice: bigint;
              hash: `0x${string}`;
              input: `0x${string}`;
              maxFeePerBlobGas?: undefined;
              maxFeePerGas?: undefined;
              maxPriorityFeePerGas?: undefined;
              nonce: number;
              r: `0x${string}`;
              s: `0x${string}`;
              to: `0x${string}` | null;
              transactionIndex: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : number;
              type: "eip2930";
              typeHex: `0x${string}` | null;
              v: bigint;
              value: bigint;
              yParity: number;
          }
          | {
              accessList: AccessList;
              authorizationList?: undefined;
              blobVersionedHashes?: undefined;
              blockHash: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : `0x${string}`;
              blockNumber: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : bigint;
              blockTimestamp?: bigint;
              chainId: number;
              from: `0x${string}`;
              gas: bigint;
              gasPrice?: undefined;
              hash: `0x${string}`;
              input: `0x${string}`;
              maxFeePerBlobGas?: undefined;
              maxFeePerGas: bigint;
              maxPriorityFeePerGas: bigint;
              nonce: number;
              r: `0x${string}`;
              s: `0x${string}`;
              to: `0x${string}` | null;
              transactionIndex: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : number;
              type: "eip1559";
              typeHex: `0x${string}` | null;
              v: bigint;
              value: bigint;
              yParity: number;
          }
          | {
              accessList: AccessList;
              authorizationList?: undefined;
              blobVersionedHashes: readonly `0x${string}`[];
              blockHash: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : `0x${string}`;
              blockNumber: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : bigint;
              blockTimestamp?: bigint;
              chainId: number;
              from: `0x${string}`;
              gas: bigint;
              gasPrice?: undefined;
              hash: `0x${string}`;
              input: `0x${string}`;
              maxFeePerBlobGas: bigint;
              maxFeePerGas: bigint;
              maxPriorityFeePerGas: bigint;
              nonce: number;
              r: `0x${string}`;
              s: `0x${string}`;
              to: `0x${string}` | null;
              transactionIndex: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : number;
              type: "eip4844";
              typeHex: `0x${string}` | null;
              v: bigint;
              value: bigint;
              yParity: number;
          }
          | {
              accessList: AccessList;
              authorizationList: SignedAuthorizationList;
              blobVersionedHashes?: undefined;
              blockHash: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : `0x${string}`;
              blockNumber: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : bigint;
              blockTimestamp?: bigint;
              chainId: number;
              from: `0x${string}`;
              gas: bigint;
              gasPrice?: undefined;
              hash: `0x${string}`;
              input: `0x${string}`;
              maxFeePerBlobGas?: undefined;
              maxFeePerGas: bigint;
              maxPriorityFeePerGas: bigint;
              nonce: number;
              r: `0x${string}`;
              s: `0x${string}`;
              to: `0x${string}` | null;
              transactionIndex: (blockTag extends "pending" ? true : false) extends true
                  ? null
                  : number;
              type: "eip7702";
              typeHex: `0x${string}` | null;
              v: bigint;
              value: bigint;
              yParity: number;
          },
      >
      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const transaction = await client.getTransaction({
      hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
      })
    • getTransactionConfirmations: (
          args: GetTransactionConfirmationsParameters<Chain | undefined>,
      ) => Promise<bigint>

      Returns the number of blocks passed (confirmations) since the transaction was processed on a block.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const confirmations = await client.getTransactionConfirmations({
      hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
      })
    • getTransactionCount: (args: GetTransactionCountParameters) => Promise<number>

      Returns the number of Transactions an Account has broadcast / sent.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const transactionCount = await client.getTransactionCount({
      address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
      })
    • getTransactionReceipt: (args: GetTransactionReceiptParameters) => Promise<TransactionReceipt>
      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const transactionReceipt = await client.getTransactionReceipt({
      hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
      })
    • key: string

      A key for the client.

    • multicall: <
          const contracts extends readonly unknown[],
          allowFailure extends boolean = true,
      >(
          args: MulticallParameters<contracts, allowFailure>,
      ) => Promise<MulticallReturnType<contracts, allowFailure>>

      Similar to readContract, but batches up multiple functions on a contract in a single RPC call via the multicall3 contract.

      import { createPublicClient, http, parseAbi } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const abi = parseAbi([
      'function balanceOf(address) view returns (uint256)',
      'function totalSupply() view returns (uint256)',
      ])
      const result = await client.multicall({
      contracts: [
      {
      address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
      abi,
      functionName: 'balanceOf',
      args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],
      },
      {
      address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
      abi,
      functionName: 'totalSupply',
      },
      ],
      })
      // [{ result: 424122n, status: 'success' }, { result: 1000000n, status: 'success' }]
    • 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?: `0x${string}`
                          | null;
                          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?: `0x${string}`
                          | null;
                          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?: `0x${string}`
                          | null;
                          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?: undefined;
                          maxFeePerBlobGas?: bigint;
                          maxFeePerGas?: bigint;
                          maxPriorityFeePerGas?: bigint;
                          nonce?: number;
                          sidecars?: readonly BlobSidecar<`0x${string}`>[];
                          to: `0x${string}` | null;
                          type?: "eip4844";
                          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: `0x${string}` | null;
                          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?: `0x${string}` | null;
                          type?: "eip7702";
                          value?: bigint;
                      },
                      "from",
                  >
              ) & { kzg?: Kzg } & {
                  nonceManager?: NonceManager;
                  parameters?: readonly PrepareTransactionRequestParameterType[];
              },
          chainOverride extends Chain
          | undefined = undefined,
          accountOverride extends `0x${string}` | Account | undefined = undefined,
      >(
          args: PrepareTransactionRequestParameters<
              Chain
              | undefined,
              undefined,
              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]
                              : | "type"
                              | "gas"
                              | "nonce"
                              | "blobVersionedHashes"
                              | "fees"
                              | "chainId",
                      >,
                  > & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">) & {
                      _capabilities?: { [key: string]: any };
                  }
              )[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,
      })
    • readContract: <
          const abi extends Abi
          | readonly unknown[],
          functionName extends string,
          const args extends unknown,
      >(
          args: ReadContractParameters<abi, functionName, args>,
      ) => Promise<ReadContractReturnType<abi, functionName, args>>

      Calls a read-only function on a contract, and returns the response.

      A "read-only" function (constant function) on a Solidity contract is denoted by a view or pure keyword. They can only read the state of the contract, and cannot make any changes to it. Since read-only methods do not change the state of the contract, they do not require any gas to be executed, and can be called by any user without the need to pay for gas.

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

      import { createPublicClient, http, parseAbi } from 'viem'
      import { mainnet } from 'viem/chains'
      import { readContract } from 'viem/contract'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const result = await client.readContract({
      address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
      abi: parseAbi(['function balanceOf(address) view returns (uint256)']),
      functionName: 'balanceOf',
      args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],
      })
      // 424122n
    • request: EIP1193RequestFn<PublicRpcSchema>

      Request function wrapped with friendly error handling

    • 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'
      })
    • sendRawTransactionSync: (args: SendRawTransactionSyncParameters) => Promise<TransactionReceipt>

      Sends a signed transaction to the network

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

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

      const receipt = await client.sendRawTransactionSync({
      serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'
      })
    • simulate: <const calls extends readonly unknown[]>(
          args: SimulateBlocksParameters<calls>,
      ) => Promise<SimulateBlocksReturnType<calls>>

      Use simulateBlocks instead.

    • simulateBlocks: <const calls extends readonly unknown[]>(
          args: SimulateBlocksParameters<calls>,
      ) => Promise<SimulateBlocksReturnType<calls>>

      Simulates a set of calls on block(s) with optional block and state overrides.

      import { createPublicClient, http, parseEther } from 'viem'
      import { mainnet } from 'viem/chains'

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

      const result = await client.simulateBlocks({
      blocks: [{
      blockOverrides: {
      number: 69420n,
      },
      calls: [{
      {
      account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',
      data: '0xdeadbeef',
      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
      },
      {
      account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',
      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
      value: parseEther('1'),
      },
      }],
      stateOverrides: [{
      address: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',
      balance: parseEther('10'),
      }],
      }]
      })
    • simulateCalls: <const calls extends readonly unknown[]>(
          args: SimulateCallsParameters<calls>,
      ) => Promise<SimulateCallsReturnType<calls>>

      Simulates a set of calls.

      import { createPublicClient, http, parseEther } from 'viem'
      import { mainnet } from 'viem/chains'

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

      const result = await client.simulateCalls({
      account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',
      calls: [{
      {
      data: '0xdeadbeef',
      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
      },
      {
      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
      value: parseEther('1'),
      },
      ]
      })
    • simulateContract: <
          const abi extends Abi
          | readonly unknown[],
          functionName extends string,
          const args extends unknown,
          chainOverride extends Chain | undefined,
          accountOverride extends `0x${string}` | Account | undefined = undefined,
      >(
          args: SimulateContractParameters<
              abi,
              functionName,
              args,
              Chain
              | undefined,
              chainOverride,
              accountOverride,
          >,
      ) => Promise<
          SimulateContractReturnType<
              abi,
              functionName,
              args,
              Chain
              | undefined,
              undefined,
              chainOverride,
              accountOverride,
          >,
      >

      Simulates/validates a contract interaction. This is useful for retrieving return data and revert reasons of contract write functions.

      This function does not require gas to execute and does not change the state of the blockchain. It is almost identical to readContract, but also supports contract write functions.

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

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const result = await client.simulateContract({
      address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
      abi: parseAbi(['function mint(uint32) view returns (uint32)']),
      functionName: 'mint',
      args: ['69420'],
      account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
      })
    • token: {
          getAllowance: (
              parameters: Parameters<Chain | undefined, Tokens | undefined>,
          ) => Promise<Amount> & {
              call: (
                  args: Args<Chain | undefined, Tokens | undefined>,
              ) => {
                  abi: [
                      {
                          inputs: readonly [
                              { name: ...; type: ... },
                              { name: ...; type: ... },
                          ];
                          name: "allowance";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                  ];
                  functionName: "allowance";
              } & { args: readonly [`0x${string}`, `0x${string}`] } & {
                  address: `0x${string}`;
              } & { data: `0x${string}`; to: `0x${string}` };
          };
          getBalance: (
              parameters: Parameters<
                  Chain
                  | undefined,
                  undefined,
                  Tokens | undefined,
              >,
          ) => Promise<Amount> & {
              call: (
                  args: Args<Chain | undefined, undefined, Tokens | undefined>,
              ) => {
                  abi: [
                      {
                          inputs: readonly [{ name: ...; type: ... }];
                          name: "balanceOf";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                  ];
                  functionName: "balanceOf";
              } & { args: readonly [`0x${string}`] } & { address: `0x${string}` } & {
                  data: `0x${string}`;
                  to: `0x${string}`;
              };
          };
          getMetadata: (
              parameters: Parameters<Chain | undefined, Tokens | undefined>,
          ) => Promise<ReturnValue>;
          getTotalSupply: (
              parameters: Parameters<Chain | undefined, Tokens | undefined>,
          ) => Promise<Amount> & {
              call: (
                  args: Args<Chain | undefined, Tokens | undefined>,
              ) => {
                  abi: [
                      {
                          inputs: readonly [];
                          name: "totalSupply";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                  ];
                  functionName: "totalSupply";
              } & { args?: readonly [] } & { address: `0x${string}` } & {
                  data: `0x${string}`;
                  to: `0x${string}`;
              };
          };
      }

      Read-only ERC-20 Actions, exposed under the token namespace.

      Every action selects its token by token, which is either a token symbol (resolved from the Client's tokens array) or a contract address.

      • getAllowance: (
            parameters: Parameters<Chain | undefined, Tokens | undefined>,
        ) => Promise<Amount> & {
            call: (
                args: Args<Chain | undefined, Tokens | undefined>,
            ) => {
                abi: [
                    {
                        inputs: readonly [{ name: ...; type: ... }, { name: ...; type: ... }];
                        name: "allowance";
                        outputs: readonly [{ type: ... }];
                        stateMutability: "view";
                        type: "function";
                    },
                ];
                functionName: "allowance";
            } & { args: readonly [`0x${string}`, `0x${string}`] } & {
                address: `0x${string}`;
            } & { data: `0x${string}`; to: `0x${string}` };
        }

        Gets the amount of tokens a spender is allowed to spend on behalf of an account.

        getAllowance.Parameters

        The remaining allowance, in base units and human-readable form. getAllowance.ReturnValue

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

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

        const allowance = await client.token.getAllowance({
        account: '0x…',
        spender: '0x…',
        token: 'usdc',
        })
      • getBalance: (
            parameters: Parameters<Chain | undefined, undefined, Tokens | undefined>,
        ) => Promise<Amount> & {
            call: (
                args: Args<Chain | undefined, undefined, Tokens | undefined>,
            ) => {
                abi: [
                    {
                        inputs: readonly [{ name: ...; type: ... }];
                        name: "balanceOf";
                        outputs: readonly [{ type: ... }];
                        stateMutability: "view";
                        type: "function";
                    },
                ];
                functionName: "balanceOf";
            } & { args: readonly [`0x${string}`] } & { address: `0x${string}` } & {
                data: `0x${string}`;
                to: `0x${string}`;
            };
        }

        Gets the token balance of an account.

        getTokenBalance.Parameters

        The token balance, in base units and human-readable form. getTokenBalance.ReturnValue

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

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

        const balance = await client.token.getBalance({
        account: '0x…',
        token: 'usdc',
        })
      • getMetadata: (
            parameters: Parameters<Chain | undefined, Tokens | undefined>,
        ) => Promise<ReturnValue>

        Gets the metadata (decimals, name, symbol) of the token. Fields declared on the Client's tokens array are used as-is; any missing field is fetched from the token contract.

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

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

        const metadata = await client.token.getMetadata({ token: 'usdc' })
      • getTotalSupply: (
            parameters: Parameters<Chain | undefined, Tokens | undefined>,
        ) => Promise<Amount> & {
            call: (
                args: Args<Chain | undefined, Tokens | undefined>,
            ) => {
                abi: [
                    {
                        inputs: readonly [];
                        name: "totalSupply";
                        outputs: readonly [{ type: ... }];
                        stateMutability: "view";
                        type: "function";
                    },
                ];
                functionName: "totalSupply";
            } & { args?: readonly [] } & { address: `0x${string}` } & {
                data: `0x${string}`;
                to: `0x${string}`;
            };
        }

        Gets the total supply of the token.

        getTotalSupply.Parameters

        The token total supply, in base units and human-readable form. getTotalSupply.ReturnValue

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

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

        const totalSupply = await client.token.getTotalSupply({ token: 'usdc' })
    • tokens: Tokens | undefined

      Collection of tokens declared on the Client.

    • transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>

      The RPC transport

    • type: string

      The type of client.

    • uid: string

      A unique ID for the client.

    • uninstallFilter: (args: UninstallFilterParameters) => Promise<boolean>

      Destroys a Filter that was created from one of the following Actions:

      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'
      import { createPendingTransactionFilter, uninstallFilter } from 'viem/public'

      const filter = await client.createPendingTransactionFilter()
      const uninstalled = await client.uninstallFilter({ filter })
      // true
    • verifyHash: (args: VerifyHashParameters) => Promise<boolean>

      Verify that a hash was signed by the provided address.

    • verifyMessage: (args: VerifyMessageParameters) => Promise<boolean>

      Verify that a message was signed by the provided address.

      Compatible with Smart Contract Accounts & Externally Owned Accounts via ERC-6492.

    • verifySiweMessage: (args: VerifySiweMessageParameters) => Promise<boolean>

      Verifies EIP-4361 formatted message was signed.

      Compatible with Smart Contract Accounts & Externally Owned Accounts via ERC-6492.

    • verifyTypedData: (args: VerifyTypedDataParameters) => Promise<boolean>

      Verify that typed data was signed by the provided address.

    • waitForTransactionReceipt: (
          args: WaitForTransactionReceiptParameters<Chain | undefined>,
      ) => Promise<TransactionReceipt>

      Waits for the Transaction to be included on a Block (one confirmation), and then returns the Transaction Receipt. If the Transaction reverts, then the action will throw an error.

      The waitForTransactionReceipt action additionally supports Replacement detection (e.g. sped up Transactions).

      Transactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.

      There are 3 types of Transaction Replacement reasons:

      • repriced: The gas price has been modified (e.g. different maxFeePerGas)
      • cancelled: The Transaction has been cancelled (e.g. value === 0n)
      • replaced: The Transaction has been replaced (e.g. different value or data)
      import { createPublicClient, http } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const transactionReceipt = await client.waitForTransactionReceipt({
      hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
      })
    • watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType

      Watches and returns incoming block numbers.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const unwatch = await client.watchBlockNumber({
      onBlockNumber: (blockNumber) => console.log(blockNumber),
      })
    • watchBlocks: <
          includeTransactions extends boolean = false,
          blockTag extends BlockTag = "latest",
      >(
          args: WatchBlocksParameters<
              Transport,
              Chain
              | undefined,
              includeTransactions,
              blockTag,
          >,
      ) => WatchBlocksReturnType

      Watches and returns information for incoming blocks.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const unwatch = await client.watchBlocks({
      onBlock: (block) => console.log(block),
      })
    • watchContractEvent: <
          const abi extends Abi
          | readonly unknown[],
          eventName extends string,
          strict extends boolean | undefined = undefined,
      >(
          args: WatchContractEventParameters<abi, eventName, strict, Transport>,
      ) => WatchContractEventReturnType

      Watches and returns emitted contract event logs.

      This Action will batch up all the event logs found within the pollingInterval, and invoke them via onLogs.

      watchContractEvent will attempt to create an Event Filter and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. eth_newFilter), then watchContractEvent will fall back to using getLogs instead.

      import { createPublicClient, http, parseAbi } from 'viem'
      import { mainnet } from 'viem/chains'

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const unwatch = client.watchContractEvent({
      address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
      abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']),
      eventName: 'Transfer',
      args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },
      onLogs: (logs) => console.log(logs),
      })
    • watchEvent: <
          const abiEvent extends AbiEvent
          | undefined = undefined,
          const abiEvents extends
              readonly unknown[] | readonly AbiEvent[] | undefined = abiEvent extends AbiEvent
              ? [abiEvent]
              : undefined,
          strict extends boolean
          | undefined = undefined,
      >(
          args: WatchEventParameters<abiEvent, abiEvents, strict, Transport>,
      ) => WatchEventReturnType

      Watches and returns emitted Event Logs.

      This Action will batch up all the Event Logs found within the pollingInterval, and invoke them via onLogs.

      watchEvent will attempt to create an Event Filter and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. eth_newFilter), then watchEvent will fall back to using getLogs instead.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const unwatch = client.watchEvent({
      onLogs: (logs) => console.log(logs),
      })
    • watchPendingTransactions: (
          args: WatchPendingTransactionsParameters<Transport>,
      ) => WatchPendingTransactionsReturnType

      Watches and returns pending transaction hashes.

      This Action will batch up all the pending transactions found within the pollingInterval, and invoke them via onTransactions.

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

      const client = createPublicClient({
      chain: mainnet,
      transport: http(),
      })
      const unwatch = await client.watchPendingTransactions({
      onTransactions: (hashes) => console.log(hashes),
      })
    wallet:
        | {
            account: Account;
            addChain: (args: AddChainParameters) => Promise<void>;
            batch?: {
                multicall?:
                    | boolean
                    | { batchSize?: number; deployless?: boolean; wait?: number };
            };
            cacheTime: number;
            ccipRead?: | false
            | {
                request?: (
                    parameters: CcipRequestParameters,
                ) => Promise<`0x${string}`>;
            };
            chain: Chain;
            dataSuffix?: DataSuffix;
            deployContract: <
                const abi extends Abi
                | readonly unknown[],
                chainOverride extends Chain | undefined,
            >(
                args: DeployContractParameters<abi, Chain, Account, chainOverride>,
            ) => Promise<`0x${string}`>;
            experimental_blockTag?: BlockTag;
            extend: <
                const client extends
                    {
                        account?: undefined;
                        batch?: undefined;
                        cacheTime?: undefined;
                        ccipRead?: undefined;
                        chain?: undefined;
                        dataSuffix?: undefined;
                        experimental_blockTag?: undefined;
                        key?: undefined;
                        name?: undefined;
                        pollingInterval?: undefined;
                        request?: undefined;
                        tokens?: undefined;
                        transport?: undefined;
                        type?: undefined;
                        uid?: undefined;
                        [key: string]: unknown;
                    } & ExactPartial<
                        ExtendableProtectedActions<
                            Transport,
                            Chain,
                            Account,
                            Tokens
                            | undefined,
                        >,
                    >,
            >(
                fn: (
                    client: Client<
                        Transport,
                        Chain,
                        Account,
                        WalletRpcSchema,
                        WalletActions<Chain, Account, Tokens | undefined>,
                        Tokens | undefined,
                    >,
                ) => client,
            ) => Client<
                Transport,
                Chain,
                Account,
                WalletRpcSchema,
                { [K in string
                | number
                | symbol]: client[K] } & WalletActions<
                    Chain,
                    Account,
                    Tokens
                    | undefined,
                >,
                Tokens | undefined,
            >;
            fillTransaction: <
                chainOverride extends Chain
                | undefined = undefined,
                accountOverride extends `0x${string}` | Account | undefined = undefined,
            >(
                args: FillTransactionParameters<
                    Chain,
                    Account,
                    chainOverride,
                    accountOverride,
                >,
            ) => Promise<FillTransactionReturnType<Chain, chainOverride>>;
            getAddresses: () => Promise<GetAddressesReturnType>;
            getCallsStatus: (
                parameters: GetCallsStatusParameters,
            ) => Promise<
                {
                    atomic: boolean;
                    capabilities?: { [key: string]: any }
                    | { [key: string]: any };
                    chainId: number;
                    id: string;
                    receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                    status: "pending" | "success" | "failure" | undefined;
                    statusCode: number;
                    version: string;
                },
            >;
            getCapabilities: <chainId extends number | undefined>(
                parameters?: GetCapabilitiesParameters<chainId>,
            ) => Promise<
                {
                    [K in string
                    | number
                    | symbol]: (
                        chainId extends number
                            ? {
                                atomic?: { status: (...)
                                | (...)
                                | (...) };
                                paymasterService?: { supported: boolean };
                                unstable_addSubAccount?: { keyTypes: (...)[]; supported: boolean };
                                [key: string]: any;
                            }
                            : ChainIdToCapabilities<
                                Capabilities<
                                    {
                                        atomic?: (...)
                                        | (...);
                                        paymasterService?: (...) | (...);
                                        unstable_addSubAccount?: (...) | (...);
                                        [key: string]: any;
                                    },
                                >,
                                number,
                            >
                    )[K]
                },
            >;
            getChainId: () => Promise<number>;
            getPermissions: () => Promise<GetPermissionsReturnType>;
            key: string;
            name: string;
            pollingInterval: number;
            prepareAuthorization: (
                parameters: PrepareAuthorizationParameters<Account>,
            ) => Promise<PrepareAuthorizationReturnType>;
            prepareTransactionRequest: <
                const request extends
                    (
                        | Omit<
                            {
                                accessList?: undefined;
                                authorizationList?: undefined;
                                blobs?: undefined;
                                blobVersionedHashes?: undefined;
                                data?: `0x${string}`;
                                from?: `0x${string}`;
                                gas?: bigint;
                                gasPrice?: bigint;
                                kzg?: undefined;
                                maxFeePerBlobGas?: undefined;
                                maxFeePerGas?: undefined;
                                maxPriorityFeePerGas?: undefined;
                                nonce?: number;
                                sidecars?: undefined;
                                to?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: undefined;
                                maxFeePerBlobGas?: bigint;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                                to: `0x${string}` | null;
                                type?: "eip4844";
                                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${(...)}`>[];
                                to: `0x${string}` | null;
                                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?: `0x${string}` | null;
                                type?: "eip7702";
                                value?: bigint;
                            },
                            "from",
                        >
                    ) & { kzg?: Kzg } & {
                        nonceManager?: NonceManager;
                        parameters?: readonly PrepareTransactionRequestParameterType[];
                    },
                chainOverride extends Chain
                | undefined = undefined,
                accountOverride extends `0x${string}` | Account | undefined = undefined,
            >(
                args: PrepareTransactionRequestParameters<
                    Chain,
                    Account,
                    chainOverride,
                    accountOverride,
                    request,
                >,
            ) => Promise<
                {
                    [K in string
                    | number
                    | symbol]: (
                        UnionRequiredBy<
                            Extract<(...) & (...) & (...), (...) extends (...) ? (...) : (...)> & {
                                chainId?: (...) | (...);
                            },
                            ParameterTypeToParameters<
                                (...)[(...)] extends readonly (...)[]
                                    ? (...)[(...)]
                                    : (...) | (...) | (...) | (...) | (...) | (...),
                            >,
                        > & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">) & {
                            _capabilities?: { [key: string]: any };
                        }
                    )[K]
                },
            >;
            request: EIP1193RequestFn<WalletRpcSchema>;
            requestAddresses: () => Promise<RequestAddressesReturnType>;
            requestPermissions: (
                args: {
                    eth_accounts: Record<string, any>;
                    [key: string]: Record<string, any>;
                },
            ) => Promise<RequestPermissionsReturnType>;
            sendCalls: <
                const calls extends readonly unknown[],
                chainOverride extends Chain | undefined = undefined,
            >(
                parameters: SendCallsParameters<Chain, Account, chainOverride, calls>,
            ) => Promise<{ capabilities?: { [key: string]: any }; id: string }>;
            sendCallsSync: <
                const calls extends readonly unknown[],
                chainOverride extends Chain | undefined = undefined,
            >(
                parameters: SendCallsSyncParameters<
                    Chain,
                    Account,
                    chainOverride,
                    calls,
                >,
            ) => Promise<
                {
                    atomic: boolean;
                    capabilities?: { [key: string]: any }
                    | { [key: string]: any };
                    chainId: number;
                    id: string;
                    receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                    status: "pending" | "success" | "failure" | undefined;
                    statusCode: number;
                    version: string;
                },
            >;
            sendRawTransaction: (
                args: SendRawTransactionParameters,
            ) => Promise<`0x${string}`>;
            sendRawTransactionSync: (
                args: SendRawTransactionSyncParameters,
            ) => Promise<TransactionReceipt>;
            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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: undefined;
                                maxFeePerBlobGas?: bigint;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                                to: `0x${string}` | null;
                                type?: "eip4844";
                                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${(...)}`>[];
                                to: `0x${string}` | null;
                                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?: `0x${string}` | null;
                                type?: "eip7702";
                                value?: bigint;
                            },
                            "from",
                        >
                    ) & { kzg?: Kzg },
                chainOverride extends Chain
                | undefined = undefined,
            >(
                args: SendTransactionParameters<
                    Chain,
                    Account,
                    chainOverride,
                    request,
                >,
            ) => Promise<`0x${string}`>;
            sendTransactionSync: <
                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: undefined;
                                maxFeePerBlobGas?: bigint;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                                to: `0x${string}` | null;
                                type?: "eip4844";
                                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${(...)}`>[];
                                to: `0x${string}` | null;
                                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?: `0x${string}` | null;
                                type?: "eip7702";
                                value?: bigint;
                            },
                            "from",
                        >
                    ) & { kzg?: Kzg },
                chainOverride extends Chain
                | undefined = undefined,
            >(
                args: SendTransactionSyncParameters<
                    Chain,
                    Account,
                    chainOverride,
                    request,
                >,
            ) => Promise<TransactionReceipt>;
            showCallsStatus: (parameters: ShowCallsStatusParameters) => Promise<void>;
            signAuthorization: (
                parameters: SignAuthorizationParameters<Account>,
            ) => Promise<SignAuthorizationReturnType>;
            signMessage: (
                args: SignMessageParameters<Account>,
            ) => Promise<`0x${string}`>;
            signTransaction: <
                chainOverride extends Chain
                | undefined,
                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: `0x${string}`
                                | null;
                                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?: undefined;
                                maxFeePerBlobGas?: bigint;
                                maxFeePerGas?: bigint;
                                maxPriorityFeePerGas?: bigint;
                                nonce?: number;
                                sidecars?: readonly BlobSidecar<`0x${string}`>[];
                                to: `0x${string}` | null;
                                type?: "eip4844";
                                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: `0x${string}` | null;
                                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?: `0x${string}` | null;
                                type?: "eip7702";
                                value?: bigint;
                            },
                            "from",
                        > = UnionOmit<
                    ExtractChainFormatterParameters<
                        DeriveChain<Chain, chainOverride>,
                        "transactionRequest",
                        TransactionRequest,
                    >,
                    "from",
                >,
            >(
                args: SignTransactionParameters<
                    Chain,
                    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 string
                            | undefined
                                ? 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)
                                | (
                                    (...)[(...)] extends (...) | (...)
                                        ? Extract<(...), (...)>
                                        : 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)
                                | (
                                    (...)[(...)] extends (...) | (...)
                                        ? Extract<(...), (...)>
                                        : 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)
                                | (
                                    (...)[(...)] extends (...) | (...)
                                        ? Extract<(...), (...)>
                                        : 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)
                                | (
                                    (...)[(...)] extends (...) | (...)
                                        ? Extract<(...), (...)>
                                        : 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)
                                | (
                                    (...)[(...)] extends (...) | (...)
                                        ? Extract<(...), (...)>
                                        : 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: `uint8[${string}]`]: undefined;
                        [key: `uint256[${string}]`]: undefined;
                        [key: `address[${string}]`]: undefined;
                        [key: `bool[${string}]`]: undefined;
                        [key: `bytes32[${string}]`]: undefined;
                        [key: `uint80[${string}]`]: undefined;
                        [key: `int256[${string}]`]: undefined;
                        [key: `uint24[${string}]`]: undefined;
                        [key: `uint160[${string}]`]: undefined;
                        [key: `uint32[${string}]`]: undefined;
                        [key: `bytes[${string}]`]: undefined;
                        [key: `uint128[${string}]`]: undefined;
                        [key: `int24[${string}]`]: undefined;
                        [key: `uint16[${string}]`]: undefined;
                        [key: `bytes1[${string}]`]: undefined;
                        [key: `bytes2[${string}]`]: undefined;
                        [key: `bytes3[${string}]`]: undefined;
                        [key: `bytes11[${string}]`]: undefined;
                        [key: `bytes7[${string}]`]: undefined;
                        [key: `bytes23[${string}]`]: undefined;
                        [key: `bytes5[${string}]`]: undefined;
                        [key: `bytes4[${string}]`]: undefined;
                        [key: `bytes8[${string}]`]: undefined;
                        [key: `bytes13[${string}]`]: undefined;
                        [key: `bytes6[${string}]`]: undefined;
                        [key: `bytes18[${string}]`]: undefined;
                        [key: `bytes9[${string}]`]: undefined;
                        [key: `bytes10[${string}]`]: undefined;
                        [key: `bytes12[${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: `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: `uint[${string}]`]: undefined;
                        [key: `uint40[${string}]`]: undefined;
                        [key: `uint48[${string}]`]: undefined;
                        [key: `uint56[${string}]`]: undefined;
                        [key: `uint64[${string}]`]: undefined;
                        [key: `uint72[${string}]`]: undefined;
                        [key: `uint88[${string}]`]: undefined;
                        [key: `uint96[${string}]`]: undefined;
                        [key: `uint104[${string}]`]: undefined;
                        [key: `uint112[${string}]`]: undefined;
                        [key: `uint120[${string}]`]: undefined;
                        [key: `uint136[${string}]`]: undefined;
                        [key: `uint144[${string}]`]: undefined;
                        [key: `uint152[${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, Account>,
            ) => Promise<`0x${string}`>;
            switchChain: (args: SwitchChainParameters) => Promise<void>;
            token: {
                approve: (
                    parameters: Parameters<Chain, Account, Tokens | undefined>,
                ) => Promise<`0x${string}`> & {
                    call: (
                        args: Args<Chain, Tokens | undefined>,
                    ) => {
                        abi: [
                            {
                                inputs: readonly [(...), (...)];
                                name: "approve";
                                outputs: readonly [(...)];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                        ];
                        functionName: "approve";
                    } & { args: readonly [`0x${string}`, bigint] } & {
                        address: `0x${string}`;
                    } & { data: `0x${string}`; to: `0x${string}` };
                    estimateGas: (
                        parameters: Parameters<Chain, Account, Tokens | undefined>,
                    ) => Promise<bigint>;
                    extractEvent: (
                        logs: Log[],
                    ) => Log<
                        bigint,
                        number,
                        false,
                        undefined,
                        true,
                        readonly [
                            {
                                inputs: readonly [
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                ];
                                name: "Approval";
                                type: "event";
                            },
                            {
                                inputs: readonly [
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                ];
                                name: "Transfer";
                                type: "event";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "allowance";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "approve";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                            {
                                inputs: readonly [{ name: ...; type: ... }];
                                name: "balanceOf";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "decimals";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "name";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "symbol";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "totalSupply";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "transfer";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "transferFrom";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                        ],
                        "Approval",
                    >;
                    simulate: (
                        parameters: Parameters<Chain, Account, Tokens | undefined>,
                    ) => Promise<
                        SimulateContractReturnType<
                            readonly [
                                {
                                    inputs: readonly [(...), (...), (...)];
                                    name: "Approval";
                                    type: "event";
                                },
                                {
                                    inputs: readonly [(...), (...), (...)];
                                    name: "Transfer";
                                    type: "event";
                                },
                                {
                                    inputs: readonly [(...), (...)];
                                    name: "allowance";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...), (...)];
                                    name: "approve";
                                    outputs: readonly [(...)];
                                    stateMutability: "nonpayable";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...)];
                                    name: "balanceOf";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "decimals";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "name";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "symbol";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "totalSupply";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...), (...)];
                                    name: "transfer";
                                    outputs: readonly [(...)];
                                    stateMutability: "nonpayable";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...), (...), (...)];
                                    name: "transferFrom";
                                    outputs: readonly [(...)];
                                    stateMutability: "nonpayable";
                                    type: "function";
                                },
                            ],
                            "approve",
                        >,
                    >;
                };
                approveSync: (
                    parameters: Parameters<Chain, Account, Tokens | undefined>,
                ) => Promise<
                    {
                        decimals?: number;
                        formatted?: string;
                        owner: `0x${string}`;
                        receipt: TransactionReceipt;
                        spender: `0x${string}`;
                        value: bigint;
                    },
                >;
                transfer: (
                    parameters: Parameters<Chain, Account, Tokens | undefined>,
                ) => Promise<`0x${string}`> & {
                    call: (
                        args: Args<Chain, Tokens | undefined>,
                    ) => {
                        abi: [
                            | {
                                inputs: ...;
                                name: ...;
                                outputs: ...;
                                stateMutability: ...;
                                type: ...;
                            }
                            | {
                                inputs: ...;
                                name: ...;
                                outputs: ...;
                                stateMutability: ...;
                                type: ...;
                            },
                        ];
                        functionName: "transfer"
                        | "transferFrom";
                    } & {
                        args: | readonly [`0x${(...)}`, bigint]
                        | readonly [`0x${(...)}`, `0x${(...)}`, bigint];
                    } & { address: `0x${string}` } & {
                        data: `0x${string}`;
                        to: `0x${string}`;
                    };
                    estimateGas: (
                        parameters: Parameters<Chain, Account, Tokens | undefined>,
                    ) => Promise<bigint>;
                    extractEvent: (
                        logs: Log[],
                    ) => Log<
                        bigint,
                        number,
                        false,
                        undefined,
                        true,
                        readonly [
                            {
                                inputs: readonly [
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                ];
                                name: "Approval";
                                type: "event";
                            },
                            {
                                inputs: readonly [
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                    { indexed: ...; name: ...; type: ... },
                                ];
                                name: "Transfer";
                                type: "event";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "allowance";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "approve";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                            {
                                inputs: readonly [{ name: ...; type: ... }];
                                name: "balanceOf";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "decimals";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "name";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "symbol";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "totalSupply";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "transfer";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                            {
                                inputs: readonly [
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                    { name: ...; type: ... },
                                ];
                                name: "transferFrom";
                                outputs: readonly [{ type: ... }];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                        ],
                        "Transfer",
                    >;
                    simulate: (
                        parameters: Parameters<Chain, Account, Tokens | undefined>,
                    ) => Promise<
                        SimulateContractReturnType<
                            readonly [
                                {
                                    inputs: readonly [(...), (...), (...)];
                                    name: "Approval";
                                    type: "event";
                                },
                                {
                                    inputs: readonly [(...), (...), (...)];
                                    name: "Transfer";
                                    type: "event";
                                },
                                {
                                    inputs: readonly [(...), (...)];
                                    name: "allowance";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...), (...)];
                                    name: "approve";
                                    outputs: readonly [(...)];
                                    stateMutability: "nonpayable";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...)];
                                    name: "balanceOf";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "decimals";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "name";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "symbol";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [];
                                    name: "totalSupply";
                                    outputs: readonly [(...)];
                                    stateMutability: "view";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...), (...)];
                                    name: "transfer";
                                    outputs: readonly [(...)];
                                    stateMutability: "nonpayable";
                                    type: "function";
                                },
                                {
                                    inputs: readonly [(...), (...), (...)];
                                    name: "transferFrom";
                                    outputs: readonly [(...)];
                                    stateMutability: "nonpayable";
                                    type: "function";
                                },
                            ],
                            "transfer"
                            | "transferFrom",
                        >,
                    >;
                };
                transferSync: (
                    parameters: Parameters<Chain, Account, Tokens | undefined>,
                ) => Promise<
                    {
                        decimals?: number;
                        formatted?: string;
                        from: `0x${string}`;
                        receipt: TransactionReceipt;
                        to: `0x${string}`;
                        value: bigint;
                    },
                >;
            };
            tokens: Tokens
            | undefined;
            transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
            type: string;
            uid: string;
            waitForCallsStatus: (
                parameters: WaitForCallsStatusParameters,
            ) => Promise<
                {
                    atomic: boolean;
                    capabilities?: { [key: string]: any }
                    | { [key: string]: any };
                    chainId: number;
                    id: string;
                    receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                    status: "pending" | "success" | "failure" | undefined;
                    statusCode: number;
                    version: string;
                },
            >;
            watchAsset: (args: WatchAssetParams) => Promise<boolean>;
            writeContract: <
                const abi extends Abi
                | readonly unknown[],
                functionName extends string,
                args extends unknown,
                chainOverride extends Chain | undefined = undefined,
            >(
                args: WriteContractParameters<
                    abi,
                    functionName,
                    args,
                    Chain,
                    Account,
                    chainOverride,
                >,
            ) => Promise<`0x${string}`>;
            writeContractSync: <
                const abi extends Abi
                | readonly unknown[],
                functionName extends string,
                args extends unknown,
                chainOverride extends Chain | undefined = undefined,
            >(
                args: WriteContractSyncParameters<
                    abi,
                    functionName,
                    args,
                    Chain,
                    Account,
                    chainOverride,
                >,
            ) => Promise<TransactionReceipt>;
        }
        | null

    viem wallet client for writes, or null when no account was provided.

    Type Declaration

    • {
          account: Account;
          addChain: (args: AddChainParameters) => Promise<void>;
          batch?: {
              multicall?:
                  | boolean
                  | { batchSize?: number; deployless?: boolean; wait?: number };
          };
          cacheTime: number;
          ccipRead?: | false
          | {
              request?: (parameters: CcipRequestParameters) => Promise<`0x${string}`>;
          };
          chain: Chain;
          dataSuffix?: DataSuffix;
          deployContract: <
              const abi extends Abi
              | readonly unknown[],
              chainOverride extends Chain | undefined,
          >(
              args: DeployContractParameters<abi, Chain, Account, chainOverride>,
          ) => Promise<`0x${string}`>;
          experimental_blockTag?: BlockTag;
          extend: <
              const client extends
                  {
                      account?: undefined;
                      batch?: undefined;
                      cacheTime?: undefined;
                      ccipRead?: undefined;
                      chain?: undefined;
                      dataSuffix?: undefined;
                      experimental_blockTag?: undefined;
                      key?: undefined;
                      name?: undefined;
                      pollingInterval?: undefined;
                      request?: undefined;
                      tokens?: undefined;
                      transport?: undefined;
                      type?: undefined;
                      uid?: undefined;
                      [key: string]: unknown;
                  } & ExactPartial<
                      ExtendableProtectedActions<
                          Transport,
                          Chain,
                          Account,
                          Tokens
                          | undefined,
                      >,
                  >,
          >(
              fn: (
                  client: Client<
                      Transport,
                      Chain,
                      Account,
                      WalletRpcSchema,
                      WalletActions<Chain, Account, Tokens | undefined>,
                      Tokens | undefined,
                  >,
              ) => client,
          ) => Client<
              Transport,
              Chain,
              Account,
              WalletRpcSchema,
              { [K in string
              | number
              | symbol]: client[K] } & WalletActions<Chain, Account, Tokens | undefined>,
              Tokens | undefined,
          >;
          fillTransaction: <
              chainOverride extends Chain
              | undefined = undefined,
              accountOverride extends `0x${string}` | Account | undefined = undefined,
          >(
              args: FillTransactionParameters<
                  Chain,
                  Account,
                  chainOverride,
                  accountOverride,
              >,
          ) => Promise<FillTransactionReturnType<Chain, chainOverride>>;
          getAddresses: () => Promise<GetAddressesReturnType>;
          getCallsStatus: (
              parameters: GetCallsStatusParameters,
          ) => Promise<
              {
                  atomic: boolean;
                  capabilities?: { [key: string]: any }
                  | { [key: string]: any };
                  chainId: number;
                  id: string;
                  receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                  status: "pending" | "success" | "failure" | undefined;
                  statusCode: number;
                  version: string;
              },
          >;
          getCapabilities: <chainId extends number | undefined>(
              parameters?: GetCapabilitiesParameters<chainId>,
          ) => Promise<
              {
                  [K in string
                  | number
                  | symbol]: (
                      chainId extends number
                          ? {
                              atomic?: { status: (...)
                              | (...)
                              | (...) };
                              paymasterService?: { supported: boolean };
                              unstable_addSubAccount?: { keyTypes: (...)[]; supported: boolean };
                              [key: string]: any;
                          }
                          : ChainIdToCapabilities<
                              Capabilities<
                                  {
                                      atomic?: (...)
                                      | (...);
                                      paymasterService?: (...) | (...);
                                      unstable_addSubAccount?: (...) | (...);
                                      [key: string]: any;
                                  },
                              >,
                              number,
                          >
                  )[K]
              },
          >;
          getChainId: () => Promise<number>;
          getPermissions: () => Promise<GetPermissionsReturnType>;
          key: string;
          name: string;
          pollingInterval: number;
          prepareAuthorization: (
              parameters: PrepareAuthorizationParameters<Account>,
          ) => Promise<PrepareAuthorizationReturnType>;
          prepareTransactionRequest: <
              const request extends
                  (
                      | Omit<
                          {
                              accessList?: undefined;
                              authorizationList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              gasPrice?: bigint;
                              kzg?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              nonce?: number;
                              sidecars?: undefined;
                              to?: `0x${string}`
                              | null;
                              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?: `0x${string}`
                              | null;
                              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?: `0x${string}`
                              | null;
                              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?: undefined;
                              maxFeePerBlobGas?: bigint;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                              to: `0x${string}` | null;
                              type?: "eip4844";
                              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${(...)}`>[];
                              to: `0x${string}` | null;
                              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?: `0x${string}` | null;
                              type?: "eip7702";
                              value?: bigint;
                          },
                          "from",
                      >
                  ) & { kzg?: Kzg } & {
                      nonceManager?: NonceManager;
                      parameters?: readonly PrepareTransactionRequestParameterType[];
                  },
              chainOverride extends Chain
              | undefined = undefined,
              accountOverride extends `0x${string}` | Account | undefined = undefined,
          >(
              args: PrepareTransactionRequestParameters<
                  Chain,
                  Account,
                  chainOverride,
                  accountOverride,
                  request,
              >,
          ) => Promise<
              {
                  [K in string
                  | number
                  | symbol]: (
                      UnionRequiredBy<
                          Extract<(...) & (...) & (...), (...) extends (...) ? (...) : (...)> & {
                              chainId?: (...) | (...);
                          },
                          ParameterTypeToParameters<
                              (...)[(...)] extends readonly (...)[]
                                  ? (...)[(...)]
                                  : (...) | (...) | (...) | (...) | (...) | (...),
                          >,
                      > & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">) & {
                          _capabilities?: { [key: string]: any };
                      }
                  )[K]
              },
          >;
          request: EIP1193RequestFn<WalletRpcSchema>;
          requestAddresses: () => Promise<RequestAddressesReturnType>;
          requestPermissions: (
              args: {
                  eth_accounts: Record<string, any>;
                  [key: string]: Record<string, any>;
              },
          ) => Promise<RequestPermissionsReturnType>;
          sendCalls: <
              const calls extends readonly unknown[],
              chainOverride extends Chain | undefined = undefined,
          >(
              parameters: SendCallsParameters<Chain, Account, chainOverride, calls>,
          ) => Promise<{ capabilities?: { [key: string]: any }; id: string }>;
          sendCallsSync: <
              const calls extends readonly unknown[],
              chainOverride extends Chain | undefined = undefined,
          >(
              parameters: SendCallsSyncParameters<
                  Chain,
                  Account,
                  chainOverride,
                  calls,
              >,
          ) => Promise<
              {
                  atomic: boolean;
                  capabilities?: { [key: string]: any }
                  | { [key: string]: any };
                  chainId: number;
                  id: string;
                  receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                  status: "pending" | "success" | "failure" | undefined;
                  statusCode: number;
                  version: string;
              },
          >;
          sendRawTransaction: (
              args: SendRawTransactionParameters,
          ) => Promise<`0x${string}`>;
          sendRawTransactionSync: (
              args: SendRawTransactionSyncParameters,
          ) => Promise<TransactionReceipt>;
          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?: `0x${string}`
                              | null;
                              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?: `0x${string}`
                              | null;
                              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?: `0x${string}`
                              | null;
                              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?: undefined;
                              maxFeePerBlobGas?: bigint;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                              to: `0x${string}` | null;
                              type?: "eip4844";
                              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${(...)}`>[];
                              to: `0x${string}` | null;
                              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?: `0x${string}` | null;
                              type?: "eip7702";
                              value?: bigint;
                          },
                          "from",
                      >
                  ) & { kzg?: Kzg },
              chainOverride extends Chain
              | undefined = undefined,
          >(
              args: SendTransactionParameters<Chain, Account, chainOverride, request>,
          ) => Promise<`0x${string}`>;
          sendTransactionSync: <
              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?: `0x${string}`
                              | null;
                              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?: `0x${string}`
                              | null;
                              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?: `0x${string}`
                              | null;
                              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?: undefined;
                              maxFeePerBlobGas?: bigint;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                              to: `0x${string}` | null;
                              type?: "eip4844";
                              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${(...)}`>[];
                              to: `0x${string}` | null;
                              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?: `0x${string}` | null;
                              type?: "eip7702";
                              value?: bigint;
                          },
                          "from",
                      >
                  ) & { kzg?: Kzg },
              chainOverride extends Chain
              | undefined = undefined,
          >(
              args: SendTransactionSyncParameters<
                  Chain,
                  Account,
                  chainOverride,
                  request,
              >,
          ) => Promise<TransactionReceipt>;
          showCallsStatus: (parameters: ShowCallsStatusParameters) => Promise<void>;
          signAuthorization: (
              parameters: SignAuthorizationParameters<Account>,
          ) => Promise<SignAuthorizationReturnType>;
          signMessage: (
              args: SignMessageParameters<Account>,
          ) => Promise<`0x${string}`>;
          signTransaction: <
              chainOverride extends Chain
              | undefined,
              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?: `0x${string}`
                              | null;
                              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?: `0x${string}`
                              | null;
                              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?: `0x${string}`
                              | null;
                              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?: undefined;
                              maxFeePerBlobGas?: bigint;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              nonce?: number;
                              sidecars?: readonly BlobSidecar<`0x${string}`>[];
                              to: `0x${string}` | null;
                              type?: "eip4844";
                              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: `0x${string}` | null;
                              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?: `0x${string}` | null;
                              type?: "eip7702";
                              value?: bigint;
                          },
                          "from",
                      > = UnionOmit<
                  ExtractChainFormatterParameters<
                      DeriveChain<Chain, chainOverride>,
                      "transactionRequest",
                      TransactionRequest,
                  >,
                  "from",
              >,
          >(
              args: SignTransactionParameters<Chain, 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 string
                          | undefined
                              ? 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)
                              | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : 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)
                              | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : 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)
                              | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : 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)
                              | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : 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)
                              | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : 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: `uint8[${string}]`]: undefined;
                      [key: `uint256[${string}]`]: undefined;
                      [key: `address[${string}]`]: undefined;
                      [key: `bool[${string}]`]: undefined;
                      [key: `bytes32[${string}]`]: undefined;
                      [key: `uint80[${string}]`]: undefined;
                      [key: `int256[${string}]`]: undefined;
                      [key: `uint24[${string}]`]: undefined;
                      [key: `uint160[${string}]`]: undefined;
                      [key: `uint32[${string}]`]: undefined;
                      [key: `bytes[${string}]`]: undefined;
                      [key: `uint128[${string}]`]: undefined;
                      [key: `int24[${string}]`]: undefined;
                      [key: `uint16[${string}]`]: undefined;
                      [key: `bytes1[${string}]`]: undefined;
                      [key: `bytes2[${string}]`]: undefined;
                      [key: `bytes3[${string}]`]: undefined;
                      [key: `bytes11[${string}]`]: undefined;
                      [key: `bytes7[${string}]`]: undefined;
                      [key: `bytes23[${string}]`]: undefined;
                      [key: `bytes5[${string}]`]: undefined;
                      [key: `bytes4[${string}]`]: undefined;
                      [key: `bytes8[${string}]`]: undefined;
                      [key: `bytes13[${string}]`]: undefined;
                      [key: `bytes6[${string}]`]: undefined;
                      [key: `bytes18[${string}]`]: undefined;
                      [key: `bytes9[${string}]`]: undefined;
                      [key: `bytes10[${string}]`]: undefined;
                      [key: `bytes12[${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: `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: `uint[${string}]`]: undefined;
                      [key: `uint40[${string}]`]: undefined;
                      [key: `uint48[${string}]`]: undefined;
                      [key: `uint56[${string}]`]: undefined;
                      [key: `uint64[${string}]`]: undefined;
                      [key: `uint72[${string}]`]: undefined;
                      [key: `uint88[${string}]`]: undefined;
                      [key: `uint96[${string}]`]: undefined;
                      [key: `uint104[${string}]`]: undefined;
                      [key: `uint112[${string}]`]: undefined;
                      [key: `uint120[${string}]`]: undefined;
                      [key: `uint136[${string}]`]: undefined;
                      [key: `uint144[${string}]`]: undefined;
                      [key: `uint152[${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, Account>,
          ) => Promise<`0x${string}`>;
          switchChain: (args: SwitchChainParameters) => Promise<void>;
          token: {
              approve: (
                  parameters: Parameters<Chain, Account, Tokens | undefined>,
              ) => Promise<`0x${string}`> & {
                  call: (
                      args: Args<Chain, Tokens | undefined>,
                  ) => {
                      abi: [
                          {
                              inputs: readonly [(...), (...)];
                              name: "approve";
                              outputs: readonly [(...)];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ];
                      functionName: "approve";
                  } & { args: readonly [`0x${string}`, bigint] } & {
                      address: `0x${string}`;
                  } & { data: `0x${string}`; to: `0x${string}` };
                  estimateGas: (
                      parameters: Parameters<Chain, Account, Tokens | undefined>,
                  ) => Promise<bigint>;
                  extractEvent: (
                      logs: Log[],
                  ) => Log<
                      bigint,
                      number,
                      false,
                      undefined,
                      true,
                      readonly [
                          {
                              inputs: readonly [
                                  { indexed: ...; name: ...; type: ... },
                                  { indexed: ...; name: ...; type: ... },
                                  { indexed: ...; name: ...; type: ... },
                              ];
                              name: "Approval";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { indexed: ...; name: ...; type: ... },
                                  { indexed: ...; name: ...; type: ... },
                                  { indexed: ...; name: ...; type: ... },
                              ];
                              name: "Transfer";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { name: ...; type: ... },
                                  { name: ...; type: ... },
                              ];
                              name: "allowance";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: ...; type: ... },
                                  { name: ...; type: ... },
                              ];
                              name: "approve";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [{ name: ...; type: ... }];
                              name: "balanceOf";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "decimals";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "name";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "symbol";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "totalSupply";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: ...; type: ... },
                                  { name: ...; type: ... },
                              ];
                              name: "transfer";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: ...; type: ... },
                                  { name: ...; type: ... },
                                  { name: ...; type: ... },
                              ];
                              name: "transferFrom";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ],
                      "Approval",
                  >;
                  simulate: (
                      parameters: Parameters<Chain, Account, Tokens | undefined>,
                  ) => Promise<
                      SimulateContractReturnType<
                          readonly [
                              {
                                  inputs: readonly [(...), (...), (...)];
                                  name: "Approval";
                                  type: "event";
                              },
                              {
                                  inputs: readonly [(...), (...), (...)];
                                  name: "Transfer";
                                  type: "event";
                              },
                              {
                                  inputs: readonly [(...), (...)];
                                  name: "allowance";
                                  outputs: readonly [(...)];
                                  stateMutability: "view";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [(...), (...)];
                                  name: "approve";
                                  outputs: readonly [(...)];
                                  stateMutability: "nonpayable";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [(...)];
                                  name: "balanceOf";
                                  outputs: readonly [(...)];
                                  stateMutability: "view";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [];
                                  name: "decimals";
                                  outputs: readonly [(...)];
                                  stateMutability: "view";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [];
                                  name: "name";
                                  outputs: readonly [(...)];
                                  stateMutability: "view";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [];
                                  name: "symbol";
                                  outputs: readonly [(...)];
                                  stateMutability: "view";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [];
                                  name: "totalSupply";
                                  outputs: readonly [(...)];
                                  stateMutability: "view";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [(...), (...)];
                                  name: "transfer";
                                  outputs: readonly [(...)];
                                  stateMutability: "nonpayable";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [(...), (...), (...)];
                                  name: "transferFrom";
                                  outputs: readonly [(...)];
                                  stateMutability: "nonpayable";
                                  type: "function";
                              },
                          ],
                          "approve",
                      >,
                  >;
              };
              approveSync: (
                  parameters: Parameters<Chain, Account, Tokens | undefined>,
              ) => Promise<
                  {
                      decimals?: number;
                      formatted?: string;
                      owner: `0x${string}`;
                      receipt: TransactionReceipt;
                      spender: `0x${string}`;
                      value: bigint;
                  },
              >;
              transfer: (
                  parameters: Parameters<Chain, Account, Tokens | undefined>,
              ) => Promise<`0x${string}`> & {
                  call: (
                      args: Args<Chain, Tokens | undefined>,
                  ) => {
                      abi: [
                          | {
                              inputs: ...;
                              name: ...;
                              outputs: ...;
                              stateMutability: ...;
                              type: ...;
                          }
                          | {
                              inputs: ...;
                              name: ...;
                              outputs: ...;
                              stateMutability: ...;
                              type: ...;
                          },
                      ];
                      functionName: "transfer"
                      | "transferFrom";
                  } & {
                      args: | readonly [`0x${(...)}`, bigint]
                      | readonly [`0x${(...)}`, `0x${(...)}`, bigint];
                  } & { address: `0x${string}` } & {
                      data: `0x${string}`;
                      to: `0x${string}`;
                  };
                  estimateGas: (
                      parameters: Parameters<Chain, Account, Tokens | undefined>,
                  ) => Promise<bigint>;
                  extractEvent: (
                      logs: Log[],
                  ) => Log<
                      bigint,
                      number,
                      false,
                      undefined,
                      true,
                      readonly [
                          {
                              inputs: readonly [
                                  { indexed: ...; name: ...; type: ... },
                                  { indexed: ...; name: ...; type: ... },
                                  { indexed: ...; name: ...; type: ... },
                              ];
                              name: "Approval";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { indexed: ...; name: ...; type: ... },
                                  { indexed: ...; name: ...; type: ... },
                                  { indexed: ...; name: ...; type: ... },
                              ];
                              name: "Transfer";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { name: ...; type: ... },
                                  { name: ...; type: ... },
                              ];
                              name: "allowance";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: ...; type: ... },
                                  { name: ...; type: ... },
                              ];
                              name: "approve";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [{ name: ...; type: ... }];
                              name: "balanceOf";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "decimals";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "name";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "symbol";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "totalSupply";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: ...; type: ... },
                                  { name: ...; type: ... },
                              ];
                              name: "transfer";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: ...; type: ... },
                                  { name: ...; type: ... },
                                  { name: ...; type: ... },
                              ];
                              name: "transferFrom";
                              outputs: readonly [{ type: ... }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ],
                      "Transfer",
                  >;
                  simulate: (
                      parameters: Parameters<Chain, Account, Tokens | undefined>,
                  ) => Promise<
                      SimulateContractReturnType<
                          readonly [
                              {
                                  inputs: readonly [(...), (...), (...)];
                                  name: "Approval";
                                  type: "event";
                              },
                              {
                                  inputs: readonly [(...), (...), (...)];
                                  name: "Transfer";
                                  type: "event";
                              },
                              {
                                  inputs: readonly [(...), (...)];
                                  name: "allowance";
                                  outputs: readonly [(...)];
                                  stateMutability: "view";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [(...), (...)];
                                  name: "approve";
                                  outputs: readonly [(...)];
                                  stateMutability: "nonpayable";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [(...)];
                                  name: "balanceOf";
                                  outputs: readonly [(...)];
                                  stateMutability: "view";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [];
                                  name: "decimals";
                                  outputs: readonly [(...)];
                                  stateMutability: "view";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [];
                                  name: "name";
                                  outputs: readonly [(...)];
                                  stateMutability: "view";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [];
                                  name: "symbol";
                                  outputs: readonly [(...)];
                                  stateMutability: "view";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [];
                                  name: "totalSupply";
                                  outputs: readonly [(...)];
                                  stateMutability: "view";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [(...), (...)];
                                  name: "transfer";
                                  outputs: readonly [(...)];
                                  stateMutability: "nonpayable";
                                  type: "function";
                              },
                              {
                                  inputs: readonly [(...), (...), (...)];
                                  name: "transferFrom";
                                  outputs: readonly [(...)];
                                  stateMutability: "nonpayable";
                                  type: "function";
                              },
                          ],
                          "transfer"
                          | "transferFrom",
                      >,
                  >;
              };
              transferSync: (
                  parameters: Parameters<Chain, Account, Tokens | undefined>,
              ) => Promise<
                  {
                      decimals?: number;
                      formatted?: string;
                      from: `0x${string}`;
                      receipt: TransactionReceipt;
                      to: `0x${string}`;
                      value: bigint;
                  },
              >;
          };
          tokens: Tokens
          | undefined;
          transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
          type: string;
          uid: string;
          waitForCallsStatus: (
              parameters: WaitForCallsStatusParameters,
          ) => Promise<
              {
                  atomic: boolean;
                  capabilities?: { [key: string]: any }
                  | { [key: string]: any };
                  chainId: number;
                  id: string;
                  receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                  status: "pending" | "success" | "failure" | undefined;
                  statusCode: number;
                  version: string;
              },
          >;
          watchAsset: (args: WatchAssetParams) => Promise<boolean>;
          writeContract: <
              const abi extends Abi
              | readonly unknown[],
              functionName extends string,
              args extends unknown,
              chainOverride extends Chain | undefined = undefined,
          >(
              args: WriteContractParameters<
                  abi,
                  functionName,
                  args,
                  Chain,
                  Account,
                  chainOverride,
              >,
          ) => Promise<`0x${string}`>;
          writeContractSync: <
              const abi extends Abi
              | readonly unknown[],
              functionName extends string,
              args extends unknown,
              chainOverride extends Chain | undefined = undefined,
          >(
              args: WriteContractSyncParameters<
                  abi,
                  functionName,
                  args,
                  Chain,
                  Account,
                  chainOverride,
              >,
          ) => Promise<TransactionReceipt>;
      }
      • account: 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; deployless?: boolean; wait?: number };
        }

        Flags for batch settings.

        • Optionalmulticall?: boolean | { batchSize?: number; deployless?: boolean; 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: Chain

        Chain for the client.

      • OptionaldataSuffix?: DataSuffix

        Data suffix to append to transaction data.

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

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

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

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

        Default block tag to use for RPC requests.

      • extend: <
            const client extends
                {
                    account?: undefined;
                    batch?: undefined;
                    cacheTime?: undefined;
                    ccipRead?: undefined;
                    chain?: undefined;
                    dataSuffix?: undefined;
                    experimental_blockTag?: undefined;
                    key?: undefined;
                    name?: undefined;
                    pollingInterval?: undefined;
                    request?: undefined;
                    tokens?: undefined;
                    transport?: undefined;
                    type?: undefined;
                    uid?: undefined;
                    [key: string]: unknown;
                } & ExactPartial<
                    ExtendableProtectedActions<
                        Transport,
                        Chain,
                        Account,
                        Tokens
                        | undefined,
                    >,
                >,
        >(
            fn: (
                client: Client<
                    Transport,
                    Chain,
                    Account,
                    WalletRpcSchema,
                    WalletActions<Chain, Account, Tokens | undefined>,
                    Tokens | undefined,
                >,
            ) => client,
        ) => Client<
            Transport,
            Chain,
            Account,
            WalletRpcSchema,
            { [K in string
            | number
            | symbol]: client[K] } & WalletActions<Chain, Account, Tokens | undefined>,
            Tokens | undefined,
        >
      • fillTransaction: <
            chainOverride extends Chain
            | undefined = undefined,
            accountOverride extends `0x${string}` | Account | undefined = undefined,
        >(
            args: FillTransactionParameters<
                Chain,
                Account,
                chainOverride,
                accountOverride,
            >,
        ) => Promise<FillTransactionReturnType<Chain, chainOverride>>

        Fills a transaction request with the necessary fields to be signed over.

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

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const result = await client.fillTransaction({
        account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
        value: parseEther('1'),
        })
      • getAddresses: () => Promise<GetAddressesReturnType>

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

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

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

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

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

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

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

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

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

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

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

        Returns the chain ID associated with the current network.

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

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

        Gets the wallets current permissions.

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

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

        A key for the client.

      • name: string

        A name for the client.

      • pollingInterval: number

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

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

        Prepares an EIP-7702 Authorization object for signing. This Action will fill the required fields of the Authorization object if they are not provided (e.g. nonce and chainId).

        With the prepared Authorization object, you can use signAuthorization to sign over the Authorization object.

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

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

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

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

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

        Prepares a transaction request for signing.

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

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

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

        Request function wrapped with friendly error handling

      • requestAddresses: () => Promise<RequestAddressesReturnType>

        Requests a list of accounts managed by a wallet.

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

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

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

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

        Requests permissions for a wallet.

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

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

        Requests the connected wallet to send a batch of calls.

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

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

        const id = await client.sendCalls({
        account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        calls: [
        {
        data: '0xdeadbeef',
        to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
        },
        {
        to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
        value: 69420n,
        },
        ],
        })
      • sendCallsSync: <
            const calls extends readonly unknown[],
            chainOverride extends Chain | undefined = undefined,
        >(
            parameters: SendCallsSyncParameters<
                Chain,
                Account,
                chainOverride,
                calls,
            >,
        ) => Promise<
            {
                atomic: boolean;
                capabilities?: { [key: string]: any }
                | { [key: string]: any };
                chainId: number;
                id: string;
                receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
                status: "pending" | "success" | "failure" | undefined;
                statusCode: number;
                version: string;
            },
        >

        Requests the connected wallet to send a batch of calls, and waits for the calls to be included in a block.

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

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

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

        Sends a signed transaction to the network

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

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

        const hash = await client.sendRawTransaction({
        serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'
        })
      • sendRawTransactionSync: (args: SendRawTransactionSyncParameters) => Promise<TransactionReceipt>

        Sends a signed transaction to the network synchronously, and waits for the transaction to be included in a block.

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

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

        const receipt = await client.sendRawTransactionSync({
        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?: `0x${string}`
                            | null;
                            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?: `0x${string}`
                            | null;
                            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?: `0x${string}`
                            | null;
                            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?: undefined;
                            maxFeePerBlobGas?: bigint;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            nonce?: number;
                            sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                            to: `0x${string}` | null;
                            type?: "eip4844";
                            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${(...)}`>[];
                            to: `0x${string}` | null;
                            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?: `0x${string}` | null;
                            type?: "eip7702";
                            value?: bigint;
                        },
                        "from",
                    >
                ) & { kzg?: Kzg },
            chainOverride extends Chain
            | undefined = undefined,
        >(
            args: SendTransactionParameters<Chain, 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,
        })
      • sendTransactionSync: <
            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?: `0x${string}`
                            | null;
                            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?: `0x${string}`
                            | null;
                            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?: `0x${string}`
                            | null;
                            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?: undefined;
                            maxFeePerBlobGas?: bigint;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            nonce?: number;
                            sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                            to: `0x${string}` | null;
                            type?: "eip4844";
                            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${(...)}`>[];
                            to: `0x${string}` | null;
                            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?: `0x${string}` | null;
                            type?: "eip7702";
                            value?: bigint;
                        },
                        "from",
                    >
                ) & { kzg?: Kzg },
            chainOverride extends Chain
            | undefined = undefined,
        >(
            args: SendTransactionSyncParameters<
                Chain,
                Account,
                chainOverride,
                request,
            >,
        ) => Promise<TransactionReceipt>

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

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

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const receipt = await client.sendTransactionSync({
        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 receipt = await client.sendTransactionSync({
        to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
        value: 1000000000000000000n,
        })
      • showCallsStatus: (parameters: ShowCallsStatusParameters) => Promise<void>

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

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

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

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

        Signs an EIP-7702 Authorization object.

        With the calculated signature, you can:

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

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

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

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

        const signature = await client.signAuthorization({
        contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        })
      • signMessage: (args: SignMessageParameters<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 Chain
            | undefined,
            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?: `0x${string}`
                            | null;
                            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?: `0x${string}`
                            | null;
                            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?: `0x${string}`
                            | null;
                            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?: undefined;
                            maxFeePerBlobGas?: bigint;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            nonce?: number;
                            sidecars?: readonly BlobSidecar<`0x${string}`>[];
                            to: `0x${string}` | null;
                            type?: "eip4844";
                            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: `0x${string}` | null;
                            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?: `0x${string}` | null;
                            type?: "eip7702";
                            value?: bigint;
                        },
                        "from",
                    > = UnionOmit<
                ExtractChainFormatterParameters<
                    DeriveChain<Chain, chainOverride>,
                    "transactionRequest",
                    TransactionRequest,
                >,
                "from",
            >,
        >(
            args: SignTransactionParameters<Chain, 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 string
                        | undefined
                            ? 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)
                            | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : 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)
                            | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : 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)
                            | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : 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)
                            | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : 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)
                            | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : 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: `uint8[${string}]`]: undefined;
                    [key: `uint256[${string}]`]: undefined;
                    [key: `address[${string}]`]: undefined;
                    [key: `bool[${string}]`]: undefined;
                    [key: `bytes32[${string}]`]: undefined;
                    [key: `uint80[${string}]`]: undefined;
                    [key: `int256[${string}]`]: undefined;
                    [key: `uint24[${string}]`]: undefined;
                    [key: `uint160[${string}]`]: undefined;
                    [key: `uint32[${string}]`]: undefined;
                    [key: `bytes[${string}]`]: undefined;
                    [key: `uint128[${string}]`]: undefined;
                    [key: `int24[${string}]`]: undefined;
                    [key: `uint16[${string}]`]: undefined;
                    [key: `bytes1[${string}]`]: undefined;
                    [key: `bytes2[${string}]`]: undefined;
                    [key: `bytes3[${string}]`]: undefined;
                    [key: `bytes11[${string}]`]: undefined;
                    [key: `bytes7[${string}]`]: undefined;
                    [key: `bytes23[${string}]`]: undefined;
                    [key: `bytes5[${string}]`]: undefined;
                    [key: `bytes4[${string}]`]: undefined;
                    [key: `bytes8[${string}]`]: undefined;
                    [key: `bytes13[${string}]`]: undefined;
                    [key: `bytes6[${string}]`]: undefined;
                    [key: `bytes18[${string}]`]: undefined;
                    [key: `bytes9[${string}]`]: undefined;
                    [key: `bytes10[${string}]`]: undefined;
                    [key: `bytes12[${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: `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: `uint[${string}]`]: undefined;
                    [key: `uint40[${string}]`]: undefined;
                    [key: `uint48[${string}]`]: undefined;
                    [key: `uint56[${string}]`]: undefined;
                    [key: `uint64[${string}]`]: undefined;
                    [key: `uint72[${string}]`]: undefined;
                    [key: `uint88[${string}]`]: undefined;
                    [key: `uint96[${string}]`]: undefined;
                    [key: `uint104[${string}]`]: undefined;
                    [key: `uint112[${string}]`]: undefined;
                    [key: `uint120[${string}]`]: undefined;
                    [key: `uint136[${string}]`]: undefined;
                    [key: `uint144[${string}]`]: undefined;
                    [key: `uint152[${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, 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 })
      • token: {
            approve: (
                parameters: Parameters<Chain, Account, Tokens | undefined>,
            ) => Promise<`0x${string}`> & {
                call: (
                    args: Args<Chain, Tokens | undefined>,
                ) => {
                    abi: [
                        {
                            inputs: readonly [(...), (...)];
                            name: "approve";
                            outputs: readonly [(...)];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                    ];
                    functionName: "approve";
                } & { args: readonly [`0x${string}`, bigint] } & {
                    address: `0x${string}`;
                } & { data: `0x${string}`; to: `0x${string}` };
                estimateGas: (
                    parameters: Parameters<Chain, Account, Tokens | undefined>,
                ) => Promise<bigint>;
                extractEvent: (
                    logs: Log[],
                ) => Log<
                    bigint,
                    number,
                    false,
                    undefined,
                    true,
                    readonly [
                        {
                            inputs: readonly [
                                { indexed: ...; name: ...; type: ... },
                                { indexed: ...; name: ...; type: ... },
                                { indexed: ...; name: ...; type: ... },
                            ];
                            name: "Approval";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { indexed: ...; name: ...; type: ... },
                                { indexed: ...; name: ...; type: ... },
                                { indexed: ...; name: ...; type: ... },
                            ];
                            name: "Transfer";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { name: ...; type: ... },
                                { name: ...; type: ... },
                            ];
                            name: "allowance";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: ...; type: ... },
                                { name: ...; type: ... },
                            ];
                            name: "approve";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [{ name: ...; type: ... }];
                            name: "balanceOf";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "decimals";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "name";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "symbol";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "totalSupply";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: ...; type: ... },
                                { name: ...; type: ... },
                            ];
                            name: "transfer";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: ...; type: ... },
                                { name: ...; type: ... },
                                { name: ...; type: ... },
                            ];
                            name: "transferFrom";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                    ],
                    "Approval",
                >;
                simulate: (
                    parameters: Parameters<Chain, Account, Tokens | undefined>,
                ) => Promise<
                    SimulateContractReturnType<
                        readonly [
                            {
                                inputs: readonly [(...), (...), (...)];
                                name: "Approval";
                                type: "event";
                            },
                            {
                                inputs: readonly [(...), (...), (...)];
                                name: "Transfer";
                                type: "event";
                            },
                            {
                                inputs: readonly [(...), (...)];
                                name: "allowance";
                                outputs: readonly [(...)];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [(...), (...)];
                                name: "approve";
                                outputs: readonly [(...)];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                            {
                                inputs: readonly [(...)];
                                name: "balanceOf";
                                outputs: readonly [(...)];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "decimals";
                                outputs: readonly [(...)];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "name";
                                outputs: readonly [(...)];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "symbol";
                                outputs: readonly [(...)];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "totalSupply";
                                outputs: readonly [(...)];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [(...), (...)];
                                name: "transfer";
                                outputs: readonly [(...)];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                            {
                                inputs: readonly [(...), (...), (...)];
                                name: "transferFrom";
                                outputs: readonly [(...)];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                        ],
                        "approve",
                    >,
                >;
            };
            approveSync: (
                parameters: Parameters<Chain, Account, Tokens | undefined>,
            ) => Promise<
                {
                    decimals?: number;
                    formatted?: string;
                    owner: `0x${string}`;
                    receipt: TransactionReceipt;
                    spender: `0x${string}`;
                    value: bigint;
                },
            >;
            transfer: (
                parameters: Parameters<Chain, Account, Tokens | undefined>,
            ) => Promise<`0x${string}`> & {
                call: (
                    args: Args<Chain, Tokens | undefined>,
                ) => {
                    abi: [
                        | {
                            inputs: ...;
                            name: ...;
                            outputs: ...;
                            stateMutability: ...;
                            type: ...;
                        }
                        | {
                            inputs: ...;
                            name: ...;
                            outputs: ...;
                            stateMutability: ...;
                            type: ...;
                        },
                    ];
                    functionName: "transfer"
                    | "transferFrom";
                } & {
                    args: | readonly [`0x${(...)}`, bigint]
                    | readonly [`0x${(...)}`, `0x${(...)}`, bigint];
                } & { address: `0x${string}` } & {
                    data: `0x${string}`;
                    to: `0x${string}`;
                };
                estimateGas: (
                    parameters: Parameters<Chain, Account, Tokens | undefined>,
                ) => Promise<bigint>;
                extractEvent: (
                    logs: Log[],
                ) => Log<
                    bigint,
                    number,
                    false,
                    undefined,
                    true,
                    readonly [
                        {
                            inputs: readonly [
                                { indexed: ...; name: ...; type: ... },
                                { indexed: ...; name: ...; type: ... },
                                { indexed: ...; name: ...; type: ... },
                            ];
                            name: "Approval";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { indexed: ...; name: ...; type: ... },
                                { indexed: ...; name: ...; type: ... },
                                { indexed: ...; name: ...; type: ... },
                            ];
                            name: "Transfer";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { name: ...; type: ... },
                                { name: ...; type: ... },
                            ];
                            name: "allowance";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: ...; type: ... },
                                { name: ...; type: ... },
                            ];
                            name: "approve";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [{ name: ...; type: ... }];
                            name: "balanceOf";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "decimals";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "name";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "symbol";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "totalSupply";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: ...; type: ... },
                                { name: ...; type: ... },
                            ];
                            name: "transfer";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: ...; type: ... },
                                { name: ...; type: ... },
                                { name: ...; type: ... },
                            ];
                            name: "transferFrom";
                            outputs: readonly [{ type: ... }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                    ],
                    "Transfer",
                >;
                simulate: (
                    parameters: Parameters<Chain, Account, Tokens | undefined>,
                ) => Promise<
                    SimulateContractReturnType<
                        readonly [
                            {
                                inputs: readonly [(...), (...), (...)];
                                name: "Approval";
                                type: "event";
                            },
                            {
                                inputs: readonly [(...), (...), (...)];
                                name: "Transfer";
                                type: "event";
                            },
                            {
                                inputs: readonly [(...), (...)];
                                name: "allowance";
                                outputs: readonly [(...)];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [(...), (...)];
                                name: "approve";
                                outputs: readonly [(...)];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                            {
                                inputs: readonly [(...)];
                                name: "balanceOf";
                                outputs: readonly [(...)];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "decimals";
                                outputs: readonly [(...)];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "name";
                                outputs: readonly [(...)];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "symbol";
                                outputs: readonly [(...)];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [];
                                name: "totalSupply";
                                outputs: readonly [(...)];
                                stateMutability: "view";
                                type: "function";
                            },
                            {
                                inputs: readonly [(...), (...)];
                                name: "transfer";
                                outputs: readonly [(...)];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                            {
                                inputs: readonly [(...), (...), (...)];
                                name: "transferFrom";
                                outputs: readonly [(...)];
                                stateMutability: "nonpayable";
                                type: "function";
                            },
                        ],
                        "transfer"
                        | "transferFrom",
                    >,
                >;
            };
            transferSync: (
                parameters: Parameters<Chain, Account, Tokens | undefined>,
            ) => Promise<
                {
                    decimals?: number;
                    formatted?: string;
                    from: `0x${string}`;
                    receipt: TransactionReceipt;
                    to: `0x${string}`;
                    value: bigint;
                },
            >;
        }

        Write ERC-20 Actions, exposed under the token namespace.

        Every action selects its token by token, which is either a token symbol (resolved from the Client's tokens array) or a contract address. amount inputs are base-unit bigint values, or { decimals?: number, formatted: string } to parse a human-readable decimal string.

        • approve: (
              parameters: Parameters<Chain, Account, Tokens | undefined>,
          ) => Promise<`0x${string}`> & {
              call: (
                  args: Args<Chain, Tokens | undefined>,
              ) => {
                  abi: [
                      {
                          inputs: readonly [(...), (...)];
                          name: "approve";
                          outputs: readonly [(...)];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                  ];
                  functionName: "approve";
              } & { args: readonly [`0x${string}`, bigint] } & { address: `0x${string}` } & {
                  data: `0x${string}`;
                  to: `0x${string}`;
              };
              estimateGas: (
                  parameters: Parameters<Chain, Account, Tokens | undefined>,
              ) => Promise<bigint>;
              extractEvent: (
                  logs: Log[],
              ) => Log<
                  bigint,
                  number,
                  false,
                  undefined,
                  true,
                  readonly [
                      {
                          inputs: readonly [
                              { indexed: ...; name: ...; type: ... },
                              { indexed: ...; name: ...; type: ... },
                              { indexed: ...; name: ...; type: ... },
                          ];
                          name: "Approval";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { indexed: ...; name: ...; type: ... },
                              { indexed: ...; name: ...; type: ... },
                              { indexed: ...; name: ...; type: ... },
                          ];
                          name: "Transfer";
                          type: "event";
                      },
                      {
                          inputs: readonly [{ name: ...; type: ... }, { name: ...; type: ... }];
                          name: "allowance";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [{ name: ...; type: ... }, { name: ...; type: ... }];
                          name: "approve";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [{ name: ...; type: ... }];
                          name: "balanceOf";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "decimals";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "name";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "symbol";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "totalSupply";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [{ name: ...; type: ... }, { name: ...; type: ... }];
                          name: "transfer";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: ...; type: ... },
                              { name: ...; type: ... },
                              { name: ...; type: ... },
                          ];
                          name: "transferFrom";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                  ],
                  "Approval",
              >;
              simulate: (
                  parameters: Parameters<Chain, Account, Tokens | undefined>,
              ) => Promise<
                  SimulateContractReturnType<
                      readonly [
                          {
                              inputs: readonly [(...), (...), (...)];
                              name: "Approval";
                              type: "event";
                          },
                          {
                              inputs: readonly [(...), (...), (...)];
                              name: "Transfer";
                              type: "event";
                          },
                          {
                              inputs: readonly [(...), (...)];
                              name: "allowance";
                              outputs: readonly [(...)];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [(...), (...)];
                              name: "approve";
                              outputs: readonly [(...)];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [(...)];
                              name: "balanceOf";
                              outputs: readonly [(...)];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "decimals";
                              outputs: readonly [(...)];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "name";
                              outputs: readonly [(...)];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "symbol";
                              outputs: readonly [(...)];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "totalSupply";
                              outputs: readonly [(...)];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [(...), (...)];
                              name: "transfer";
                              outputs: readonly [(...)];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [(...), (...), (...)];
                              name: "transferFrom";
                              outputs: readonly [(...)];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ],
                      "approve",
                  >,
              >;
          }

          Approves a spender to transfer up to amount tokens on behalf of the caller, and returns the transaction hash.

          approve.Parameters

          The transaction hash. approve.ReturnValue

          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.token.approve({
          amount: { decimals: 6, formatted: '10.5' },
          spender: '0x…',
          token: 'usdc',
          })
        • approveSync: (
              parameters: Parameters<Chain, Account, Tokens | undefined>,
          ) => Promise<
              {
                  decimals?: number;
                  formatted?: string;
                  owner: `0x${string}`;
                  receipt: TransactionReceipt;
                  spender: `0x${string}`;
                  value: bigint;
              },
          >

          Approves a spender to transfer up to amount tokens on behalf of the caller, and waits for the transaction to be confirmed.

          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 { receipt, value } = await client.token.approveSync({
          amount: { decimals: 6, formatted: '10.5' },
          spender: '0x…',
          token: 'usdc',
          })
        • transfer: (
              parameters: Parameters<Chain, Account, Tokens | undefined>,
          ) => Promise<`0x${string}`> & {
              call: (
                  args: Args<Chain, Tokens | undefined>,
              ) => {
                  abi: [
                      | {
                          inputs: ...;
                          name: ...;
                          outputs: ...;
                          stateMutability: ...;
                          type: ...;
                      }
                      | {
                          inputs: ...;
                          name: ...;
                          outputs: ...;
                          stateMutability: ...;
                          type: ...;
                      },
                  ];
                  functionName: "transfer"
                  | "transferFrom";
              } & {
                  args: | readonly [`0x${(...)}`, bigint]
                  | readonly [`0x${(...)}`, `0x${(...)}`, bigint];
              } & { address: `0x${string}` } & { data: `0x${string}`; to: `0x${string}` };
              estimateGas: (
                  parameters: Parameters<Chain, Account, Tokens | undefined>,
              ) => Promise<bigint>;
              extractEvent: (
                  logs: Log[],
              ) => Log<
                  bigint,
                  number,
                  false,
                  undefined,
                  true,
                  readonly [
                      {
                          inputs: readonly [
                              { indexed: ...; name: ...; type: ... },
                              { indexed: ...; name: ...; type: ... },
                              { indexed: ...; name: ...; type: ... },
                          ];
                          name: "Approval";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { indexed: ...; name: ...; type: ... },
                              { indexed: ...; name: ...; type: ... },
                              { indexed: ...; name: ...; type: ... },
                          ];
                          name: "Transfer";
                          type: "event";
                      },
                      {
                          inputs: readonly [{ name: ...; type: ... }, { name: ...; type: ... }];
                          name: "allowance";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [{ name: ...; type: ... }, { name: ...; type: ... }];
                          name: "approve";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [{ name: ...; type: ... }];
                          name: "balanceOf";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "decimals";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "name";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "symbol";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "totalSupply";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [{ name: ...; type: ... }, { name: ...; type: ... }];
                          name: "transfer";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: ...; type: ... },
                              { name: ...; type: ... },
                              { name: ...; type: ... },
                          ];
                          name: "transferFrom";
                          outputs: readonly [{ type: ... }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                  ],
                  "Transfer",
              >;
              simulate: (
                  parameters: Parameters<Chain, Account, Tokens | undefined>,
              ) => Promise<
                  SimulateContractReturnType<
                      readonly [
                          {
                              inputs: readonly [(...), (...), (...)];
                              name: "Approval";
                              type: "event";
                          },
                          {
                              inputs: readonly [(...), (...), (...)];
                              name: "Transfer";
                              type: "event";
                          },
                          {
                              inputs: readonly [(...), (...)];
                              name: "allowance";
                              outputs: readonly [(...)];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [(...), (...)];
                              name: "approve";
                              outputs: readonly [(...)];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [(...)];
                              name: "balanceOf";
                              outputs: readonly [(...)];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "decimals";
                              outputs: readonly [(...)];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "name";
                              outputs: readonly [(...)];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "symbol";
                              outputs: readonly [(...)];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "totalSupply";
                              outputs: readonly [(...)];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [(...), (...)];
                              name: "transfer";
                              outputs: readonly [(...)];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [(...), (...), (...)];
                              name: "transferFrom";
                              outputs: readonly [(...)];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ],
                      "transfer"
                      | "transferFrom",
                  >,
              >;
          }

          Transfers amount tokens to a recipient, and returns the transaction hash. Pass from to transfer on behalf of another address using an allowance (calls transferFrom).

          transfer.Parameters

          The transaction hash. transfer.ReturnValue

          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.token.transfer({
          amount: { decimals: 6, formatted: '10.5' },
          to: '0x…',
          token: 'usdc',
          })
        • transferSync: (
              parameters: Parameters<Chain, Account, Tokens | undefined>,
          ) => Promise<
              {
                  decimals?: number;
                  formatted?: string;
                  from: `0x${string}`;
                  receipt: TransactionReceipt;
                  to: `0x${string}`;
                  value: bigint;
              },
          >

          Transfers amount tokens to a recipient, and waits for the transaction to be confirmed. Pass from to transfer on behalf of another address using an allowance (calls transferFrom).

          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 { receipt, value } = await client.token.transferSync({
          amount: { decimals: 6, formatted: '10.5' },
          to: '0x…',
          token: 'usdc',
          })
      • tokens: Tokens | undefined

        Collection of tokens declared on the Client.

      • transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>

        The RPC transport

      • type: string

        The type of client.

      • uid: string

        A unique ID for the client.

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

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

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

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

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

        Adds an EVM chain to the wallet.

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

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

        Executes a write function on a contract synchronously. Returns the transaction receipt.

        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 receipt = await client.writeContractSync({
        address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
        abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),
        functionName: 'mint',
        args: [69420],
        })
    • null