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

# CdpClientBuilder

> CdpClientBuilder API reference.

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

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

## Constructor Details

### `CdpClientBuilder`

```java theme={null}
public CdpClientBuilder()
```

## Method Details

### `credentials`

```java theme={null}
public CdpClientBuilder credentials(String apiKeyId, String apiKeySecret)
```

Sets CDP API-key credentials for request-bound Bearer JWT generation.

**Parameters:**

`apiKeyId` - `String`

`apiKeySecret` - `String`

**Returns:**

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

### `walletSecret`

```java theme={null}
public CdpClientBuilder walletSecret(String walletSecret)
```

Sets the CDP Wallet Secret used for wallet-scoped requests.

**Parameters:**

`walletSecret` - `String`

**Returns:**

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

### `environment`

```java theme={null}
public CdpClientBuilder environment(Environment environment)
```

**Parameters:**

`environment` - [Environment](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/Environment)

**Returns:**

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

### `url`

```java theme={null}
public CdpClientBuilder url(String url)
```

**Parameters:**

`url` - `String`

**Returns:**

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

### `timeout`

```java theme={null}
public CdpClientBuilder timeout(int timeout)
```

Sets the timeout (in seconds) for the client. Defaults to 60 seconds.

**Parameters:**

`timeout` - `int`

**Returns:**

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

### `maxRetries`

```java theme={null}
public CdpClientBuilder maxRetries(int maxRetries)
```

Sets the maximum number of retries for the client. Defaults to 2 retries.

**Parameters:**

`maxRetries` - `int`

**Returns:**

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

### `httpClient`

```java theme={null}
public CdpClientBuilder httpClient(okhttp3.OkHttpClient httpClient)
```

Sets the underlying OkHttp client

**Parameters:**

`httpClient` - `okhttp3.OkHttpClient`

**Returns:**

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

### `addInterceptor`

```java theme={null}
public CdpClientBuilder addInterceptor(okhttp3.Interceptor interceptor)
```

Add a custom OkHttp interceptor to the client. Interceptors are applied to the OkHttpClient when the client is built. This can be used for custom request signing, logging, or other request/response modifications.

**Parameters:**

`interceptor` - `okhttp3.Interceptor`

**Returns:**

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

### `logging`

```java theme={null}
public CdpClientBuilder logging(LogConfig logging)
```

Configure logging for the SDK. Silent by default — no log output unless explicitly configured.

**Parameters:**

`logging` - [LogConfig](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/LogConfig)

**Returns:**

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

### `addHeader`

```java theme={null}
public CdpClientBuilder addHeader(String name, String value)
```

Add a custom header to be sent with all requests. For headers that need to be computed dynamically or conditionally, use the `setAdditional`() method override instead.

**Parameters:**

`name` (`String`) - The header name

`value` (`String`) - The header value

**Returns:**

[CdpClientBuilder](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/CdpClientBuilder) - This builder for method chaining

### `build`

```java theme={null}
public CdpClient build()
```

**Returns:**

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