Web3Auth is where passwordless auth meets non-custodial key infrastructure for Web3 apps and wallets. By aggregating OAuth (Google, Twitter, Discord) logins, different wallets and innovative Multi Party Computation (MPC) - Web3Auth provides a seamless login experience to every user on your application.
Checkout the official Web3Auth Documentation and SDK Reference to get started!
- Plug and Play, OAuth based Web3 Authentication Service
- Fully decentralized, non-custodial key infrastructure
- End to end Whitelabelable solution
- Threshold Cryptography based Key Reconstruction
- Multi Factor Authentication Setup & Recovery (Includes password, backup phrase, device factor editing/deletion etc)
- Support for WebAuthn & Passwordless Login
- Support for connecting to multiple wallets
- DApp Active Session Management
...and a lot more
For using Web3Auth in the web, you have two choices of SDKs to get started with.
Web3Auth Plug and Play UI SDK @web3auth/web3auth
: A simple and easy to use SDK that will give you a simple modular way of implementing Web3Auth directly within your application. You can use the pre-configured Web3Auth Modal UI and whitelabel it according to your needs.
Web3Auth Plug and Play Core SDK @web3auth/core
: The core module implemeting all the Web3Auth features you need and giving you the flexibilty of using your own UI with the Web3Auth SDK working in the backend.
npm install --save @web3auth/web3auth
Hop on to the Web3Auth Dashboard and create a new project. Use the Client ID of the project to start your integration.
Web3Auth needs to initialise as soon as your app loads up to enable the user to log in. Preferably done within a constructor, initialisation is the step where you can pass on all the configurations for Web3Auth you want. A simple integration for Ethereum blockchain will look like this:
import { Web3Auth } from "@web3auth/web3auth";
//Initialize within your constructor
const web3auth = new Web3Auth({
clientId: "", // Get your Client ID from Web3Auth Dashboard
chainConfig: {
chainNamespace: "eip155",
chainId: "0x1",
},
});
await web3auth.initModal();
Once you're done initialising, just create a button that triggers to open the login modal for the user on their request. Logging in is as easy as:
await web3auth.connect();
Packages | @latest Version |
Size | Description |
---|---|---|---|
π Core | |||
@web3auth/core |
Provides the core logic for handling adapters within web3auth. This package acts as a manager for all the adapters. You should use this package to build your custom login UI on top of web3auth. | ||
@web3auth/web3auth |
Provides the main class for using default web3auth modal. It inherits @web3auth/core package. So you can still call all the functions available in the @web3auth/core api reference. The package includes all of our packages and gives you a simple way of implementing Web3Auth within your interface. |
||
π Adapters | |||
@web3auth/coinbase-adapter |
Adds coinbase login functionality | ||
@web3auth/metamask-adapter |
Adds metamask chrome extension login functionality | ||
@web3auth/openlogin-adapter |
Adds social logins with MFA functionality | ||
@web3auth/phantom-adapter |
Adds phantom chrome extension login functionality | ||
@web3auth/torus-evm-adapter |
Adds Torus Wallet login functionality (https://app.tor.us) | ||
@web3auth/torus-solana-adapter |
Adds Solana Torus Wallet login functionality (https://solana.tor.us) | ||
@web3auth/wallet-connect-v1-adapter |
Adds wallet connect v1 login functionality + all supported adapters (eg: Metamask mobile, rainbow etc.) | ||
π Providers | |||
@web3auth/base-provider |
Base implementation of JRPC provider | ||
@web3auth/ethereum-provider |
EIP-1193 compatible JRPC provider | ||
@web3auth/solana-provider |
Solana chain compatible JRPC provider | ||
π Plugins | |||
@web3auth/base-plugin |
Base implementation of plugin | ||
@web3auth/torus-wallet-connector-plugin |
Allows to inject your web3auth scoped private key into torus wallet UI (https://app.tor.us) | ||
@web3auth/solana-wallet-connector-plugin |
Allows to inject your web3auth scoped private key into torus solana wallet UI (https://solana.tor.us) | ||
π Low-Level | |||
@web3auth/base |
Base reusable functionalities for creating a web3auth instance | ||
@web3auth/ui |
Provides the UI used for creating the modal |
- All packages require a peer dependency of
@babel/runtime
- Node 14+
This module is distributed in 4 formats
esm
builddist/package.esm.js
in es6 formatcommonjs
builddist/package.cjs.js
in es5 formatumd
builddist/package.umd.min.js
in es5 format without polyfilling corejs minified
By default, the appropriate format is used for your specified usecase You can use a different format (if you know what you're doing) by referencing the correct file
The cjs build is not polyfilled with core-js. It is upto the user to polyfill based on the browserlist they target
CDN's serve the non-core-js polyfilled version by default. You can use a different
Please replace package and version with the appropriate package name
<script src="https://cdn.jsdelivr.net/npm/@web3auth/PACKAGE@VERSION"></script>
<script src="https://unpkg.com/@web3auth/PACKAGE@VERSION"></script>
Checkout the examples for your preferred blockchain and platform in our examples repository
Checkout the Web3Auth Demo to see how Web3Auth can be used in your application.
Further checkout the demo folder within this repository, which contains other hosted demos for different usecases.
- Have a look at our GitHub Discussions to see if anyone has any questions or issues you might be having.
- Checkout our Troubleshooting Documentation Page to know the common issues and solutions
- Join our Discord to join our community and get private integration support or help with your integration.