Class: IframeStamper

Defined in: index.ts:129

Stamper to use with @turnkey/http’s TurnkeyClient Creating a stamper inserts an iframe in the current page.

Constructors

Constructor

new IframeStamper(config): IframeStamper

Defined in: index.ts:142

Creates a new iframe stamper. This function does not insert the iframe in the DOM. Call .init() to insert the iframe element in the DOM.

Parameters

config

TIframeStamperConfig

Returns

IframeStamper

Properties

container

container: HTMLElement

Defined in: index.ts:130


iframe

iframe: HTMLIFrameElement

Defined in: index.ts:131


iframeOrigin

iframeOrigin: string

Defined in: index.ts:132


iframePublicKey

iframePublicKey: null | string

Defined in: index.ts:133


messageChannel

messageChannel: MessageChannel

Defined in: index.ts:134

Methods

applySettings()

applySettings(settings): Promise<boolean>

Defined in: index.ts:451

Function to apply settings on allowed parameters in the iframe This is used to style the HTML element used for plaintext in wallet and private key import.

Parameters

settings

TIframeSettings

Returns

Promise<boolean>


clear()

clear(): void

Defined in: index.ts:276

Removes the iframe from the DOM

Returns

void


clearEmbeddedKey()

clearEmbeddedKey(): Promise<null>

Defined in: index.ts:306

Clears the embedded key within an iframe.

Returns

Promise<null>


extractKeyEncryptedBundle()

extractKeyEncryptedBundle(keyFormat?): Promise<string>

Defined in: index.ts:440

Function to extract an encrypted bundle from the iframe The bundle should be encrypted to Turnkey’s Signer enclave’s initial public key Encryption should be performed with HPKE (RFC 9180). The key format to encode the private key in before it’s encrypted and imported: HEXADECIMAL or SOLANA. Defaults to HEXADECIMAL. This is used during the private key import flow.

Parameters

keyFormat?

KeyFormat

Returns

Promise<string>


extractWalletEncryptedBundle()

extractWalletEncryptedBundle(): Promise<string>

Defined in: index.ts:427

Function to extract an encrypted bundle from the iframe The bundle should be encrypted to Turnkey’s Signer enclave’s initial public key Encryption should be performed with HPKE (RFC 9180). This is used during the wallet import flow.

Returns

Promise<string>


getEmbeddedPublicKey()

getEmbeddedPublicKey(): Promise<null | string>

Defined in: index.ts:294

Returns the public key, or null if the underlying iframe isn’t properly initialized. This differs from the above in that it reaches out to the live iframe to see if an embedded key exists.

Returns

Promise<null | string>


init()

init(dangerouslyOverrideIframeKeyTtl?): Promise<string>

Defined in: index.ts:234

Inserts the iframe on the page and returns a promise resolving to the iframe’s public key

Parameters

dangerouslyOverrideIframeKeyTtl?

number

Optional TTL override for the iframe’s embedded key (default 48 hours). Only use this if you are intentional about the security implications.

Returns

Promise<string>


initEmbeddedKey()

initEmbeddedKey(): Promise<null | string>

Defined in: index.ts:319

Creates a new embedded key within an iframe. If an embedded key already exists, this will return it. This is primarily to be used in conjunction with clearEmbeddedKey(): after an embedded key is cleared, this can be used to create a new one.

Returns

Promise<null | string>

the newly created embedded public key.


injectCredentialBundle()

injectCredentialBundle(bundle): Promise<boolean>

Defined in: index.ts:361

Function to inject a new credential into the iframe The bundle should be encrypted to the iframe’s initial public key Encryption should be performed with HPKE (RFC 9180). This is used during recovery and auth flows.

Parameters

bundle

string

Returns

Promise<boolean>


injectImportBundle()

injectImportBundle(bundle, organizationId, userId): Promise<boolean>

Defined in: index.ts:409

Function to inject an import bundle into the iframe This is used to initiate either the wallet import flow or the private key import flow.

Parameters

bundle

string

organizationId

string

userId

string

Returns

Promise<boolean>


injectKeyExportBundle()

injectKeyExportBundle(bundle, organizationId, keyFormat?): Promise<boolean>

Defined in: index.ts:374

Function to inject an export bundle into the iframe The bundle should be encrypted to the iframe’s initial public key Encryption should be performed with HPKE (RFC 9180). The key format to encode the private key in after it’s exported and decrypted: HEXADECIMAL or SOLANA. Defaults to HEXADECIMAL. This is used during the private key export flow.

Parameters

bundle

string

organizationId

string

keyFormat?

KeyFormat

Returns

Promise<boolean>


injectWalletExportBundle()

injectWalletExportBundle(bundle, organizationId): Promise<boolean>

Defined in: index.ts:392

Function to inject an export bundle into the iframe The bundle should be encrypted to the iframe’s initial public key Encryption should be performed with HPKE (RFC 9180). This is used during the wallet export flow.

Parameters

bundle

string

organizationId

string

Returns

Promise<boolean>


onMessageHandler()

onMessageHandler(event): void

Defined in: index.ts:191

Parameters

event

MessageEvent

Returns

void


publicKey()

publicKey(): null | string

Defined in: index.ts:286

Returns the public key, or null if the underlying iframe isn’t properly initialized.

Returns

null | string


stamp()

stamp(payload): Promise<TStamp>

Defined in: index.ts:460

Function to sign a payload with the underlying iframe

Parameters

payload

string

Returns

Promise<TStamp>

