Skip to main content
JWT-based authentication is a mechanism in which you can authorize a call to a Crossmint API, scoping such calls to impact resources related to a single end-user on your platform. You have three options available when enabling this option.
  1. Crossmint Authentication - A quick-to-integrate auth solution, ideal for staging environments and getting started fast. Crossmint handles the generation of JWTs and you’re able to quickly create a working application with user access controls. For production, options 2 or 3 below are recommended.
  2. Third Party Authentication providers (recommended for production) - There are several quality authentication providers in the market and you may already be using one of them. You can continue to use your existing auth tooling and enable Crossmint Wallets on top of them with minimal changes. Supported providers include Auth0, Firebase, Supabase, Stytch, and Kinde.
  3. Custom JWT (recommended for production) - This option is for providers not yet included with turn-key support or custom built solutions where you issue your own JWTs. You must be able to provide a JWKS endpoint to enable Crossmint to authenticate tokens.
Crossmint’s Wallets SDK requires JWT Authentication be enabled.

Crossmint Authentication

This option makes the most sense if you’re getting started quickly and want to prototype or test in a staging environment. Crossmint Auth is great for demos and quickstarts, but for production applications a third-party auth provider or custom JWT is recommended for full control over your user management. To use this option, select the Crossmint Auth option within the JWT Authentication section of the API keys page in the Developer Console.
select Crossmint Auth in Crossmint developer console

Third Party Authentication

For projects that have already implemented authentication using one of the supported providers, you can provide Crossmint with the appropriate project/environment/app ID from the settings page of the third party. Supported providers include: Dynamic, Auth0, Stytch, Privy, Firebase, Kinde, and Supabase. To use this option, select the 3P Auth providers option, then choose your provider from the dropdown. Next, you’ll need to find the appropriate ID that your provider gives you to identify your project. This can typically be found within the settings pane of their web interface.
select third party Auth in Crossmint developer console

Custom JWT Auth

If your project is using an auth provider not listed in the 3P providers list or is a home-grown JWT solution, you can choose the Custom tokens option. You will need to be able to provide a that Crossmint can use to authenticate the JWTs.
select third party Auth in Crossmint developer console
For a detailed guide on implementing this approach, check out the Custom JWT Authentication Guide.