Prerequisites

Before you begin, make sure you have set up your Privy app and obtained your app ID and app secret from the Privy Dashboard.

Getting the PrivyClient

Import the PrivyClient class and create an instance of it by passing the Privy app ID and app secret as parameters.

import {PrivyClient} from '@privy-io/server-auth';

const privy = new PrivyClient('insert-your-app-id', 'insert-your-app-secret');

This privy PrivyClient is now your entry point to manage Privy from your server. With the PrivyClient you can interact with wallets with methods for creating wallets, signing and sending transactions. You can also manage users with methods for getting a user object, verifying an auth token, and importing new users.

Interacting with wallets server-side

Authorization keys are the core primitive for managing wallets in Privy. In server-side environments, you can get an authorization key from a user’s JWT, or use one that you manage from your backend.

You can get a user’s authorization key from their JWT by calling the generateUserSigner method:

const {authorizationKey} = client.walletsApi.generateUserSigner({
  userJwt: 'insert-user-jwt'
});

client.updateAuthorizationKey(authorizationKey);

Rate limits

Privy rate limits REST API endpoints that you may call from your server. If you suspect your team will require an increased rate limit, please reach out to support!

Learn more about optimizing your setup in our optimizing guide!