Skip to main content
This page has been updated for Wallets SDK V1. If you are using the previous version, see the previous version docs or the V1 migration guide.
Defined in: packages/wallets/src/utils/device-signers/IframeDeviceSignerKeyStorage.ts:39 DeviceSignerKeyStorage backed by a hidden iframe. All crypto operations are delegated to the iframe via postMessage RPC, keeping key material isolated in the iframe’s origin.

Extends

Constructors

new IframeDeviceSignerKeyStorage()

new IframeDeviceSignerKeyStorage(apiKey): IframeDeviceSignerKeyStorage
Defined in: packages/wallets/src/utils/device-signers/IframeDeviceSignerKeyStorage.ts:46

Parameters

ParameterType
apiKeystring

Returns

IframeDeviceSignerKeyStorage

Overrides

DeviceSignerKeyStorage.constructor

Methods

deleteKey()

deleteKey(address): Promise<void>
Defined in: packages/wallets/src/utils/device-signers/IframeDeviceSignerKeyStorage.ts:112 Delete the key pair associated with the given wallet address.

Parameters

ParameterTypeDescription
addressstringThe wallet address whose key pair to remove.

Returns

Promise<void>

Overrides

DeviceSignerKeyStorage.deleteKey

destroy()

destroy(): void
Defined in: packages/wallets/src/utils/device-signers/IframeDeviceSignerKeyStorage.ts:116

Returns

void

generateKey()

generateKey(params): Promise<string>
Defined in: packages/wallets/src/utils/device-signers/IframeDeviceSignerKeyStorage.ts:67 Generate a new P-256 key pair and persist it.

Parameters

ParameterTypeDescription
params{ address: string; biometricExpirationTime: number; biometricPolicy: BiometricPolicy; }Key generation parameters.
params.address?stringOptional wallet address to associate the key with. If omitted, the key should be stored under a temporary identifier until mapAddressToKey is called.
params.biometricExpirationTime?number-
params.biometricPolicy?BiometricPolicy-

Returns

Promise<string> The uncompressed public key encoded as a base64 string.

Overrides

DeviceSignerKeyStorage.generateKey

getDeviceName()

getDeviceName(): string
Defined in: packages/wallets/src/utils/device-signers/IframeDeviceSignerKeyStorage.ts:317 Get a human-readable name for this device (e.g. “MacBook Pro”, “iPhone 15”). Used to label device signers in the API for identification purposes.

Returns

string A descriptive name for the current device.

Overrides

DeviceSignerKeyStorage.getDeviceName

getKey()

getKey(address): Promise<string | null>
Defined in: packages/wallets/src/utils/device-signers/IframeDeviceSignerKeyStorage.ts:86 Retrieve the public key for a given wallet address.

Parameters

ParameterTypeDescription
addressstringThe wallet address whose public key to look up.

Returns

Promise<string | null> The base64-encoded public key, or null if no key is found for the address.

Overrides

DeviceSignerKeyStorage.getKey

hasKey()

hasKey(publicKeyBase64): Promise<boolean>
Defined in: packages/wallets/src/utils/device-signers/IframeDeviceSignerKeyStorage.ts:95 Check if a key with the given public key exists on this device.

Parameters

ParameterTypeDescription
publicKeyBase64stringThe base64-encoded public key to look for.

Returns

Promise<boolean> true if the key exists on the device, false otherwise.

Overrides

DeviceSignerKeyStorage.hasKey

mapAddressToKey()

mapAddressToKey(address, publicKeyBase64): Promise<void>
Defined in: packages/wallets/src/utils/device-signers/IframeDeviceSignerKeyStorage.ts:78 Associate an already-generated key pair with a wallet address. Used when the wallet address is not yet known at the time of key generation.

Parameters

ParameterTypeDescription
addressstringThe wallet address to map the key to.
publicKeyBase64stringThe base64-encoded public key returned by generateKey.

Returns

Promise<void>

Overrides

DeviceSignerKeyStorage.mapAddressToKey

setBiometricRequestHandler()

setBiometricRequestHandler(handler): void
Defined in: packages/wallets/src/utils/device-signers/IframeDeviceSignerKeyStorage.ts:59 Set a handler that is called before each WebAuthn ceremony to obtain user activation. The handler should show a UI prompt (e.g. PasskeyPrompt) and resolve when the user clicks.

Parameters

ParameterType
handlerBiometricRequestHandler

Returns

void

signMessage()

signMessage(address, message): Promise<{ r: string; s: string; }>
Defined in: packages/wallets/src/utils/device-signers/IframeDeviceSignerKeyStorage.ts:104 Sign a message using the private key associated with the given wallet address.

Parameters

ParameterTypeDescription
addressstringThe wallet address whose private key to sign with.
messagestringThe message string to sign.

Returns

Promise<{ r: string; s: string; }> The ECDSA signature split into its r and s components, each as a hex string.

Overrides

DeviceSignerKeyStorage.signMessage