Before the Start
You can start this tutorial if you already have a NextJS dapp with MetaMask functionality.Configuring the WalletConnect Connector
- Open the
pages/signin.jsxfile and addWalletConnectConnectoras a connector toconnectAsync(). You should have your Project ID for the WalletConnect configuration and replacexxxwith it in the code below.
Testing the WalletConnect Connector
Visithttp://localhost:3000/signin to test authentication.
- Click on
Authenticate via WalletConnect - Scan the QR code with your wallet
- Connect your wallet
- Sign the message:
- Visit
http://localhost:3000/userto test the user session’s functionality:
- When a user is authenticated, we show the user’s info on the page.
- When a user is not authenticated, we redirect to the
/signinpage. - When a user is authenticated, we show the user’s info on the page, even refreshing after the page. (
Explanation: After Web3 wallet authentication, the next-auth library creates a session cookie with an encrypted JWT [JWE] stored inside. It contains session info [such as an address and signed message] in the user's browser.)

