Skip to content

Whitelabeling Privy in your app

Privy's React SDK includes out-of-the-box UIs to guide your users through logging in, linking additional accounts, and using embedded wallets in your app. Privy supports ample customization to ensure these UIs fit your brand and app configurations.

Privy also supports a complete whitelabeled experience. In this setup, Privy's SDK hooks operate behind the scenes while your app exposes its own UIs for logging users in and using embedded wallets.

Whitelabeling authentication

To whitelabel your login experience, you can choose to use Privy's authentication interfaces headlessly, allowing you to attach your own UIs to the login flow. Please note this is an Enterprise Tier feature; to get access, please reach out!

You can also always use a third-party authentication provider, like Auth0, Stytch, or Firebase, alongside Privy.

Whitelabeling embedded wallets

To whitelabel your app's login experience, set Wallet UIs to "off" in the Embedded wallets page of the dashboard. This configures Privy to not surface its default UIs for having users confirm signatures and transactions.

Instead of using Privy's UIs, you can attach your own UIs to Privy's signature and transaction methods to fully customize how the wallet prompts users to confirm onchain actions.


Disabling Privy's default wallet prompts can simplify your users' experience of using wallets. This is particularly useful for apps where signatures and transactions may be difficult for users to understand, or where there is a high UX cost to interrupting user flows for each required signature (e.g. gaming).

Nonetheless, choosing to disable the default wallet prompts has important implications regarding the trust relationship between your app and your users and your overall app security. Your app is responsible for communicating clear and accurate context to your users about the actions they are taking with their wallet at all times.

Overriding the default prompts means you can submit transactions on behalf of your users when they are logged in and active. This should only be done with if strictly necessary and with appropriate security measures like wallet MFA enabled. You can always reach out to [email protected] to discuss the tradeoffs of this setup in the context of your product.