> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cdp.coinbase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# EvmSmartAccountsClient

> EvmSmartAccountsClient API reference.

Package: [`com.coinbase.cdp.resources.evmsmartaccounts`](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/index)

```java theme={null}
public class EvmSmartAccountsClient extends Object
```

## Constructor Details

### `EvmSmartAccountsClient`

```java theme={null}
public EvmSmartAccountsClient(ClientOptions clientOptions)
```

**Parameters:**

`clientOptions` - [ClientOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/ClientOptions)

## Method Details

### `withRawResponse`

```java theme={null}
public WithRawResponseEvmSmartAccountsClient withRawResponse()
```

Get responses with HTTP metadata like headers

**Returns:**

[WithRawResponseEvmSmartAccountsClient](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/WithRawResponseEvmSmartAccountsClient)

### `listEvmSmartAccounts`

**Overload 1**

```java theme={null}
public ListEvmSmartAccountsResponse listEvmSmartAccounts()
```

Lists the Smart Accounts belonging to the developer's CDP Project. The response is paginated, and by default, returns 20 accounts per page.

**Returns:**

[ListEvmSmartAccountsResponse](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/types/ListEvmSmartAccountsResponse)

**Overload 2**

```java theme={null}
public ListEvmSmartAccountsResponse listEvmSmartAccounts(ListEvmSmartAccountsRequest request)
```

Lists the Smart Accounts belonging to the developer's CDP Project. The response is paginated, and by default, returns 20 accounts per page.

**Parameters:**

`request` - [ListEvmSmartAccountsRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/ListEvmSmartAccountsRequest)

**Returns:**

[ListEvmSmartAccountsResponse](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/types/ListEvmSmartAccountsResponse)

**Overload 3**

```java theme={null}
public ListEvmSmartAccountsResponse listEvmSmartAccounts(RequestOptions requestOptions)
```

Lists the Smart Accounts belonging to the developer's CDP Project. The response is paginated, and by default, returns 20 accounts per page.

**Parameters:**

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[ListEvmSmartAccountsResponse](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/types/ListEvmSmartAccountsResponse)

**Overload 4**

```java theme={null}
public ListEvmSmartAccountsResponse listEvmSmartAccounts(ListEvmSmartAccountsRequest request, RequestOptions requestOptions)
```

Lists the Smart Accounts belonging to the developer's CDP Project. The response is paginated, and by default, returns 20 accounts per page.

**Parameters:**

`request` - [ListEvmSmartAccountsRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/ListEvmSmartAccountsRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[ListEvmSmartAccountsResponse](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/types/ListEvmSmartAccountsResponse)

### `createEvmSmartAccount`

**Overload 1**

```java theme={null}
public EvmSmartAccount createEvmSmartAccount(CreateEvmSmartAccountRequest request)
```

Creates a new Smart Account.

**Parameters:**

`request` - [CreateEvmSmartAccountRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/CreateEvmSmartAccountRequest)

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

**Overload 2**

```java theme={null}
public EvmSmartAccount createEvmSmartAccount(CreateEvmSmartAccountRequest request, RequestOptions requestOptions)
```

Creates a new Smart Account.

**Parameters:**

`request` - [CreateEvmSmartAccountRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/CreateEvmSmartAccountRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

### `getEvmSmartAccountByName`

**Overload 1**

```java theme={null}
public EvmSmartAccount getEvmSmartAccountByName(String name)
```

Gets a Smart Account by its name.

**Parameters:**

`name` - `String`

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

**Overload 2**

```java theme={null}
public EvmSmartAccount getEvmSmartAccountByName(String name, GetEvmSmartAccountByNameRequest request)
```

Gets a Smart Account by its name.

**Parameters:**

`name` - `String`

`request` - [GetEvmSmartAccountByNameRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/GetEvmSmartAccountByNameRequest)

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

**Overload 3**

```java theme={null}
public EvmSmartAccount getEvmSmartAccountByName(String name, RequestOptions requestOptions)
```

Gets a Smart Account by its name.

**Parameters:**

`name` - `String`

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

**Overload 4**

```java theme={null}
public EvmSmartAccount getEvmSmartAccountByName(String name, GetEvmSmartAccountByNameRequest request, RequestOptions requestOptions)
```

Gets a Smart Account by its name.

**Parameters:**

`name` - `String`

`request` - [GetEvmSmartAccountByNameRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/GetEvmSmartAccountByNameRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

### `getEvmSmartAccount`

**Overload 1**

```java theme={null}
public EvmSmartAccount getEvmSmartAccount(String address)
```

Gets a Smart Account by its address.

**Parameters:**

`address` - `String`

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

**Overload 2**

```java theme={null}
public EvmSmartAccount getEvmSmartAccount(String address, GetEvmSmartAccountRequest request)
```

Gets a Smart Account by its address.

**Parameters:**

`address` - `String`

`request` - [GetEvmSmartAccountRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/GetEvmSmartAccountRequest)

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

**Overload 3**

```java theme={null}
public EvmSmartAccount getEvmSmartAccount(String address, RequestOptions requestOptions)
```

Gets a Smart Account by its address.

**Parameters:**

`address` - `String`

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

**Overload 4**

```java theme={null}
public EvmSmartAccount getEvmSmartAccount(String address, GetEvmSmartAccountRequest request, RequestOptions requestOptions)
```

Gets a Smart Account by its address.

**Parameters:**

`address` - `String`

`request` - [GetEvmSmartAccountRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/GetEvmSmartAccountRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

### `updateEvmSmartAccount`

**Overload 1**

```java theme={null}
public EvmSmartAccount updateEvmSmartAccount(String address)
```

Updates an existing EVM smart account. Use this to update the smart account's name.

**Parameters:**

`address` - `String`

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

**Overload 2**

```java theme={null}
public EvmSmartAccount updateEvmSmartAccount(String address, RequestOptions requestOptions)
```

Updates an existing EVM smart account. Use this to update the smart account's name.

**Parameters:**

`address` - `String`

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

**Overload 3**

```java theme={null}
public EvmSmartAccount updateEvmSmartAccount(String address, UpdateEvmSmartAccountRequest request)
```

Updates an existing EVM smart account. Use this to update the smart account's name.

**Parameters:**

`address` - `String`

`request` - [UpdateEvmSmartAccountRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/UpdateEvmSmartAccountRequest)

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

**Overload 4**

```java theme={null}
public EvmSmartAccount updateEvmSmartAccount(String address, UpdateEvmSmartAccountRequest request, RequestOptions requestOptions)
```

Updates an existing EVM smart account. Use this to update the smart account's name.

**Parameters:**

`address` - `String`

`request` - [UpdateEvmSmartAccountRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/UpdateEvmSmartAccountRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmSmartAccount)

### `prepareUserOperation`

**Overload 1**

```java theme={null}
public EvmUserOperation prepareUserOperation(String address, PrepareUserOperationRequest request)
```

Prepares a new user operation on a Smart Account for a specific network.

**Parameters:**

`address` - `String`

`request` - [PrepareUserOperationRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/PrepareUserOperationRequest)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

**Overload 2**

```java theme={null}
public EvmUserOperation prepareUserOperation(String address, PrepareUserOperationRequest request, RequestOptions requestOptions)
```

Prepares a new user operation on a Smart Account for a specific network.

**Parameters:**

`address` - `String`

`request` - [PrepareUserOperationRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/PrepareUserOperationRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

### `prepareAndSendUserOperation`

**Overload 1**

```java theme={null}
public EvmUserOperation prepareAndSendUserOperation(String address, PrepareAndSendUserOperationRequest request)
```

Prepares, signs, and sends a user operation for an EVM Smart Account. This API can be used only if the owner on Smart Account is a CDP EVM Account.

**Parameters:**

`address` - `String`

`request` - [PrepareAndSendUserOperationRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/PrepareAndSendUserOperationRequest)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

**Overload 2**

```java theme={null}
public EvmUserOperation prepareAndSendUserOperation(String address, PrepareAndSendUserOperationRequest request, RequestOptions requestOptions)
```

Prepares, signs, and sends a user operation for an EVM Smart Account. This API can be used only if the owner on Smart Account is a CDP EVM Account.

**Parameters:**

`address` - `String`

`request` - [PrepareAndSendUserOperationRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/PrepareAndSendUserOperationRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

### `getUserOperation`

**Overload 1**

```java theme={null}
public EvmUserOperation getUserOperation(String address, String userOpHash)
```

Gets a user operation by its hash.

**Parameters:**

`address` - `String`

`userOpHash` - `String`

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

**Overload 2**

```java theme={null}
public EvmUserOperation getUserOperation(String address, String userOpHash, GetUserOperationRequest request)
```

Gets a user operation by its hash.

**Parameters:**

`address` - `String`

`userOpHash` - `String`

`request` - [GetUserOperationRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/GetUserOperationRequest)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

**Overload 3**

```java theme={null}
public EvmUserOperation getUserOperation(String address, String userOpHash, RequestOptions requestOptions)
```

Gets a user operation by its hash.

**Parameters:**

`address` - `String`

`userOpHash` - `String`

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

**Overload 4**

```java theme={null}
public EvmUserOperation getUserOperation(String address, String userOpHash, GetUserOperationRequest request, RequestOptions requestOptions)
```

Gets a user operation by its hash.

**Parameters:**

`address` - `String`

`userOpHash` - `String`

`request` - [GetUserOperationRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/GetUserOperationRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

### `sendUserOperation`

**Overload 1**

```java theme={null}
public EvmUserOperation sendUserOperation(String address, String userOpHash, SendUserOperationRequest request)
```

Sends a user operation with a signature. The payload to sign must be the `userOpHash` field of the user operation. This hash should be signed directly (not using `personal_sign` or EIP-191 message hashing). The signature must be 65 bytes in length, consisting of: - 32 bytes for the `r` value - 32 bytes for the `s` value - 1 byte for the `v` value (must be 27 or 28) If using the CDP Paymaster, the user operation must be signed and sent within 2 minutes of being prepared.

**Parameters:**

`address` - `String`

`userOpHash` - `String`

`request` - [SendUserOperationRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/SendUserOperationRequest)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

**Overload 2**

```java theme={null}
public EvmUserOperation sendUserOperation(String address, String userOpHash, SendUserOperationRequest request, RequestOptions requestOptions)
```

Sends a user operation with a signature. The payload to sign must be the `userOpHash` field of the user operation. This hash should be signed directly (not using `personal_sign` or EIP-191 message hashing). The signature must be 65 bytes in length, consisting of: - 32 bytes for the `r` value - 32 bytes for the `s` value - 1 byte for the `v` value (must be 27 or 28) If using the CDP Paymaster, the user operation must be signed and sent within 2 minutes of being prepared.

**Parameters:**

`address` - `String`

`userOpHash` - `String`

`request` - [SendUserOperationRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/SendUserOperationRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

### `createSpendPermission`

**Overload 1**

```java theme={null}
public EvmUserOperation createSpendPermission(String address, CreateSpendPermissionRequest request)
```

Creates a spend permission for the given smart account address.

**Parameters:**

`address` - `String`

`request` - [CreateSpendPermissionRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/CreateSpendPermissionRequest)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

**Overload 2**

```java theme={null}
public EvmUserOperation createSpendPermission(String address, CreateSpendPermissionRequest request, RequestOptions requestOptions)
```

Creates a spend permission for the given smart account address.

**Parameters:**

`address` - `String`

`request` - [CreateSpendPermissionRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/CreateSpendPermissionRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

### `listSpendPermissions`

**Overload 1**

```java theme={null}
public ListSpendPermissionsResponse listSpendPermissions(String address)
```

Lists spend permission for the given smart account address.

**Parameters:**

`address` - `String`

**Returns:**

[ListSpendPermissionsResponse](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/types/ListSpendPermissionsResponse)

**Overload 2**

```java theme={null}
public ListSpendPermissionsResponse listSpendPermissions(String address, ListSpendPermissionsRequest request)
```

Lists spend permission for the given smart account address.

**Parameters:**

`address` - `String`

`request` - [ListSpendPermissionsRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/ListSpendPermissionsRequest)

**Returns:**

[ListSpendPermissionsResponse](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/types/ListSpendPermissionsResponse)

**Overload 3**

```java theme={null}
public ListSpendPermissionsResponse listSpendPermissions(String address, RequestOptions requestOptions)
```

Lists spend permission for the given smart account address.

**Parameters:**

`address` - `String`

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[ListSpendPermissionsResponse](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/types/ListSpendPermissionsResponse)

**Overload 4**

```java theme={null}
public ListSpendPermissionsResponse listSpendPermissions(String address, ListSpendPermissionsRequest request, RequestOptions requestOptions)
```

Lists spend permission for the given smart account address.

**Parameters:**

`address` - `String`

`request` - [ListSpendPermissionsRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/ListSpendPermissionsRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[ListSpendPermissionsResponse](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/types/ListSpendPermissionsResponse)

### `revokeSpendPermission`

**Overload 1**

```java theme={null}
public EvmUserOperation revokeSpendPermission(String address, RevokeSpendPermissionRequest request)
```

Revokes an existing spend permission.

**Parameters:**

`address` - `String`

`request` - [RevokeSpendPermissionRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/RevokeSpendPermissionRequest)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)

**Overload 2**

```java theme={null}
public EvmUserOperation revokeSpendPermission(String address, RevokeSpendPermissionRequest request, RequestOptions requestOptions)
```

Revokes an existing spend permission.

**Parameters:**

`address` - `String`

`request` - [RevokeSpendPermissionRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/evmsmartaccounts/requests/RevokeSpendPermissionRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[EvmUserOperation](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EvmUserOperation)
