PrivyProvider
component and wrap your app with it.
The PrivyProvider
must wrap any component or page that will use the Privy React Native SDK, and it is generally recommended to render it as close to the root of your application as possible.
PrivyProvider
in the app/_layout.tsx
file.Protect routes with `AuthBoundary`
AuthBoundary
PrivyProvider
is all you need to use the Privy React Native SDK throughout your app! But if you want to protect certain routes, we recommend you do so by using the AuthBoundary
component, as follows:Start by setting up a route group, like (app)/
, under your app/
directory. Routes placed under this group will be protected by the AuthBoundary
component, so only authenticated users can access them.(app)/_layout.tsx
file, wrap the Stack
component with the AuthBoundary
component:AuthBoundary
:loading
and error
are both custom components that you can define to show specific UIs during the loading and error states.unauthenticated
, you should redirect the user to the sign in page, as defined above!AuthBoundary
, take a look at Expo Router’s docs on Authentication.PrivyProvider
component accepts the following props:
PrivyProvider
is first rendered, the Privy SDK will initialize some state about the current user. This might include checking if the user has a wallet connected, refreshing expired auth tokens, fetching up-to-date user data, and more.
It’s important to wait until the PrivyProvider
has finished initializing before you consume Privy’s state and interfaces, to ensure that the state you consume is accurate and not stale.
To determine whether the Privy SDK has fully initialized, check the isReady
Boolean returned by the usePrivy
hook. When isReady
is true, Privy has completed initialization, and your app can consume Privy’s state and interfaces.