Whitelabel
The Privy React SDK provides complete control over all interfaces for authentication, embedded wallets, and user management. You can customize the user experience to match your brand while maintaining the security and reliability of Privy’s infrastructure.
The fastest way to get started with whitelabeling is to fork our whitelabel starter repository. This template provides a fully customizable foundation that you can build upon.
What you can customize
Authentication flows
Whitelabel login and MFA with your own UI and branding.
Embedded wallets
Create seamless wallet interactions with your own UI components and styling.
User management
Manage user profiles and connect social accounts your way.
Whitelabeling your app
Privy allows developers to choose when to take advantage of Privy’s UI and when to customize the experience with their own UI. This guide walks through how to whitelabel your app.
Authentication
All of Privy’s authentication flows can be whitelabeled, from email and SMS passwordless flows to social logins and passkeys.
Email
To whitelabel Privy’s passwordless email flow, use the useLoginWithEmail
hook. Then, call sendCode
and loginWithCode
with the desired email address.
Learn more about email authentication and tracking login flow state.
SMS
SMS
To whitelabel the passwordless SMS flow, use the useLoginWithSms
hook. Then, call sendCode
and loginWithCode
with the desired phone number.
Learn more about SMS authentication and tracking login flow state.
Social logins
Social logins
Passkeys
Passkeys
To whitelabel passkeys, use the useLoginWithPasskey
hook and call loginWithPasskey
.
To sign up with a passkey:
Learn more about passkeys and tracking login flow state.
Telegram
Telegram
To whitelabel the Telegram login flow, it’s as simple as using the useLoginWithTelegram
hook and calling login
.
Learn more about Telegram authentication and tracking login flow state.
MFA
MFA
To whitelabel MFA with SMS, TOTP, or passkeys, follow the custom UI guide.
Wallets
Privy enables developers to whitelabel embedded wallet functionality. You can abstract away wallet UIs entirely or selectively use Privy’s default UI for specific flows.
To whitelabel embedded wallets, you can configure this globally across your app in the PrivyProvider
config, or selectively for specific flows at runtime.
Provider config (globally)
Provider config (globally)
In your PrivyProvider
config you can control the default wallet UI for all flows in your app.
For more granular control, you can also control wallet UIs for specific flows in the sections below.
Create a wallet
Create a wallet
Privy supports whitelabeling wallet creation for Ethereum, Solana, and other chains.
Signing a message
Signing a message
To whitelabel Privy’s message signing functionality, use the useSignMessage
hook and call signMessage
with your desired message.
Sending a transaction
Sending a transaction
To whitelabel Privy’s transaction sending functionality, use the useSendTransaction
hook and call sendTransaction
with your desired transaction.
User management
Privy supports whitelabeling user management for linking and unlinking accounts.
Linking a social account
Linking a social account
Unlinking an account
Unlinking an account
To whitelabel unlinking an account, use the usePrivy
hook and call unlink<Provider>
.
To whitelabel social login, use the
useLoginWithSocial
hook and callinitOAuth
with your desired social login provider.Learn more about social logins and tracking login flow state.