# Configuring the Client

***ClientConfig***

Description: these are the options that can be specified in a [ChainvineClient](https://docs.chainvine.xyz/developers/sdk/broken-reference) and [ChainvineUser](https://docs.chainvine.xyz/developers/sdk/broken-reference) instance.

```typescript
import { ChainvineClient, ClientConfig } from '@chainvine/sdk/lib';

const config: ClientConfig = {
   apiKey: 'S3CR37C0D3Z',
   testMode: true,
   logToConsole: true,
}

const client = new ChainvineClient(config);
```

<table><thead><tr><th width="152">Parameter</th><th width="105">Type</th><th width="236">Description</th><th>Default</th></tr></thead><tbody><tr><td>apiKey</td><td>string</td><td>Your <a href="classes-and-functions/authentication/getting-your-api-key">ChainVine API Key</a>.<br><br>DO NOT expose this in the browser, only supply this if you are consuming the SDK on the server.</td><td>N/A<br><br>Note: If omitted, you must <a href="classes-and-functions/authentication/allow-listing-a-domain">allowlist the domain</a> you are sending requests from.</td></tr><tr><td>testMode</td><td>boolean</td><td>Setting this to true will send all traffic to ChainVine's staging environment - this should only be used for POCing and testing</td><td>false</td></tr><tr><td>logToConsole</td><td>boolean</td><td>When set to true, this will log responses and errors to console - this is useful for testing and debugging but should be set to false in production</td><td>false</td></tr><tr><td></td><td></td><td></td><td></td></tr></tbody></table>