Class: IframeStamper

Defined in: index.ts:129

Stamper to use with @turnkey/http’s TurnkeyClient Creating a stamper inserts an iframe in the current page.

Constructors

Constructor

new IframeStamper(config): IframeStamper

Defined in: index.ts:142

Creates a new iframe stamper. This function does not insert the iframe in the DOM. Call .init() to insert the iframe element in the DOM.

Parameters

config

TIframeStamperConfig

Returns

IframeStamper

Properties

container

container: HTMLElement

Defined in: index.ts:130


iframe

iframe: HTMLIFrameElement

Defined in: index.ts:131


iframeOrigin

iframeOrigin: string

Defined in: index.ts:132


iframePublicKey

iframePublicKey: null | string

Defined in: index.ts:133


messageChannel

messageChannel: MessageChannel

Defined in: index.ts:134

Methods

applySettings()

applySettings(settings): Promise<boolean>

Defined in: index.ts:451

Function to apply settings on allowed parameters in the iframe This is used to style the HTML element used for plaintext in wallet and private key import.

Parameters

settings

TIframeSettings

Returns

Promise<boolean>


clear()

clear(): void

Defined in: index.ts:276

Removes the iframe from the DOM

Returns

void


clearEmbeddedKey()

clearEmbeddedKey(): Promise<null>

Defined in: index.ts:306

Clears the embedded key within an iframe.

Returns

Promise<null>


extractKeyEncryptedBundle()

extractKeyEncryptedBundle(keyFormat?): Promise<string>

Defined in: index.ts:440

Function to extract an encrypted bundle from the iframe The bundle should be encrypted to Turnkey’s Signer enclave’s initial public key Encryption should be performed with HPKE (RFC 9180). The key format to encode the private key in before it’s encrypted and imported: HEXADECIMAL or SOLANA. Defaults to HEXADECIMAL. This is used during the private key import flow.

Parameters

keyFormat?

KeyFormat

Returns

Promise<string>


extractWalletEncryptedBundle()

extractWalletEncryptedBundle(): Promise<string>

Defined in: index.ts:427

Function to extract an encrypted bundle from the iframe The bundle should be encrypted to Turnkey’s Signer enclave’s initial public key Encryption should be performed with HPKE (RFC 9180). This is used during the wallet import flow.

Returns

Promise<string>


getEmbeddedPublicKey()

getEmbeddedPublicKey(): Promise<null | string>

Defined in: index.ts:294

Returns the public key, or null if the underlying iframe isn’t properly initialized. This differs from the above in that it reaches out to the live iframe to see if an embedded key exists.

Returns

Promise<null | string>


init()

init(dangerouslyOverrideIframeKeyTtl?): Promise<string>

Defined in: index.ts:234

Inserts the iframe on the page and returns a promise resolving to the iframe’s public key

Parameters

dangerouslyOverrideIframeKeyTtl?

number

Optional TTL override for the iframe’s embedded key (default 48 hours). Only use this if you are intentional about the security implications.

Returns

Promise<string>


initEmbeddedKey()

initEmbeddedKey(): Promise<null | string>

Defined in: index.ts:319

Creates a new embedded key within an iframe. If an embedded key already exists, this will return it. This is primarily to be used in conjunction with clearEmbeddedKey(): after an embedded key is cleared, this can be used to create a new one.

Returns

Promise<null | string>

the newly created embedded public key.


injectCredentialBundle()

injectCredentialBundle(bundle): Promise<boolean>

Defined in: index.ts:361

Function to inject a new credential into the iframe The bundle should be encrypted to the iframe’s initial public key Encryption should be performed with HPKE (RFC 9180). This is used during recovery and auth flows.

Parameters

bundle

string

Returns

Promise<boolean>


injectImportBundle()

injectImportBundle(bundle, organizationId, userId): Promise<boolean>

Defined in: index.ts:409

Function to inject an import bundle into the iframe This is used to initiate either the wallet import flow or the private key import flow.

Parameters

bundle

string

organizationId

string

userId

string

Returns

Promise<boolean>


injectKeyExportBundle()

injectKeyExportBundle(bundle, organizationId, keyFormat?): Promise<boolean>

Defined in: index.ts:374

Function to inject an export bundle into the iframe The bundle should be encrypted to the iframe’s initial public key Encryption should be performed with HPKE (RFC 9180). The key format to encode the private key in after it’s exported and decrypted: HEXADECIMAL or SOLANA. Defaults to HEXADECIMAL. This is used during the private key export flow.

Parameters

bundle

string

organizationId

string

keyFormat?

KeyFormat

Returns

Promise<boolean>


injectWalletExportBundle()

injectWalletExportBundle(bundle, organizationId): Promise<boolean>

Defined in: index.ts:392

Function to inject an export bundle into the iframe The bundle should be encrypted to the iframe’s initial public key Encryption should be performed with HPKE (RFC 9180). This is used during the wallet export flow.

Parameters

bundle

string

organizationId

string

Returns

Promise<boolean>


onMessageHandler()

onMessageHandler(event): void

Defined in: index.ts:191

Parameters

event

MessageEvent

Returns

void


publicKey()

publicKey(): null | string

Defined in: index.ts:286

Returns the public key, or null if the underlying iframe isn’t properly initialized.

Returns

null | string


stamp()

stamp(payload): Promise<TStamp>

Defined in: index.ts:460

Function to sign a payload with the underlying iframe

Parameters

payload

string

Returns

Promise<TStamp>