How to Use Turnkey EWK
To use the embedded wallet kit effectively, your project is required to:- Use Next.js 13+ with the /app directory structure to leverage server actions.
-
Import Turnkey’s default styles in your
layout.tsx
or equivalent entry point: -
Set up environment variables in your
.env
file to configure API connections and optional OAuth providers.
Variable | Description |
---|---|
TURNKEY_API_PUBLIC_KEY | Your Turnkey API public key (required). |
TURNKEY_API_PRIVATE_KEY | Your Turnkey API private key (required). |
NEXT_PUBLIC_BASE_URL | Base URL for Turnkey API (default: https://api.turnkey.com ). |
NEXT_PUBLIC_ORGANIZATION_ID | Your Turnkey organization ID (required). |
NEXT_PUBLIC_AUTH_IFRAME_URL | URL for the Turnkey authentication iframe (default: https://auth.turnkey.com ). |
NEXT_PUBLIC_EXPORT_IFRAME_URL | URL for the Turnkey wallet export iframe (default: https://export.turnkey.com ). |
NEXT_PUBLIC_IMPORT_IFRAME_URL | URL for the Turnkey wallet import iframe (default: https://import.turnkey.com ). |
NEXT_PUBLIC_GOOGLE_CLIENT_ID | Google OAuth Client ID (required only if enabling Google login in authConfig ). |
NEXT_PUBLIC_APPLE_CLIENT_ID | Apple OAuth Client ID (required only if enabling Apple login in authConfig ). |
NEXT_PUBLIC_FACEBOOK_CLIENT_ID | Facebook OAuth Client ID (required only if enabling Facebook login in authConfig ). |
NEXT_PUBLIC_OAUTH_REDIRECT_URI | OAuth Redirect URI (required only if enabling Google, Apple, or Facebook login, e.g., https://your-app.ngrok-free.app/ ). |
1. Authentication with the Auth
Component
The Auth
component provides authentication functionality, including email, passkey, phone, and social logins.
Usage Example:

2. Importing and Exporting Wallets
TheImport
and Export
components allow users to import or export wallets securely.
Import Wallet Example:


3. Optional: Customizing Themes with TurnkeyThemeProvider
The TurnkeyThemeProvider
allows you to apply custom styles using CSS variables. This is optional and can be used to customize Turnkey components to match your application’s design.
Usage Example:
