The namespace containing all EVM methods.

Implements

Constructors

Methods

  • Creates a new CDP EVM account.

    Parameters

    • Optionaloptions: CreateServerAccountOptions = {}

      Optional parameters for creating the account.

      Options for creating an EVM server account.

      • OptionalidempotencyKey?: string

        The idempotency key.

      • Optionalname?: string

        The name of the account.

    Returns Promise<
        {
            address: `0x${string}`;
            name?: string;
            sign: (parameters: { hash: `0x${string}` }) => Promise<`0x${string}`>;
            signMessage: (
                parameters: { message: SignableMessage },
            ) => Promise<`0x${string}`>;
            signTransaction: (
                transaction: TransactionSerializable,
            ) => Promise<`0x${string}`>;
            signTypedData: <
                const typedData extends
                    | {
                        address?: undefined;
                        bool?: undefined;
                        bytes?: undefined;
                        bytes1?: undefined;
                        bytes10?: undefined;
                        bytes11?: undefined;
                        bytes12?: undefined;
                        bytes13?: undefined;
                        bytes14?: undefined;
                        bytes15?: undefined;
                        bytes16?: undefined;
                        bytes17?: undefined;
                        bytes18?: undefined;
                        bytes19?: undefined;
                        bytes2?: undefined;
                        bytes20?: undefined;
                        bytes21?: undefined;
                        bytes22?: undefined;
                        bytes23?: undefined;
                        bytes24?: undefined;
                        bytes25?: undefined;
                        bytes26?: undefined;
                        bytes27?: undefined;
                        bytes28?: undefined;
                        bytes29?: undefined;
                        bytes3?: undefined;
                        bytes30?: undefined;
                        bytes31?: undefined;
                        bytes32?: undefined;
                        bytes4?: undefined;
                        bytes5?: undefined;
                        bytes6?: undefined;
                        bytes7?: undefined;
                        bytes8?: undefined;
                        bytes9?: undefined;
                        int104?: undefined;
                        int112?: undefined;
                        int120?: undefined;
                        int128?: undefined;
                        int136?: undefined;
                        int144?: undefined;
                        int152?: undefined;
                        int16?: undefined;
                        int160?: undefined;
                        int168?: undefined;
                        int176?: undefined;
                        int184?: undefined;
                        int192?: undefined;
                        int200?: undefined;
                        int208?: undefined;
                        int216?: undefined;
                        int224?: undefined;
                        int232?: undefined;
                        int24?: undefined;
                        int240?: undefined;
                        int248?: undefined;
                        int256?: undefined;
                        int32?: undefined;
                        int40?: undefined;
                        int48?: undefined;
                        int56?: undefined;
                        int64?: undefined;
                        int72?: undefined;
                        int8?: undefined;
                        int80?: undefined;
                        int88?: undefined;
                        int96?: undefined;
                        string?: undefined;
                        uint104?: undefined;
                        uint112?: undefined;
                        uint120?: undefined;
                        uint128?: undefined;
                        uint136?: undefined;
                        uint144?: undefined;
                        uint152?: undefined;
                        uint16?: undefined;
                        uint160?: undefined;
                        uint168?: undefined;
                        uint176?: undefined;
                        uint184?: undefined;
                        uint192?: undefined;
                        uint200?: undefined;
                        uint208?: undefined;
                        uint216?: undefined;
                        uint224?: undefined;
                        uint232?: undefined;
                        uint24?: undefined;
                        uint240?: undefined;
                        uint248?: undefined;
                        uint256?: undefined;
                        uint32?: undefined;
                        uint40?: undefined;
                        uint48?: undefined;
                        uint56?: undefined;
                        uint64?: undefined;
                        uint72?: undefined;
                        uint8?: undefined;
                        uint80?: undefined;
                        uint88?: undefined;
                        uint96?: undefined;
                        [key: string]: readonly TypedDataParameter[];
                        [key: `string[${string}]`]: undefined;
                        [key: `function[${string}]`]: undefined;
                        [key: `address[${string}]`]: undefined;
                        [key: `bool[${string}]`]: undefined;
                        [key: `bytes[${string}]`]: undefined;
                        [key: `bytes3[${string}]`]: undefined;
                        [key: `bytes1[${string}]`]: undefined;
                        [key: `bytes2[${string}]`]: undefined;
                        [key: `bytes32[${string}]`]: undefined;
                        [key: `bytes16[${string}]`]: undefined;
                        [key: `bytes4[${string}]`]: undefined;
                        [key: `bytes6[${string}]`]: undefined;
                        [key: `bytes5[${string}]`]: undefined;
                        [key: `bytes7[${string}]`]: undefined;
                        [key: `bytes8[${string}]`]: undefined;
                        [key: `bytes9[${string}]`]: undefined;
                        [key: `bytes10[${string}]`]: undefined;
                        [key: `bytes11[${string}]`]: undefined;
                        [key: `bytes12[${string}]`]: undefined;
                        [key: `bytes13[${string}]`]: undefined;
                        [key: `bytes14[${string}]`]: undefined;
                        [key: `bytes15[${string}]`]: undefined;
                        [key: `bytes17[${string}]`]: undefined;
                        [key: `bytes18[${string}]`]: undefined;
                        [key: `bytes19[${string}]`]: undefined;
                        [key: `bytes20[${string}]`]: undefined;
                        [key: `bytes21[${string}]`]: undefined;
                        [key: `bytes22[${string}]`]: undefined;
                        [key: `bytes23[${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: `int120[${string}]`]: undefined;
                        [key: `int64[${string}]`]: undefined;
                        [key: `int32[${string}]`]: undefined;
                        [key: `int16[${string}]`]: undefined;
                        [key: `int8[${string}]`]: undefined;
                        [key: `int24[${string}]`]: undefined;
                        [key: `int40[${string}]`]: undefined;
                        [key: `int48[${string}]`]: undefined;
                        [key: `int56[${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: `int128[${string}]`]: undefined;
                        [key: `int136[${string}]`]: undefined;
                        [key: `int144[${string}]`]: undefined;
                        [key: `int152[${string}]`]: undefined;
                        [key: `int160[${string}]`]: undefined;
                        [key: `int168[${string}]`]: undefined;
                        [key: `int176[${string}]`]: undefined;
                        [key: `int184[${string}]`]: undefined;
                        [key: `int192[${string}]`]: undefined;
                        [key: `int200[${string}]`]: undefined;
                        [key: `int208[${string}]`]: undefined;
                        [key: `int216[${string}]`]: undefined;
                        [key: `int224[${string}]`]: undefined;
                        [key: `int232[${string}]`]: undefined;
                        [key: `int240[${string}]`]: undefined;
                        [key: `int248[${string}]`]: undefined;
                        [key: `int256[${string}]`]: undefined;
                        [key: `uint[${string}]`]: undefined;
                        [key: `uint120[${string}]`]: undefined;
                        [key: `uint64[${string}]`]: undefined;
                        [key: `uint32[${string}]`]: undefined;
                        [key: `uint16[${string}]`]: undefined;
                        [key: `uint8[${string}]`]: undefined;
                        [key: `uint24[${string}]`]: undefined;
                        [key: `uint40[${string}]`]: undefined;
                        [key: `uint48[${string}]`]: undefined;
                        [key: `uint56[${string}]`]: undefined;
                        [key: `uint72[${string}]`]: undefined;
                        [key: `uint80[${string}]`]: undefined;
                        [key: `uint88[${string}]`]: undefined;
                        [key: `uint96[${string}]`]: undefined;
                        [key: `uint104[${string}]`]: undefined;
                        [key: `uint112[${string}]`]: undefined;
                        [key: `uint128[${string}]`]: undefined;
                        [key: `uint136[${string}]`]: undefined;
                        [key: `uint144[${string}]`]: undefined;
                        [key: `uint152[${string}]`]: undefined;
                        [key: `uint160[${string}]`]: undefined;
                        [key: `uint168[${string}]`]: undefined;
                        [key: `uint176[${string}]`]: undefined;
                        [key: `uint184[${string}]`]: undefined;
                        [key: `uint192[${string}]`]: undefined;
                        [key: `uint200[${string}]`]: undefined;
                        [key: `uint208[${string}]`]: undefined;
                        [key: `uint216[${string}]`]: undefined;
                        [key: `uint224[${string}]`]: undefined;
                        [key: `uint232[${string}]`]: undefined;
                        [key: `uint240[${string}]`]: undefined;
                        [key: `uint248[${string}]`]: undefined;
                        [key: `uint256[${string}]`]: undefined;
                    }
                    | Record<string, unknown>,
                primaryType extends string
                | number
                | symbol = keyof typedData,
            >(
                parameters: TypedDataDefinition<typedData, primaryType>,
            ) => Promise<`0x${string}`>;
            type: "evm-server";
        },
    >

    A promise that resolves to the newly created account.

             const account = await cdp.evm.createAccount();
             const account = await cdp.evm.createAccount({ name: "MyAccount" });
             const idempotencyKey = uuidv4();

    // First call
    await cdp.evm.createAccount({
    idempotencyKey,
    });

    // Second call with the same idempotency key will return the same account
    await cdp.evm.createAccount({
    idempotencyKey,
    });
  • Creates a new CDP EVM smart account.

    Parameters

    • options: CreateSmartAccountOptions

      Parameters for creating the smart account.

      Options for creating an EVM smart account.

      • OptionalidempotencyKey?: string

        The idempotency key.

      • owner: EvmAccount

        The owner of the account.

    Returns Promise<EvmSmartAccount>

    A promise that resolves to the newly created smart account.

             const account = await cdp.evm.createAccount();
    const smartAccount = await cdp.evm.createSmartAccount({
    owner: account,
    });
             // See https://viem.sh/docs/accounts/local/privateKeyToAccount
    const privateKey = generatePrivateKey();
    const account = privateKeyToAccount(privateKey);
    const smartAccount = await client.evm.createSmartAccount({
    owner: account,
    });
             const idempotencyKey = uuidv4();

    // First call
    await cdp.evm.createSmartAccount({
    owner: account,
    idempotencyKey,
    });

    // Second call with the same idempotency key will return the same smart account
    await cdp.evm.createSmartAccount({
    owner: account,
    idempotencyKey,
  • Gets a CDP EVM account.

    Parameters

    • options: GetServerAccountOptions

      Parameters for getting the account. Either address or name must be provided. If both are provided, lookup will be done by address and name will be ignored.

      Options for getting an EVM account.

      • Optionaladdress?: `0x${string}`

        The address of the account.

      • Optionalname?: string

        The name of the account.

    Returns Promise<
        {
            address: `0x${string}`;
            name?: string;
            sign: (parameters: { hash: `0x${string}` }) => Promise<`0x${string}`>;
            signMessage: (
                parameters: { message: SignableMessage },
            ) => Promise<`0x${string}`>;
            signTransaction: (
                transaction: TransactionSerializable,
            ) => Promise<`0x${string}`>;
            signTypedData: <
                const typedData extends
                    | {
                        address?: undefined;
                        bool?: undefined;
                        bytes?: undefined;
                        bytes1?: undefined;
                        bytes10?: undefined;
                        bytes11?: undefined;
                        bytes12?: undefined;
                        bytes13?: undefined;
                        bytes14?: undefined;
                        bytes15?: undefined;
                        bytes16?: undefined;
                        bytes17?: undefined;
                        bytes18?: undefined;
                        bytes19?: undefined;
                        bytes2?: undefined;
                        bytes20?: undefined;
                        bytes21?: undefined;
                        bytes22?: undefined;
                        bytes23?: undefined;
                        bytes24?: undefined;
                        bytes25?: undefined;
                        bytes26?: undefined;
                        bytes27?: undefined;
                        bytes28?: undefined;
                        bytes29?: undefined;
                        bytes3?: undefined;
                        bytes30?: undefined;
                        bytes31?: undefined;
                        bytes32?: undefined;
                        bytes4?: undefined;
                        bytes5?: undefined;
                        bytes6?: undefined;
                        bytes7?: undefined;
                        bytes8?: undefined;
                        bytes9?: undefined;
                        int104?: undefined;
                        int112?: undefined;
                        int120?: undefined;
                        int128?: undefined;
                        int136?: undefined;
                        int144?: undefined;
                        int152?: undefined;
                        int16?: undefined;
                        int160?: undefined;
                        int168?: undefined;
                        int176?: undefined;
                        int184?: undefined;
                        int192?: undefined;
                        int200?: undefined;
                        int208?: undefined;
                        int216?: undefined;
                        int224?: undefined;
                        int232?: undefined;
                        int24?: undefined;
                        int240?: undefined;
                        int248?: undefined;
                        int256?: undefined;
                        int32?: undefined;
                        int40?: undefined;
                        int48?: undefined;
                        int56?: undefined;
                        int64?: undefined;
                        int72?: undefined;
                        int8?: undefined;
                        int80?: undefined;
                        int88?: undefined;
                        int96?: undefined;
                        string?: undefined;
                        uint104?: undefined;
                        uint112?: undefined;
                        uint120?: undefined;
                        uint128?: undefined;
                        uint136?: undefined;
                        uint144?: undefined;
                        uint152?: undefined;
                        uint16?: undefined;
                        uint160?: undefined;
                        uint168?: undefined;
                        uint176?: undefined;
                        uint184?: undefined;
                        uint192?: undefined;
                        uint200?: undefined;
                        uint208?: undefined;
                        uint216?: undefined;
                        uint224?: undefined;
                        uint232?: undefined;
                        uint24?: undefined;
                        uint240?: undefined;
                        uint248?: undefined;
                        uint256?: undefined;
                        uint32?: undefined;
                        uint40?: undefined;
                        uint48?: undefined;
                        uint56?: undefined;
                        uint64?: undefined;
                        uint72?: undefined;
                        uint8?: undefined;
                        uint80?: undefined;
                        uint88?: undefined;
                        uint96?: undefined;
                        [key: string]: readonly TypedDataParameter[];
                        [key: `string[${string}]`]: undefined;
                        [key: `function[${string}]`]: undefined;
                        [key: `address[${string}]`]: undefined;
                        [key: `bool[${string}]`]: undefined;
                        [key: `bytes[${string}]`]: undefined;
                        [key: `bytes3[${string}]`]: undefined;
                        [key: `bytes1[${string}]`]: undefined;
                        [key: `bytes2[${string}]`]: undefined;
                        [key: `bytes32[${string}]`]: undefined;
                        [key: `bytes16[${string}]`]: undefined;
                        [key: `bytes4[${string}]`]: undefined;
                        [key: `bytes6[${string}]`]: undefined;
                        [key: `bytes5[${string}]`]: undefined;
                        [key: `bytes7[${string}]`]: undefined;
                        [key: `bytes8[${string}]`]: undefined;
                        [key: `bytes9[${string}]`]: undefined;
                        [key: `bytes10[${string}]`]: undefined;
                        [key: `bytes11[${string}]`]: undefined;
                        [key: `bytes12[${string}]`]: undefined;
                        [key: `bytes13[${string}]`]: undefined;
                        [key: `bytes14[${string}]`]: undefined;
                        [key: `bytes15[${string}]`]: undefined;
                        [key: `bytes17[${string}]`]: undefined;
                        [key: `bytes18[${string}]`]: undefined;
                        [key: `bytes19[${string}]`]: undefined;
                        [key: `bytes20[${string}]`]: undefined;
                        [key: `bytes21[${string}]`]: undefined;
                        [key: `bytes22[${string}]`]: undefined;
                        [key: `bytes23[${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: `int120[${string}]`]: undefined;
                        [key: `int64[${string}]`]: undefined;
                        [key: `int32[${string}]`]: undefined;
                        [key: `int16[${string}]`]: undefined;
                        [key: `int8[${string}]`]: undefined;
                        [key: `int24[${string}]`]: undefined;
                        [key: `int40[${string}]`]: undefined;
                        [key: `int48[${string}]`]: undefined;
                        [key: `int56[${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: `int128[${string}]`]: undefined;
                        [key: `int136[${string}]`]: undefined;
                        [key: `int144[${string}]`]: undefined;
                        [key: `int152[${string}]`]: undefined;
                        [key: `int160[${string}]`]: undefined;
                        [key: `int168[${string}]`]: undefined;
                        [key: `int176[${string}]`]: undefined;
                        [key: `int184[${string}]`]: undefined;
                        [key: `int192[${string}]`]: undefined;
                        [key: `int200[${string}]`]: undefined;
                        [key: `int208[${string}]`]: undefined;
                        [key: `int216[${string}]`]: undefined;
                        [key: `int224[${string}]`]: undefined;
                        [key: `int232[${string}]`]: undefined;
                        [key: `int240[${string}]`]: undefined;
                        [key: `int248[${string}]`]: undefined;
                        [key: `int256[${string}]`]: undefined;
                        [key: `uint[${string}]`]: undefined;
                        [key: `uint120[${string}]`]: undefined;
                        [key: `uint64[${string}]`]: undefined;
                        [key: `uint32[${string}]`]: undefined;
                        [key: `uint16[${string}]`]: undefined;
                        [key: `uint8[${string}]`]: undefined;
                        [key: `uint24[${string}]`]: undefined;
                        [key: `uint40[${string}]`]: undefined;
                        [key: `uint48[${string}]`]: undefined;
                        [key: `uint56[${string}]`]: undefined;
                        [key: `uint72[${string}]`]: undefined;
                        [key: `uint80[${string}]`]: undefined;
                        [key: `uint88[${string}]`]: undefined;
                        [key: `uint96[${string}]`]: undefined;
                        [key: `uint104[${string}]`]: undefined;
                        [key: `uint112[${string}]`]: undefined;
                        [key: `uint128[${string}]`]: undefined;
                        [key: `uint136[${string}]`]: undefined;
                        [key: `uint144[${string}]`]: undefined;
                        [key: `uint152[${string}]`]: undefined;
                        [key: `uint160[${string}]`]: undefined;
                        [key: `uint168[${string}]`]: undefined;
                        [key: `uint176[${string}]`]: undefined;
                        [key: `uint184[${string}]`]: undefined;
                        [key: `uint192[${string}]`]: undefined;
                        [key: `uint200[${string}]`]: undefined;
                        [key: `uint208[${string}]`]: undefined;
                        [key: `uint216[${string}]`]: undefined;
                        [key: `uint224[${string}]`]: undefined;
                        [key: `uint232[${string}]`]: undefined;
                        [key: `uint240[${string}]`]: undefined;
                        [key: `uint248[${string}]`]: undefined;
                        [key: `uint256[${string}]`]: undefined;
                    }
                    | Record<string, unknown>,
                primaryType extends string
                | number
                | symbol = keyof typedData,
            >(
                parameters: TypedDataDefinition<typedData, primaryType>,
            ) => Promise<`0x${string}`>;
            type: "evm-server";
        },
    >

    A promise that resolves to the account.

             const account = await cdp.evm.getAccount({
    address: "0x1234567890123456789012345678901234567890",
    });
             const account = await cdp.evm.getAccount({
    name: "MyAccount",
    });
  • Gets a CDP EVM smart account.

    Parameters

    • options: GetSmartAccountOptions

      Parameters for getting the smart account.

      Options for getting an EVM smart account.

      • address: `0x${string}`

        The address of the account.

      • owner: EvmAccount

        The owner of the account.

    Returns Promise<EvmSmartAccount>

    A promise that resolves to the smart account.

    const smartAccount = await cdp.evm.getSmartAccount({
    address: "0x1234567890123456789012345678901234567890",
    owner: account,
    });
  • Gets a user operation for a smart account by user operation hash.

    Parameters

    • options: GetUserOperationOptions

      Parameters for getting the user operation.

      Options for getting a user operation.

      • smartAccount: EvmSmartAccount

        The smart account.

      • userOpHash: `0x${string}`

        The user operation hash.

    Returns Promise<UserOperation>

    A promise that resolves to the user operation.

    const userOp = await cdp.evm.getUserOperation({
    smartAccount,
    userOpHash: "0x1234567890123456789012345678901234567890123456789012345678901234",
    });
  • Lists CDP EVM accounts.

    Parameters

    • Optionaloptions: ListServerAccountsOptions = {}

      Optional parameters for listing the accounts.

      Options for listing EVM accounts.

      • OptionalpageSize?: number

        The page size to paginate through the accounts.

      • OptionalpageToken?: string

        The page token to paginate through the accounts.

    Returns Promise<ListServerAccountResult>

    A promise that resolves to an array of accounts, and a token to paginate through the accounts.

    const accounts = await cdp.evm.listAccounts();
    
             let page = await cdp.evm.listAccounts();

    while (page.nextPageToken) {
    page = await cdp.evm.listAccounts({ pageToken: page.nextPageToken });
    }
  • Lists CDP EVM smart accounts.

    Parameters

    • options: ListSmartAccountsOptions = {}

      Parameters for listing the smart accounts.

      Options for listing EVM smart accounts.

      • Optionalname?: string

        The name of the account.

      • OptionalpageSize?: number

        The page size to paginate through the accounts.

      • OptionalpageToken?: string

        The page token to paginate through the accounts.

    Returns Promise<ListSmartAccountResult>

    A promise that resolves to an array of smart accounts, and a token to paginate through the smart accounts.

    const smartAccounts = await cdp.evm.listSmartAccounts();
    
             let page = await cdp.evm.listSmartAccounts();

    while (page.nextPageToken) {
    page = await cdp.evm.listSmartAccounts({ pageToken: page.nextPageToken });
  • Lists CDP EVM token balances.

    Parameters

    • options: ListTokenBalancesOptions

      Parameters for listing the token balances.

      Options for listing EVM token balances.

      • address: `0x${string}`

        The address of the account.

      • network: ListEvmTokenBalancesNetwork

        The network.

      • OptionalpageSize?: number

        The page size to paginate through the token balances.

      • OptionalpageToken?: string

        The page token to paginate through the token balances.

    Returns Promise<ListTokenBalancesResult>

    A promise that resolves to an array of token balances, and a token to paginate through the token balances.

    const tokenBalances = await cdp.evm.listTokenBalances({
    address: "0x1234567890123456789012345678901234567890",
    network: "base-sepolia",
    });

    With pagination

    let page = await cdp.evm.listTokenBalances({
    address: "0x1234567890123456789012345678901234567890",
    network: "base-sepolia",
    });

    while (page.nextPageToken) {
    page = await cdp.evm.listTokenBalances({
    address: "0x1234567890123456789012345678901234567890",
    network: "base-sepolia",
    pageToken: page.nextPageToken,
    });
  • Prepares a user operation for a smart account.

    Parameters

    • options: PrepareUserOperationOptions

      Parameters for preparing the user operation.

      Options for preparing a user operation.

      • calls: readonly { data: `0x${string}`; to: `0x${string}`; value: bigint }[]

        The calls.

      • network: EvmUserOperationNetwork

        The network.

      • OptionalpaymasterUrl?: string

        The paymaster URL.

      • smartAccount: EvmSmartAccount

        The smart account.

    Returns Promise<UserOperation>

    A promise that resolves to the user operation hash.

    const userOp = await cdp.evm.prepareUserOperation({
    smartAccount,
    network: "base-sepolia",
    calls: [
    {
    to: "0x1234567890123456789012345678901234567890",
    value: parseEther("0.000001"),
    data: "0x",
    },
    ],
    });
  • Requests funds from an EVM faucet.

    Parameters

    • options: RequestFaucetOptions

      Parameters for requesting funds from the EVM faucet.

      Options for requesting funds from an EVM faucet.

      • address: string

        The address of the account.

      • OptionalidempotencyKey?: string

        The idempotency key.

      • network: "base-sepolia" | "ethereum-sepolia"

        The network to request funds from.

      • token: "eth" | "usdc" | "eurc" | "cbbtc"

        The token to request funds for.

    Returns Promise<RequestFaucetResult>

    A promise that resolves to the transaction hash.

    const result = await cdp.evm.requestFaucet({
    address: "0x1234567890123456789012345678901234567890",
    network: "base-sepolia",
    token: "eth",
    });
  • Signs an EVM transaction and sends it to the specified network using the Coinbase API. This method handles nonce management and gas estimation automatically.

    Parameters

    Returns Promise<TransactionResult>

    A promise that resolves to the transaction hash.

    Sending an RLP-encoded transaction

    import { parseEther, serializeTransaction } from "viem";
    import { baseSepolia } from "viem/chains";

    const { transactionHash } = await cdp.evm.sendTransaction({
    address: account.address,
    transaction: serializeTransaction({
    to: "0x4252e0c9A3da5A2700e7d91cb50aEf522D0C6Fe8",
    value: parseEther("0.000001"),
    chainId: baseSepolia.id,
    // Fields below are optional, CDP API will populate them if omitted.
    // nonce
    // maxPriorityFeePerGas
    // maxFeePerGas
    // gas
    }),
    network: "base-sepolia",
    });

    Sending an EIP-1559 transaction request object

    const { transactionHash } = await cdp.evm.sendTransaction({
    address: account.address,
    transaction: {
    to: "0x4252e0c9A3da5A2700e7d91cb50aEf522D0C6Fe8",
    value: parseEther("0.000001"),
    // Fields below are optional, CDP API will populate them if omitted.
    // nonce
    // maxPriorityFeePerGas
    // maxFeePerGas
    // gas
    },
    network: "base-sepolia",
    });
  • Sends a user operation.

    Parameters

    • options: SendUserOperationOptions

      Parameters for sending the user operation.

      Options for sending a user operation.

      • calls: Call[]

        The calls.

      • OptionalidempotencyKey?: string

        The idempotency key.

      • network: EvmUserOperationNetwork

        The network.

      • OptionalpaymasterUrl?: string

        The paymaster URL.

      • smartAccount: EvmSmartAccount

        The smart account.

    Returns Promise<SendUserOperationReturnType>

    A promise that resolves to an object containing the smart account address, the user operation hash, and the status of the user operation.

    const userOp = await cdp.evm.sendUserOperation({
    smartAccount,
    network: "base-sepolia",
    calls: [
    {
    to: "0x1234567890123456789012345678901234567890",
    value: parseEther("0.000001"),
    data: "0x",
    },
    ],
    });
  • Signs an EVM hash.

    Parameters

    • options: SignHashOptions

      Parameters for signing the hash.

      Options for signing an EVM hash.

      • address: `0x${string}`

        The address of the account.

      • hash: `0x${string}`

        The hash to sign.

      • OptionalidempotencyKey?: string

        The idempotency key.

    Returns Promise<SignatureResult>

    A promise that resolves to the signature.

    // Create a new EVM server account to sign with
    const ethAccount = await cdp.createEvmServerAccount({});

    const signature = await cdp.evm.signHash({
    address: ethAccount.address,
    hash: "0x1234567890123456789012345678901234567890123456789012345678901234",
    });
  • Signs an EVM message.

    Parameters

    • options: SignMessageOptions

      Parameters for signing the message.

      Options for signing an EVM message.

      • address: `0x${string}`

        The address of the account.

      • OptionalidempotencyKey?: string

        The idempotency key.

      • message: string

        The message to sign.

    Returns Promise<SignatureResult>

    A promise that resolves to the signature.

    // Create a new EVM server account to sign with
    const ethAccount = await cdp.createEvmServerAccount({});

    const signature = await cdp.evm.signMessage({
    address: ethAccount.address,
    message: "Hello, world!",
    });
  • Signs an EVM transaction.

    Parameters

    Returns Promise<SignatureResult>

    A promise that resolves to the signature.

    import { parseEther, serializeTransaction } from "viem";
    import { baseSepolia } from "viem/chains";

    // Create a new EVM server account to sign with
    const ethAccount = await cdp.createEvmServerAccount({});

    const serializedTx = serializeTransaction(
    {
    chainId: baseSepolia.id,
    data: "0x",
    to: "0x4252e0c9A3da5A2700e7d91cb50aEf522D0C6Fe8",
    type: "eip1559",
    value: parseEther("0.000001"),
    },
    );

    const signature = await cdp.evm.signTransaction({
    address: ethAccount.address,
    transaction: serializedTx,
    });
  • Waits for a user operation to complete or fail.

    Parameters

    • options: WaitForUserOperationOptions

      Parameters for waiting for the user operation.

      Options for waiting for a user operation.

      • smartAccountAddress: `0x${string}`

        The smart account address.

      • userOpHash: `0x${string}`

        The user operation hash.

      • OptionalwaitOptions?: WaitOptions

        The wait options.

    Returns Promise<WaitForUserOperationReturnType>

    A promise that resolves to the transaction receipt.

    // Send a user operation and get the user operation hash
    const { userOpHash } = await cdp.evm.sendUserOperation({
    smartAccount,
    network: "base-sepolia",
    calls: [
    {
    to: "0x0000000000000000000000000000000000000000",
    value: parseEther("0.000001"),
    data: "0x",
    },
    ],
    });

    // Wait for the user operation to complete or fail
    const result = await cdp.evm.waitForUserOperation({
    smartAccountAddress: smartAccount.address,
    userOpHash: userOp.userOpHash,
    });