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

# CrossmintClientConfig

> Flutter Final Class

**Final Class**

Configuration for `CrossmintClient`.

```dart theme={null}
final class CrossmintClientConfig extends CrossmintApiConfig
```

Extends `CrossmintApiConfig` (the shared base shape used across all
Crossmint SDK platforms) with the Flutter-specific plug-points
`authStorage`, `logger`, `refreshRoute`, and `logoutRoute`.

```dart theme={null}
const config = CrossmintClientConfig(
  apiKey: 'YOUR_STAGING_API_KEY',
  appScheme: 'com.your.app',
);
```

Use a **client key** (`ck_*`) for frontend apps — they require `origin`
for auth. Use a **server key** (`sk_*`) only in server contexts; it needs
no origin.

## Constructors

### CrossmintClientConfig

```dart theme={null}
const CrossmintClientConfig({
  required super.apiKey,
  super.appId,
  super.appScheme,
  super.origin,
  super.overrideBaseUrl,
  super.extensionId,
  this.authStorage,
  this.logger,
  this.refreshRoute,
  this.logoutRoute,
})
```

Creates a `CrossmintClientConfig`.

## Properties

### authStorage

```dart theme={null}
final CrossmintAuthStorage? authStorage
```

Custom session / token store. When null, the SDK uses `FlutterSecureStorage` under the hood.

### logger

```dart theme={null}
final CrossmintLogger? logger
```

Custom logger sink. When null, the SDK uses a no-op logger in release and a `debugPrint`-backed logger in debug.

### refreshRoute

```dart theme={null}
final Uri? refreshRoute
```

Optional custom server endpoint for token refresh.

### logoutRoute

```dart theme={null}
final Uri? logoutRoute
```

Optional custom server endpoint for logout.
