Sign In With Ethereum
ConnectKit provides a simple solution for integrating SIWE, a secure authentication standard, to your application.
This helps enable you to build features that require proving a user has full control over their wallet.
Features
Get the experience you and your users deserve.
Secure Authentication Standard
Enable a secure communication between client and server with the EIP-4361 protocol.
Dedicated Next.js Package
Streamline the process of adding SIWE to your Next.js app.
Optional Custom Backend
If you're not using Next.js, you can set up a custom backend instead.
Build Authenticated Features
Use SIWE to build features like token gating, account creation, and more.
Streamlined UX
ConnectKit handles the user journey and authentication flow for you.
Simple Setup
Let ConnectKit do the heavy lifting and get started in minutes.
Try It Out
Connect a Wallet below to see the Sign In With Ethereum prompt. If you have already connected a wallet, open the ConnectKit modal to see the prompt.
If this is your first time implementing Sign In With Ethereum, have a read first and familiarize yourself with some of the core concepts.
Context
A SIWE flow generally consists of two parts, the client-side and the server-side.
The client-side is responsible for authenticating the user with a signed message and the server-side is responsible for verifying and storing the user's authentication state.
Here's what a typical SIWE flow would look like:
User connects their wallet to a client-side app.
Client-side app prompts user to sign a SIWE message generated using a nonce from the backend.
User signs the message, and then sends the message with the signature to the backend for verification. This proves to the backend that the user controls the connected wallet address.
Upon successful verification, the backend establishes a session via your choice of session storage (cookie, JWT, or similar).
Setup
To help streamline the process of adding SIWE to your project, we offer a small, easy-to-install package for Next.js apps. For all other frameworks see the custom backend setup.