> ## 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.

# EndUser

> EndUser API reference.

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

```java theme={null}
public final class EndUser extends Object
```

## Method Details

### `getUserId`

```java theme={null}
public String getUserId()
```

**Returns:**

`String` - A stable, unique identifier for the end user. The `userId` must be unique across all end users in the developer's CDP Project. It must be between 1 and 100 characters long and can only contain alphanumeric characters and hyphens.

### `getAuthenticationMethods`

```java theme={null}
public AuthenticationMethods getAuthenticationMethods()
```

**Returns:**

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

### `getMfaMethods`

```java theme={null}
public Optional<MfaMethods> getMfaMethods()
```

**Returns:**

`Optional`\<[MfaMethods](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/MfaMethods)>

### `getEvmAccounts`

```java theme={null}
public List<String> getEvmAccounts()
```

**Returns:**

`List<String>` - **DEPRECATED**: Use `evmAccountObjects` instead for richer account information. The list of EVM account addresses associated with the end user. End users can have up to 10 EVM accounts.

### `getEvmAccountObjects`

```java theme={null}
public List<EndUserEvmAccount> getEvmAccountObjects()
```

**Returns:**

`List`\<[EndUserEvmAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EndUserEvmAccount)> - The list of EVM accounts associated with the end user. End users can have up to 10 EVM accounts.

### `getEvmSmartAccounts`

```java theme={null}
public List<String> getEvmSmartAccounts()
```

**Returns:**

`List<String>` - **DEPRECATED**: Use `evmSmartAccountObjects` instead for richer account information including owner relationships. The list of EVM smart account addresses associated with the end user. Each EVM EOA can own one smart account.

### `getEvmSmartAccountObjects`

```java theme={null}
public List<EndUserEvmSmartAccount> getEvmSmartAccountObjects()
```

**Returns:**

`List`\<[EndUserEvmSmartAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EndUserEvmSmartAccount)> - The list of EVM smart accounts associated with the end user. Each EVM EOA can own one smart account.

### `getSolanaAccounts`

```java theme={null}
public List<String> getSolanaAccounts()
```

**Returns:**

`List<String>` - **DEPRECATED**: Use `solanaAccountObjects` instead for richer account information. The list of Solana account addresses associated with the end user. End users can have up to 10 Solana accounts.

### `getSolanaAccountObjects`

```java theme={null}
public List<EndUserSolanaAccount> getSolanaAccountObjects()
```

**Returns:**

`List`\<[EndUserSolanaAccount](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EndUserSolanaAccount)> - The list of Solana accounts associated with the end user. End users can have up to 10 Solana accounts.

### `getCreatedAt`

```java theme={null}
public OffsetDateTime getCreatedAt()
```

**Returns:**

`OffsetDateTime` - The date and time when the end user was created, in ISO 8601 format.

### `equals`

```java theme={null}
public boolean equals(Object other)
```

**Overrides:**

`[equals](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals\(java.lang.Object\) "class or interface in java.lang")` in class `[Object](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")`

**Parameters:**

`other` - `Object`

**Returns:**

`boolean`

### `getAdditionalProperties`

```java theme={null}
public Map<String,Object> getAdditionalProperties()
```

**Returns:**

`Map<String,Object>`

### `hashCode`

```java theme={null}
public int hashCode()
```

**Overrides:**

`[hashCode](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode\(\) "class or interface in java.lang")` in class `[Object](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")`

**Returns:**

`int`

### `toString`

```java theme={null}
public String toString()
```

**Overrides:**

`[toString](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString\(\) "class or interface in java.lang")` in class `[Object](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")`

**Returns:**

`String`

### `builder`

```java theme={null}
public static EndUser.UserIdStage builder()
```

**Returns:**

[EndUser](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/EndUser).`UserIdStage`
