In-App Wallets
Create in-app wallet for your users based on their email, phone, passkey, social auth or even their external wallets. These wallets are scoped by your clientId and do not require any confirmation to sign transactions.
- Email
- Phone
- Passkey
- Guest
- Wallet
- Google
- Apple
- Facebook
- X
- Discord
- Telegram
- Twitch
- Farcaster
- Github
- Line
- Coinbase
- Steam
Try out in-app wallets for yourself in the in-app wallet live playground
The simplest way to create an in-app wallet is to use the inAppWallet()
function. By default, this will create a wallet that supports email/password login, Google, Apple, Facebook login, and passkey.
You can also customize the wallet by passing in options.
View all in-app wallet options.
Once created, you can use it either with the prebuilt UI components, or with your own UI.
The easiest way to use in-app wallets is using the prebuilt connect UI components like ConnectButton
and ConnectEmbed
to authenticate users and connect their wallets.
By default, the connect UI supports multiple social logins as well as email, phone and passkey authentication. You can customize which authentication methods to support which will be reflected in the UI.
You have full control with the connection hooks and functions to build your own UI. Pick an authentication strategy and then connect.
This will ensure that the wallet is available to all components in your app, handle connection states and auto-connection on page load.
Note that for Apple and Facebook, you just need to update the strategy to "facebook" or "apple".
In React and React Native, the useConnect()
hook handles authentication and connection states.
Other social options include Apple, Facebook, Discord, Farcaster and more.
You can also use wallets as an authentication method, when using this method, both external and in-app wallets are connected, and you can switch between the 2 at any time.
You can also create wallets for your users without any input at all. This will create a session that can be later upgraded by linking another identity. Great for progressive onboarding.
From the in-app wallet settings on the thirdweb dashboard, you can enable custom authentication with your own JWT or auth endpoint
Pass any OICD compliant JWT, can be used with firebase, auth0, and more.
Fully custom auth endpoint, pass your own payload and configure your auth verification endpoint on the thirdweb dashboard. This approach lets you use virtually any auth method you can imagine.