Email & Socials
AppKit enables passwordless Web3 onboarding and authentication, allowing your users interact with your application by creating a non-custodial wallet with just their emails or social network.
Due to Safari’s strict third-party cookie policies, the SDK is not preserving sessions after the app is closed. Our team is working to solve this issue soon.
Integration
- Wagmi
- Ethers
Update your Cloud settings
- Go to your Cloud project
- Open Dashboard and scroll down to Mobile Application IDs menu
- Add your iOS Bundle ID and/or your Android Package Name
- Changes might take some minutes to impact
Install packages
yarn add @reown/appkit-auth-wagmi-react-native react-native-webview
On iOS, use CocoaPods to add the native modules to your project:
npx pod-install
Add the auth connector in defaultWagmiConfig
import { authConnector } from '@reown/appkit-auth-wagmi-react-native'
const auth = authConnector({ projectId, metadata })
const wagmiConfig = defaultWagmiConfig({
chains,
projectId,
metadata,
extraConnectors: [auth]
})
Enable features in createAppKit
createAppKit({
projectId,
wagmiConfig,
features: {
email: true, // default to true
socials: ['x', 'discord', 'apple'], // default value
emailShowWallets: true // default to true
}
})
Update your Cloud settings
- Go to your Cloud project
- Open Dashboard and scroll down to Mobile Application IDs menu
- Add your iOS Bundle ID and/or your Android Package Name
- Changes might take some minutes to impact
Install packages
yarn add react-native-webview @reown/appkit-auth-ethers-react-native
On iOS, use CocoaPods to add the native modules to your project:
npx pod-install
Add the auth connector in defaultConfig
import { AuthProvider } from '@reown/appkit-auth-ethers-react-native'
const authProvider = new AuthProvider({ projectId, metadata })
const config = defaultConfig({
metadata,
extraConnectors: [authProvider]
})
Enable features in createAppKit
createAppKit({
projectId,
chains,
config,
features: {
email: true, // default to true
socials: ['x', 'discord', 'apple'], // default value
emailShowWallets: true // default to true
}
})
Options
- email [boolean] : This boolean defines whether you want to enable email login. Default
true
- socials [array] : This array contains the list of social platforms that you want to enable for user authentication. The platforms supported are X, Discord and Apple. The default value of
undefined
displays everything. Set it tofalse
to disable this feature. You can also pass an empty array to disable it. - emailShowWallets [boolean] : This boolean defines whether you want to show the wallet options on the first connect screen. If this is false and
socials
are enabled, it will show a button that directs you to a new screen displaying the wallet options. Defaulttrue
User Flow
-
Users will be able to connect to you application by simply using an email address. AppKit will send to them a One Time Password (OTP) to copy and paste in the modal, which will help to verify the user's authenticity. This will create a non-custodial wallet for your user which will be available in any application that integrates AppKit and email login.
- For Social options, the One Time Password (OTP) is not sent.
-
Eventually the user can optionally choose to move from a non-custodial wallet to a self-custodial one by pressing "Upgrade Wallet" on AppKit. This will open the (WalletConnect secure website) that will walk your user through the upgrading process.