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

# CrossmintDeviceWalletSigner

> Flutter Final Class

**Final Class**

Hardware-backed approval signer — keys live in Secure Enclave (iOS) or Android Keystore, never in Dart memory.

```dart theme={null}
final class CrossmintDeviceWalletSigner implements CrossmintWalletApprovalSigner
```

Device signers are the SDK's default **delegated** signer: low-friction,
used for day-to-day transaction approvals. They are supported on EVM and
Stellar wallets. On Solana, device signer support depends on the wallet
type and is validated server-side.

The `locator` must follow the `device:<publicKeyBase64>` format. Use
`CrossmintWalletsClient.createDeviceSigner` to register a new device
signer and get a valid locator.

## Constructors

### CrossmintDeviceWalletSigner

```dart theme={null}
CrossmintDeviceWalletSigner({
  required this.address,
  required this.locator,
  DeviceSignerKeyStorage? storage,
})
```

Creates a device wallet signer bound to an existing hardware key.

## Properties

### address

```dart theme={null}
final String address
```

The wallet address associated with this signer.

### locator

```dart theme={null}
final String locator
```

### type

```dart theme={null}
String get type
```

### storage

```dart theme={null}
DeviceSignerKeyStorage get storage
```

The key-storage adapter. Defaults to the platform-native Secure Enclave / Android Keystore implementation when not overridden.

### publicKeyBase64

```dart theme={null}
String get publicKeyBase64
```

The base64-encoded public key parsed from `locator`.

## Methods

### signMessage

```dart theme={null}
Future<Object> signMessage(String message)
```

### signTransaction

```dart theme={null}
Future<Object> signTransaction(String transaction)
```

### getMappedKey

```dart theme={null}
Future<String?> getMappedKey()
```

### hasLocalKey

```dart theme={null}
Future<bool> hasLocalKey()
```

### mapCurrentKeyToAddress

```dart theme={null}
Future<void> mapCurrentKeyToAddress()
```
