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

# createDeviceSigner

<Note>
  **This page has been updated for Wallets SDK V1.** If you are using the previous version,
  see the [previous version docs](/wallets/v0/overview) or the [V1 migration guide](/wallets/guides/migrate-to-v1).
</Note>

> **createDeviceSigner**(`deviceKeyStorage`, `address`?): `Promise`\<`DeviceSignerConfig`>

Defined in: [packages/wallets/src/utils/device-signers/createDeviceSigner.ts:18](https://github.com/Crossmint/crossmint-sdk/blob/main/packages/wallets/src/utils/device-signers/createDeviceSigner.ts#L18)

Creates a device signer by generating a new P-256 key pair via the provided key storage.

## Parameters

| Parameter          | Type                                                          | Description                                                         |
| ------------------ | ------------------------------------------------------------- | ------------------------------------------------------------------- |
| `deviceKeyStorage` | [`DeviceSignerKeyStorage`](../classes/DeviceSignerKeyStorage) | The device key storage implementation to use for key generation.    |
| `address`?         | `string`                                                      | Optional address of the wallet to associate the device signer with. |

## Returns

`Promise`\<`DeviceSignerConfig`>

A device signer descriptor containing the type, public key coordinates, and locator.

## Example

```ts theme={null}
const signer = await createDeviceSigner(deviceKeyStorage);
// signer = { type: "device", publicKey: { x, y }, locator: "device:<pubkey64>" }
```
