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

# CrossmintWallets

> Flutter Final Class

**Final Class**

Stateless convenience facade for wallet operations.

```dart theme={null}
final class CrossmintWallets
```

Mirrors the `CrossmintWallets` entry point used by the TS, Kotlin, and
Swift SDKs. For reactive state management (e.g. listening to wallet changes
in a widget tree), use `CrossmintWalletController` instead.

Unlike the controller, the facade does **not** auto-resolve signer configs.
Callers must provide fully-resolved configs (e.g. include the email address
in `CrossmintEmailSignerConfig`, or pre-create a device signer via
`createDeviceSigner`). The controller's `createWallet()` auto-populates
the authenticated user's email and creates device signer keys — the facade
intentionally skips this to remain stateless.

For email/phone OTP signers, pass `onAuthRequired` to handle OTP challenges.
For device signers, pass `deviceSignerKeyStorage` to enable key creation.

## Constructors

### CrossmintWallets.from

```dart theme={null}
CrossmintWallets.from(
  this._client, {
  CrossmintSignerAuthRequiredCallback? onAuthRequired,
  DeviceSignerKeyStorage? deviceSignerKeyStorage,
})
```

Creates a `CrossmintWallets` facade backed by `client`.

## Methods

### getWallet

```dart theme={null}
Future<CrossmintRuntimeWalletBase> getWallet({
  required String chain,
  String? alias,
  List<String> plugins = const <String>[],
  CrossmintSignerConfig? recoverySigner,
})
```

Retrieves an existing wallet and returns a typed runtime wallet.

### createWallet

```dart theme={null}
Future<CrossmintRuntimeWalletBase> createWallet({
  required String chain,
  required CrossmintSignerConfig recovery,
  List<CrossmintSignerConfig> signers = const <CrossmintSignerConfig>[],
  String? owner,
  String? alias,
  List<String> plugins = const <String>[],
})
```

Creates a new wallet and returns a typed runtime wallet.

### createDeviceSigner

```dart theme={null}
Future<CrossmintDeviceSignerDescriptor> createDeviceSigner({
  DeviceSignerKeyStorage? storage,
  String? address,
})
```

Creates a device signer descriptor.

### createPasskeySigner

```dart theme={null}
Future<CrossmintPasskeySignerConfig> createPasskeySigner({
  required String name,
  required CrossmintPasskeyConfig config,
})
```

Creates a passkey signer configuration.
