Create passkey session
Passkeys
Create Passkey Session
Initialize a passkey creation session and receive a hosted UI URL for WebAuthn ceremony.
Create passkey session
Creates a new passkey session for registering a passkey on a user’s device. Returns a URL to the hosted UI where the WebAuthn passkey creation ceremony takes place.
The URL includes:
Key Features
- Hosted UI: Returns a pre-configured URL with embedded challenge
- Session Management: Associates session key for transaction signing
- Custom Domains: Support for custom baseUrl configuration
- Cross-Platform: Works on web, mobile, and across devices
Request Body
meta_info (required)
Configuration for the hosted UI:- appName (string): Display name shown to users during passkey creation
- redirectUrl (string, optional): URL to redirect after completion
sessionKey (optional)
Session key configuration:- key (string): Solana public key in base58 format
- expiration (number): Seconds from now until expiration (e.g., 900 for 15 minutes)
The session key format in the request uses seconds from now for
expiration, but the response returns a Unix timestamp. For example, if
you send
expiration: 900, you’ll receive back expiration: 1234567890
(current time + 900 seconds).baseUrl (optional)
- baseUrl (string): Custom domain for hosting the passkey flow (e.g.,
https://auth.yourcompany.com) - If omitted, uses the default Grid hosted UI
Response
Returns a URL for the passkey creation ceremony:- challenge: Base64 encoded challenge for WebAuthn (valid for 60 seconds)
- slot: Solana slot number for replay protection
- Other params: Configuration for the hosted UI
Implementation Flow
Important Notes
- Challenge Expiration: URL is valid for 60 seconds from generation
- Session Format: Request uses relative seconds, response uses Unix timestamp
- Algorithm: Only ES256 (algorithm
-7) is supported - User Presence: WebAuthn must verify user presence
- Next Step: After successful passkey creation, use the Create Smart Account endpoint to deploy a Grid account
Error Handling
Common errors:- InvalidMetaInfo: Missing or invalid appName
- InvalidSessionKey: Malformed session key
- InvalidBaseUrl: Custom baseUrl format invalid
Related Endpoints
- Authorize Passkey Session - Authenticate with existing passkey
- Submit Passkey Session - Submit WebAuthn response
- Create Smart Account - Deploy account with passkey
Authorizations
Your Grid API key from the Grid Dashboard
Headers
Solana network environment (sandbox, devnet, mainnet)
Body
application/json
Response
Passkey session URL created successfully