Skip to main content

Classes

EvmClient

Defined in: src/client/evm/evm.ts:97 The namespace containing all EVM methods.

Implements

Constructors

Constructor
Returns
EvmClient

Methods

createAccount()
Defined in: src/client/evm/evm.ts:132 Creates a new CDP EVM account.
Parameters
options?
CreateServerAccountOptions = {} Optional parameters for creating the account.
Returns
Promise<{ address: `0x${string}`; fund: (options: Omit<EvmFundOptions, "address">) => Promise<FundOperationResult>; listTokenBalances: (options: Omit<ListTokenBalancesOptions, "address">) => Promise<ListTokenBalancesResult>; name?: string; policies?: string[]; quoteFund: (options: Omit<EvmQuoteFundOptions, "address">) => Promise<EvmQuote>; quoteSwap: (options: AccountQuoteSwapOptions) => Promise<AccountQuoteSwapResult>; requestFaucet: (options: Omit<RequestFaucetOptions, "address">) => Promise<RequestFaucetResult>; sendTransaction: (options: Omit<SendTransactionOptions, "address">) => Promise<TransactionResult>; sign: (parameters: { hash: `0x${string}`; }) => Promise<`0x${string}`>; signMessage: (parameters: { message: SignableMessage; }) => Promise<`0x${string}`>; signTransaction: (transaction: TransactionSerializable) => Promise<`0x${string}`>; signTypedData: <typedData, primaryType>(parameters: TypedDataDefinition<typedData, primaryType>) => Promise<`0x${string}`>; swap: (options: AccountSwapOptions) => Promise<SendSwapTransactionResult>; transfer: (options: TransferOptions) => Promise<{ transactionHash: `0x${string}`; }>; type: "evm-server"; useNetwork: <Network>(network: Network) => Promise<{ [K in string | number | symbol]: (Omit<{ address: `0x\{string\}\`; fund: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; listTokenBalances: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; name?: string; policies?: (...)\[\]; quoteFund: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; quoteSwap: (options: AccountQuoteSwapOptions) =\> Promise\<(...)\>; requestFaucet: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; sendTransaction: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; sign: (parameters: \{ hash: ... \}) =\> Promise\<(...)\>; signMessage: (parameters: \{ message: ... \}) =\> Promise\<(...)\>; signTransaction: (transaction: TransactionSerializable) =\> Promise\<(...)\>; signTypedData: (parameters: TypedDataDefinition\<(...), (...)\>) =\> Promise\<(...)\>; swap: (options: AccountSwapOptions) =\> Promise\<(...)\>; transfer: (options: TransferOptions) =\> Promise\<(...)\>; type: "evm-server"; useNetwork: \<Network extends NetworkOrRpcUrl\>(network: Network) =\> Promise\<\{ \[K in keyof (Omit\<\{ address: \`0x{string}`; sign: (parameters: { hash: `0x{string};ˋ})=Promise\<0ˋx\{string\}\`; \}) =\> Promise\<\`0x{string}`>; signMessage: (parameters: { message: SignableMessage; }) => Promise<…>; … 15 more …; useNetwork: …; }, “transfer” | … 5 more …; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<(…)>; waitForFundOperationReceipt: any }, “transfer” | “sendTransaction” | “quoteSwap” | “swap” | “useSpendPermission” | “useNetwork” | (keyof Actions)> & { [K in string | number | symbol]: ({ sendTransaction: …; transfer: …; waitForTransactionReceipt: … } & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)))[K] } & { network: Network })[K] }>; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<TransactionResult>; waitForFundOperationReceipt: Promise<WaitForFundOperationResult>; }> A promise that resolves to the newly created account.
Examples
Implementation of
createSmartAccount()
Defined in: src/client/evm/evm.ts:339 Creates a new CDP EVM smart account.
Parameters
options
CreateSmartAccountOptions Parameters for creating the smart account.
Returns
Promise<{ address: `0x${string}`; fund: (options: Omit<EvmFundOptions, "address">) => Promise<FundOperationResult>; getUserOperation: (options: Omit<GetUserOperationOptions, "smartAccount">) => Promise<UserOperation>; listTokenBalances: (options: Omit<ListTokenBalancesOptions, "address">) => Promise<ListTokenBalancesResult>; name?: string; owners: EvmAccount[]; policies: undefined | string[]; quoteFund: (options: Omit<EvmQuoteFundOptions, "address">) => Promise<EvmQuote>; quoteSwap: (options: SmartAccountQuoteSwapOptions) => Promise<SmartAccountQuoteSwapResult>; requestFaucet: (options: Omit<RequestFaucetOptions, "address">) => Promise<RequestFaucetResult>; sendUserOperation: (options: Omit<SendUserOperationOptions<unknown[]>, "smartAccount">) => Promise<SendUserOperationReturnType>; signTypedData: (options: Omit<SignTypedDataOptions, "address"> & { network: KnownEvmNetworks; }) => Promise<`0x${string}`>; swap: (options: SmartAccountSwapOptions) => Promise<SmartAccountSwapResult>; transfer: (options: SmartAccountTransferOptions) => Promise<SendUserOperationReturnType>; type: "evm-smart"; useNetwork: <Network>(network: Network) => Promise<{ [K in string | number | symbol]: (Omit<EvmSmartAccountProperties, “useNetwork”> & { [K in string | number | symbol]: ({ getUserOperation: …; sendUserOperation: …; waitForUserOperation: … } & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)))[K] } & { network: Network })[K] }>; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<SendUserOperationReturnType>; waitForUserOperation: (options: Omit<WaitForUserOperationOptions, "smartAccountAddress">) => Promise<WaitForUserOperationReturnType>; waitForFundOperationReceipt: Promise<WaitForFundOperationResult>; }> A promise that resolves to the newly created smart account.
Examples
Implementation of
createSpendPermission()
Defined in: src/client/evm/evm.ts:365 Creates a spend permission for a smart account.
Parameters
options
CreateSpendPermissionOptions Parameters for creating the spend permission.
Returns
Promise<UserOperation> A promise that resolves to the spend permission.
Example
createSwapQuote()
Defined in: src/client/evm/evm.ts:658 Creates a quote for a swap between two tokens on an EVM network.
Parameters
options
CreateSwapQuoteOptions The options for creating a swap quote.
Returns
Promise< | CreateSwapQuoteResult | SwapUnavailableResult> A promise that resolves to the swap quote result or a response indicating that liquidity is unavailable.
Example
Implementation of
exportAccount()
Defined in: src/client/evm/evm.ts:259 Exports a CDP EVM account’s private key. It is important to store the private key in a secure place after it’s exported.
Parameters
options
ExportServerAccountOptions Parameters for exporting the account.
Returns
Promise<string> A promise that resolves to the exported account’s 32-byte private key as a hex string, without the “0x” prefix.
Examples
Implementation of
getAccount()
Defined in: src/client/evm/evm.ts:476 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.
Returns
Promise<{ address: `0x${string}`; fund: (options: Omit<EvmFundOptions, "address">) => Promise<FundOperationResult>; listTokenBalances: (options: Omit<ListTokenBalancesOptions, "address">) => Promise<ListTokenBalancesResult>; name?: string; policies?: string[]; quoteFund: (options: Omit<EvmQuoteFundOptions, "address">) => Promise<EvmQuote>; quoteSwap: (options: AccountQuoteSwapOptions) => Promise<AccountQuoteSwapResult>; requestFaucet: (options: Omit<RequestFaucetOptions, "address">) => Promise<RequestFaucetResult>; sendTransaction: (options: Omit<SendTransactionOptions, "address">) => Promise<TransactionResult>; sign: (parameters: { hash: `0x${string}`; }) => Promise<`0x${string}`>; signMessage: (parameters: { message: SignableMessage; }) => Promise<`0x${string}`>; signTransaction: (transaction: TransactionSerializable) => Promise<`0x${string}`>; signTypedData: <typedData, primaryType>(parameters: TypedDataDefinition<typedData, primaryType>) => Promise<`0x${string}`>; swap: (options: AccountSwapOptions) => Promise<SendSwapTransactionResult>; transfer: (options: TransferOptions) => Promise<{ transactionHash: `0x${string}`; }>; type: "evm-server"; useNetwork: <Network>(network: Network) => Promise<{ [K in string | number | symbol]: (Omit<{ address: `0x\{string\}\`; fund: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; listTokenBalances: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; name?: string; policies?: (...)\[\]; quoteFund: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; quoteSwap: (options: AccountQuoteSwapOptions) =\> Promise\<(...)\>; requestFaucet: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; sendTransaction: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; sign: (parameters: \{ hash: ... \}) =\> Promise\<(...)\>; signMessage: (parameters: \{ message: ... \}) =\> Promise\<(...)\>; signTransaction: (transaction: TransactionSerializable) =\> Promise\<(...)\>; signTypedData: (parameters: TypedDataDefinition\<(...), (...)\>) =\> Promise\<(...)\>; swap: (options: AccountSwapOptions) =\> Promise\<(...)\>; transfer: (options: TransferOptions) =\> Promise\<(...)\>; type: "evm-server"; useNetwork: \<Network extends NetworkOrRpcUrl\>(network: Network) =\> Promise\<\{ \[K in keyof (Omit\<\{ address: \`0x{string}`; sign: (parameters: { hash: `0x{string};ˋ})=Promise\<0ˋx\{string\}\`; \}) =\> Promise\<\`0x{string}`>; signMessage: (parameters: { message: SignableMessage; }) => Promise<…>; … 15 more …; useNetwork: …; }, “transfer” | … 5 more …; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<(…)>; waitForFundOperationReceipt: any }, “transfer” | “sendTransaction” | “quoteSwap” | “swap” | “useSpendPermission” | “useNetwork” | (keyof Actions)> & { [K in string | number | symbol]: ({ sendTransaction: …; transfer: …; waitForTransactionReceipt: … } & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)))[K] } & { network: Network })[K] }>; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<TransactionResult>; waitForFundOperationReceipt: Promise<WaitForFundOperationResult>; }> A promise that resolves to the account.
Examples
Implementation of
getOrCreateAccount()
Defined in: src/client/evm/evm.ts:530 Gets a CDP EVM account, or creates one if it doesn’t exist.
Parameters
options
GetOrCreateServerAccountOptions Parameters for getting or creating the account.
Returns
Promise<{ address: `0x${string}`; fund: (options: Omit<EvmFundOptions, "address">) => Promise<FundOperationResult>; listTokenBalances: (options: Omit<ListTokenBalancesOptions, "address">) => Promise<ListTokenBalancesResult>; name?: string; policies?: string[]; quoteFund: (options: Omit<EvmQuoteFundOptions, "address">) => Promise<EvmQuote>; quoteSwap: (options: AccountQuoteSwapOptions) => Promise<AccountQuoteSwapResult>; requestFaucet: (options: Omit<RequestFaucetOptions, "address">) => Promise<RequestFaucetResult>; sendTransaction: (options: Omit<SendTransactionOptions, "address">) => Promise<TransactionResult>; sign: (parameters: { hash: `0x${string}`; }) => Promise<`0x${string}`>; signMessage: (parameters: { message: SignableMessage; }) => Promise<`0x${string}`>; signTransaction: (transaction: TransactionSerializable) => Promise<`0x${string}`>; signTypedData: <typedData, primaryType>(parameters: TypedDataDefinition<typedData, primaryType>) => Promise<`0x${string}`>; swap: (options: AccountSwapOptions) => Promise<SendSwapTransactionResult>; transfer: (options: TransferOptions) => Promise<{ transactionHash: `0x${string}`; }>; type: "evm-server"; useNetwork: <Network>(network: Network) => Promise<{ [K in string | number | symbol]: (Omit<{ address: `0x\{string\}\`; fund: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; listTokenBalances: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; name?: string; policies?: (...)\[\]; quoteFund: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; quoteSwap: (options: AccountQuoteSwapOptions) =\> Promise\<(...)\>; requestFaucet: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; sendTransaction: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; sign: (parameters: \{ hash: ... \}) =\> Promise\<(...)\>; signMessage: (parameters: \{ message: ... \}) =\> Promise\<(...)\>; signTransaction: (transaction: TransactionSerializable) =\> Promise\<(...)\>; signTypedData: (parameters: TypedDataDefinition\<(...), (...)\>) =\> Promise\<(...)\>; swap: (options: AccountSwapOptions) =\> Promise\<(...)\>; transfer: (options: TransferOptions) =\> Promise\<(...)\>; type: "evm-server"; useNetwork: \<Network extends NetworkOrRpcUrl\>(network: Network) =\> Promise\<\{ \[K in keyof (Omit\<\{ address: \`0x{string}`; sign: (parameters: { hash: `0x{string};ˋ})=Promise\<0ˋx\{string\}\`; \}) =\> Promise\<\`0x{string}`>; signMessage: (parameters: { message: SignableMessage; }) => Promise<…>; … 15 more …; useNetwork: …; }, “transfer” | … 5 more …; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<(…)>; waitForFundOperationReceipt: any }, “transfer” | “sendTransaction” | “quoteSwap” | “swap” | “useSpendPermission” | “useNetwork” | (keyof Actions)> & { [K in string | number | symbol]: ({ sendTransaction: …; transfer: …; waitForTransactionReceipt: … } & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)))[K] } & { network: Network })[K] }>; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<TransactionResult>; waitForFundOperationReceipt: Promise<WaitForFundOperationResult>; }> A promise that resolves to the account.
Example
Implementation of
getOrCreateSmartAccount()
Defined in: src/client/evm/evm.ts:579 Gets a CDP EVM smart account, or creates one if it doesn’t exist. This method first attempts to retrieve an existing smart account with the given parameters. If no account exists, it creates a new one with the specified owner.
Parameters
options
GetOrCreateSmartAccountOptions Configuration options for getting or creating the smart account.
Returns
Promise<{ address: `0x${string}`; fund: (options: Omit<EvmFundOptions, "address">) => Promise<FundOperationResult>; getUserOperation: (options: Omit<GetUserOperationOptions, "smartAccount">) => Promise<UserOperation>; listTokenBalances: (options: Omit<ListTokenBalancesOptions, "address">) => Promise<ListTokenBalancesResult>; name?: string; owners: EvmAccount[]; policies: undefined | string[]; quoteFund: (options: Omit<EvmQuoteFundOptions, "address">) => Promise<EvmQuote>; quoteSwap: (options: SmartAccountQuoteSwapOptions) => Promise<SmartAccountQuoteSwapResult>; requestFaucet: (options: Omit<RequestFaucetOptions, "address">) => Promise<RequestFaucetResult>; sendUserOperation: (options: Omit<SendUserOperationOptions<unknown[]>, "smartAccount">) => Promise<SendUserOperationReturnType>; signTypedData: (options: Omit<SignTypedDataOptions, "address"> & { network: KnownEvmNetworks; }) => Promise<`0x${string}`>; swap: (options: SmartAccountSwapOptions) => Promise<SmartAccountSwapResult>; transfer: (options: SmartAccountTransferOptions) => Promise<SendUserOperationReturnType>; type: "evm-smart"; useNetwork: <Network>(network: Network) => Promise<{ [K in string | number | symbol]: (Omit<EvmSmartAccountProperties, “useNetwork”> & { [K in string | number | symbol]: ({ getUserOperation: …; sendUserOperation: …; waitForUserOperation: … } & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)))[K] } & { network: Network })[K] }>; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<SendUserOperationReturnType>; waitForUserOperation: (options: Omit<WaitForUserOperationOptions, "smartAccountAddress">) => Promise<WaitForUserOperationReturnType>; waitForFundOperationReceipt: Promise<WaitForFundOperationResult>; }> A promise that resolves to the retrieved or newly created smart account.
Example
getSmartAccount()
Defined in: src/client/evm/evm.ts:507 Gets a CDP EVM smart account.
Parameters
options
GetSmartAccountOptions Parameters for getting the smart account. Either address or name must be provided. If both are provided, lookup will be done by address and name will be ignored.
Returns
Promise<{ address: `0x${string}`; fund: (options: Omit<EvmFundOptions, "address">) => Promise<FundOperationResult>; getUserOperation: (options: Omit<GetUserOperationOptions, "smartAccount">) => Promise<UserOperation>; listTokenBalances: (options: Omit<ListTokenBalancesOptions, "address">) => Promise<ListTokenBalancesResult>; name?: string; owners: EvmAccount[]; policies: undefined | string[]; quoteFund: (options: Omit<EvmQuoteFundOptions, "address">) => Promise<EvmQuote>; quoteSwap: (options: SmartAccountQuoteSwapOptions) => Promise<SmartAccountQuoteSwapResult>; requestFaucet: (options: Omit<RequestFaucetOptions, "address">) => Promise<RequestFaucetResult>; sendUserOperation: (options: Omit<SendUserOperationOptions<unknown[]>, "smartAccount">) => Promise<SendUserOperationReturnType>; signTypedData: (options: Omit<SignTypedDataOptions, "address"> & { network: KnownEvmNetworks; }) => Promise<`0x${string}`>; swap: (options: SmartAccountSwapOptions) => Promise<SmartAccountSwapResult>; transfer: (options: SmartAccountTransferOptions) => Promise<SendUserOperationReturnType>; type: "evm-smart"; useNetwork: <Network>(network: Network) => Promise<{ [K in string | number | symbol]: (Omit<EvmSmartAccountProperties, “useNetwork”> & { [K in string | number | symbol]: ({ getUserOperation: …; sendUserOperation: …; waitForUserOperation: … } & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)))[K] } & { network: Network })[K] }>; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<SendUserOperationReturnType>; waitForUserOperation: (options: Omit<WaitForUserOperationOptions, "smartAccountAddress">) => Promise<WaitForUserOperationReturnType>; waitForFundOperationReceipt: Promise<WaitForFundOperationResult>; }> A promise that resolves to the smart account.
Example
Implementation of
getSwapPrice()
Defined in: src/client/evm/evm.ts:627 Gets the price for a swap between two tokens on an EVM network.
Parameters
options
GetSwapPriceOptions The options for getting a swap price.
Returns
Promise< | SwapUnavailableResult | GetSwapPriceResult> A promise that resolves to the swap price result or a response indicating that liquidity is unavailable.
Example
Implementation of
getUserOperation()
Defined in: src/client/evm/evm.ts:688 Gets a user operation for a smart account by user operation hash.
Parameters
options
GetUserOperationOptions Parameters for getting the user operation.
Returns
Promise<UserOperation> A promise that resolves to the user operation.
Example
Implementation of
importAccount()
Defined in: src/client/evm/evm.ts:183 Imports a CDP EVM account from an external source.
Parameters
options
ImportServerAccountOptions Parameters for importing the account.
Returns
Promise<{ address: `0x${string}`; fund: (options: Omit<EvmFundOptions, "address">) => Promise<FundOperationResult>; listTokenBalances: (options: Omit<ListTokenBalancesOptions, "address">) => Promise<ListTokenBalancesResult>; name?: string; policies?: string[]; quoteFund: (options: Omit<EvmQuoteFundOptions, "address">) => Promise<EvmQuote>; quoteSwap: (options: AccountQuoteSwapOptions) => Promise<AccountQuoteSwapResult>; requestFaucet: (options: Omit<RequestFaucetOptions, "address">) => Promise<RequestFaucetResult>; sendTransaction: (options: Omit<SendTransactionOptions, "address">) => Promise<TransactionResult>; sign: (parameters: { hash: `0x${string}`; }) => Promise<`0x${string}`>; signMessage: (parameters: { message: SignableMessage; }) => Promise<`0x${string}`>; signTransaction: (transaction: TransactionSerializable) => Promise<`0x${string}`>; signTypedData: <typedData, primaryType>(parameters: TypedDataDefinition<typedData, primaryType>) => Promise<`0x${string}`>; swap: (options: AccountSwapOptions) => Promise<SendSwapTransactionResult>; transfer: (options: TransferOptions) => Promise<{ transactionHash: `0x${string}`; }>; type: "evm-server"; useNetwork: <Network>(network: Network) => Promise<{ [K in string | number | symbol]: (Omit<{ address: `0x\{string\}\`; fund: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; listTokenBalances: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; name?: string; policies?: (...)\[\]; quoteFund: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; quoteSwap: (options: AccountQuoteSwapOptions) =\> Promise\<(...)\>; requestFaucet: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; sendTransaction: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; sign: (parameters: \{ hash: ... \}) =\> Promise\<(...)\>; signMessage: (parameters: \{ message: ... \}) =\> Promise\<(...)\>; signTransaction: (transaction: TransactionSerializable) =\> Promise\<(...)\>; signTypedData: (parameters: TypedDataDefinition\<(...), (...)\>) =\> Promise\<(...)\>; swap: (options: AccountSwapOptions) =\> Promise\<(...)\>; transfer: (options: TransferOptions) =\> Promise\<(...)\>; type: "evm-server"; useNetwork: \<Network extends NetworkOrRpcUrl\>(network: Network) =\> Promise\<\{ \[K in keyof (Omit\<\{ address: \`0x{string}`; sign: (parameters: { hash: `0x{string};ˋ})=Promise\<0ˋx\{string\}\`; \}) =\> Promise\<\`0x{string}`>; signMessage: (parameters: { message: SignableMessage; }) => Promise<…>; … 15 more …; useNetwork: …; }, “transfer” | … 5 more …; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<(…)>; waitForFundOperationReceipt: any }, “transfer” | “sendTransaction” | “quoteSwap” | “swap” | “useSpendPermission” | “useNetwork” | (keyof Actions)> & { [K in string | number | symbol]: ({ sendTransaction: …; transfer: …; waitForTransactionReceipt: … } & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)))[K] } & { network: Network })[K] }>; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<TransactionResult>; waitForFundOperationReceipt: Promise<WaitForFundOperationResult>; }> A promise that resolves to the imported account.
Examples
Implementation of
listAccounts()
Defined in: src/client/evm/evm.ts:720 Lists CDP EVM accounts.
Parameters
options?
ListServerAccountsOptions = {} Optional parameters for listing the accounts.
Returns
Promise<ListServerAccountResult> A promise that resolves to an array of accounts, and a token to paginate through the accounts.
Examples
Implementation of
listSmartAccounts()
Defined in: src/client/evm/evm.ts:814 Lists CDP EVM smart accounts.
Parameters
options
ListSmartAccountsOptions = {} Parameters for listing the smart accounts.
Returns
Promise<ListSmartAccountResult> A promise that resolves to an array of smart accounts, and a token to paginate through the smart accounts.
Examples
Implementation of
listSpendPermissions()
Defined in: src/client/evm/evm.ts:845 Lists the spend permissions for a smart account.
Parameters
options
ListSpendPermissionsOptions Parameters for listing the spend permissions.
Returns
Promise<ListSpendPermissionsResult> A promise that resolves to the spend permissions.
Implementation of
listTokenBalances()
Defined in: src/client/evm/evm.ts:779 Lists CDP EVM token balances.
Parameters
options
ListTokenBalancesOptions Parameters for listing 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.
Examples
With pagination
prepareUserOperation()
Defined in: src/client/evm/evm.ts:881 Prepares a user operation for a smart account.
Parameters
options
PrepareUserOperationOptions Parameters for preparing the user operation.
Returns
Promise<UserOperation> A promise that resolves to the user operation hash.
Example
Implementation of
requestFaucet()
Defined in: src/client/evm/evm.ts:931 Requests funds from an EVM faucet.
Parameters
options
RequestFaucetOptions Parameters for requesting funds from the EVM faucet.
Returns
Promise<RequestFaucetResult> A promise that resolves to the transaction hash.
Example
Implementation of
revokeSpendPermission()
Defined in: src/client/evm/evm.ts:424 Revokes a spend permission for a smart account.
Parameters
options
RevokeSpendPermissionOptions Parameters for revoking the spend permission.
Returns
Promise<UserOperation> A promise that resolves to the user operation.
Example
sendTransaction()
Defined in: src/client/evm/evm.ts:988 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
options
SendTransactionOptions Configuration options for sending the transaction.
Returns
Promise<TransactionResult> A promise that resolves to the transaction hash.
Examples
Sending an RLP-encoded transaction
Sending an EIP-1559 transaction request object
Implementation of
sendUserOperation()
Defined in: src/client/evm/evm.ts:1027 Sends a user operation.
Parameters
options
SendUserOperationOptions<unknown[]> Parameters for sending the user operation.
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.
Example
Implementation of
signHash()
Defined in: src/client/evm/evm.ts:1067 Signs an EVM hash.
Parameters
options
SignHashOptions Parameters for signing the hash.
Returns
Promise<SignatureResult> A promise that resolves to the signature.
Example
Implementation of
signMessage()
Defined in: src/client/evm/evm.ts:1106 Signs an EIP-191 message.
Parameters
options
SignMessageOptions Parameters for signing the message.
Returns
Promise<SignatureResult> A promise that resolves to the signature.
Example
Implementation of
signTransaction()
Defined in: src/client/evm/evm.ts:1228 Signs an EVM transaction.
Parameters
options
SignTransactionOptions Configuration options for signing the transaction.
Returns
Promise<SignatureResult> A promise that resolves to the signature.
Example
Implementation of
signTypedData()
Defined in: src/client/evm/evm.ts:1169 Signs an EIP-712 message.
Parameters
options
SignTypedDataOptions Parameters for signing the EIP-712 message.
Returns
Promise<SignatureResult> A promise that resolves to the signature.
Example
Implementation of
updateAccount()
Defined in: src/client/evm/evm.ts:1287 Updates a CDP EVM account.
Parameters
options?
UpdateEvmAccountOptions Optional parameters for creating the account.
Returns
Promise<{ address: `0x${string}`; fund: (options: Omit<EvmFundOptions, "address">) => Promise<FundOperationResult>; listTokenBalances: (options: Omit<ListTokenBalancesOptions, "address">) => Promise<ListTokenBalancesResult>; name?: string; policies?: string[]; quoteFund: (options: Omit<EvmQuoteFundOptions, "address">) => Promise<EvmQuote>; quoteSwap: (options: AccountQuoteSwapOptions) => Promise<AccountQuoteSwapResult>; requestFaucet: (options: Omit<RequestFaucetOptions, "address">) => Promise<RequestFaucetResult>; sendTransaction: (options: Omit<SendTransactionOptions, "address">) => Promise<TransactionResult>; sign: (parameters: { hash: `0x${string}`; }) => Promise<`0x${string}`>; signMessage: (parameters: { message: SignableMessage; }) => Promise<`0x${string}`>; signTransaction: (transaction: TransactionSerializable) => Promise<`0x${string}`>; signTypedData: <typedData, primaryType>(parameters: TypedDataDefinition<typedData, primaryType>) => Promise<`0x${string}`>; swap: (options: AccountSwapOptions) => Promise<SendSwapTransactionResult>; transfer: (options: TransferOptions) => Promise<{ transactionHash: `0x${string}`; }>; type: "evm-server"; useNetwork: <Network>(network: Network) => Promise<{ [K in string | number | symbol]: (Omit<{ address: `0x\{string\}\`; fund: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; listTokenBalances: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; name?: string; policies?: (...)\[\]; quoteFund: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; quoteSwap: (options: AccountQuoteSwapOptions) =\> Promise\<(...)\>; requestFaucet: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; sendTransaction: (options: Omit\<(...), (...)\>) =\> Promise\<(...)\>; sign: (parameters: \{ hash: ... \}) =\> Promise\<(...)\>; signMessage: (parameters: \{ message: ... \}) =\> Promise\<(...)\>; signTransaction: (transaction: TransactionSerializable) =\> Promise\<(...)\>; signTypedData: (parameters: TypedDataDefinition\<(...), (...)\>) =\> Promise\<(...)\>; swap: (options: AccountSwapOptions) =\> Promise\<(...)\>; transfer: (options: TransferOptions) =\> Promise\<(...)\>; type: "evm-server"; useNetwork: \<Network extends NetworkOrRpcUrl\>(network: Network) =\> Promise\<\{ \[K in keyof (Omit\<\{ address: \`0x{string}`; sign: (parameters: { hash: `0x{string};ˋ})=Promise\<0ˋx\{string\}\`; \}) =\> Promise\<\`0x{string}`>; signMessage: (parameters: { message: SignableMessage; }) => Promise<…>; … 15 more …; useNetwork: …; }, “transfer” | … 5 more …; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<(…)>; waitForFundOperationReceipt: any }, “transfer” | “sendTransaction” | “quoteSwap” | “swap” | “useSpendPermission” | “useNetwork” | (keyof Actions)> & { [K in string | number | symbol]: ({ sendTransaction: …; transfer: …; waitForTransactionReceipt: … } & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)))[K] } & { network: Network })[K] }>; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<TransactionResult>; waitForFundOperationReceipt: Promise<WaitForFundOperationResult>; }> A promise that resolves to the updated account.
Examples
Implementation of
updateSmartAccount()
Defined in: src/client/evm/evm.ts:1319 Updates a CDP EVM smart account.
Parameters
options?
UpdateEvmSmartAccountOptions Optional parameters for updating the account.
Returns
Promise<{ address: `0x${string}`; fund: (options: Omit<EvmFundOptions, "address">) => Promise<FundOperationResult>; getUserOperation: (options: Omit<GetUserOperationOptions, "smartAccount">) => Promise<UserOperation>; listTokenBalances: (options: Omit<ListTokenBalancesOptions, "address">) => Promise<ListTokenBalancesResult>; name?: string; owners: EvmAccount[]; policies: undefined | string[]; quoteFund: (options: Omit<EvmQuoteFundOptions, "address">) => Promise<EvmQuote>; quoteSwap: (options: SmartAccountQuoteSwapOptions) => Promise<SmartAccountQuoteSwapResult>; requestFaucet: (options: Omit<RequestFaucetOptions, "address">) => Promise<RequestFaucetResult>; sendUserOperation: (options: Omit<SendUserOperationOptions<unknown[]>, "smartAccount">) => Promise<SendUserOperationReturnType>; signTypedData: (options: Omit<SignTypedDataOptions, "address"> & { network: KnownEvmNetworks; }) => Promise<`0x${string}`>; swap: (options: SmartAccountSwapOptions) => Promise<SmartAccountSwapResult>; transfer: (options: SmartAccountTransferOptions) => Promise<SendUserOperationReturnType>; type: "evm-smart"; useNetwork: <Network>(network: Network) => Promise<{ [K in string | number | symbol]: (Omit<EvmSmartAccountProperties, “useNetwork”> & { [K in string | number | symbol]: ({ getUserOperation: …; sendUserOperation: …; waitForUserOperation: … } & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)) & ((…) extends (…) ? (…) : (…)))[K] } & { network: Network })[K] }>; useSpendPermission: (options: UseSpendPermissionOptions) => Promise<SendUserOperationReturnType>; waitForUserOperation: (options: Omit<WaitForUserOperationOptions, "smartAccountAddress">) => Promise<WaitForUserOperationReturnType>; waitForFundOperationReceipt: Promise<WaitForFundOperationResult>; }> A promise that resolves to the updated account.
Implementation of
waitForUserOperation()
Defined in: src/client/evm/evm.ts:1372 Waits for a user operation to complete or fail.
Parameters
options
WaitForUserOperationOptions Parameters for waiting for the user operation.
Returns
Promise<WaitForUserOperationReturnType> A promise that resolves to the transaction receipt.
Example