clientToken to initialize the connect flow.
URL
Requirements
Key exchange
Credentials returned from the frame are encrypted to protect their content since they are sent overpostMessage. You need to generate an X25519 keypair and pass the public key into the frame. The frame uses your public key to encrypt the payload, ensuring only you can read it with your private key.

Example crypto module for web
Example crypto module for web
The following example shows how to generate a keypair and decrypt credentials using
@noble/curves. You’ll want to add your own error handling and input validation for production use.crypto.ts
Example crypto module for React Native
Example crypto module for React Native
The following example shows how to generate a keypair and decrypt credentials using
@noble/curves. You’ll want to add your own error handling and input validation for production use.In React Native, yuo will need a polyfill for getRandomValues (MDN) which is only available in browsers.crypto.ts
Initialization parameters
| Property | Type | Required | Description |
|---|---|---|---|
sessionToken | string | ✅ | The session token obtained from your server when creating a session. |
publicKey | string | ✅ | An ephemeral public key generated on the client. See requirements for details. The frame uses this key to encrypt the client credentials returned from the connect flow. |
channelId | string | ✅ | A unique identifier for the frame generated on your client. This value is attached to each postMessage payload to help identify messages.The format of this string is up to you. |
Events
All events are dispatched using the message pattern described in the frames protocol. Below are the event payloads specific to the check frame.Outbound events
frame->parent These events are sent from this frame to the parent window.handshake
The frame requests that you open a message channel.
complete
The frame finished checking the customer’s connection status.
credentials value is an encrypted string. Once decrypted, it contains a
JSON object with accessToken, clientToken, and expiresAt. See API and SDK
credentials for
how to use each field.
