Skip to main content
AppKit provides a simple solution for integrating with “Sign In With Ethereum” (SIWE), a new form of authentication that enables users to control their digital identity with their Ethereum account. SIWE is a standard also known as EIP-4361.

One-Click Auth

One-Click Auth represents a key advancement within WalletConnect v2, streamlining the user authentication process in AppKit by enabling them to seamlessly connect with a wallet and sign a SIWE message with just one click. Connecting a wallet, proving control of an address with an off-chain signature, authorizing specific actions. These are the kinds of authorizations that can be encoded as “ReCaps”. ReCaps are permissions for a specific website or dapp that can be compactly encoded as a long string in the message you sign and translated by any wallet into a straight-forward one-sentence summary. WalletConnect uses permissions expressed as ReCaps to enable a One-Click Authentication.

Pre-requisites

For 1-CA + SIWE to function properly, a backend for communication is required. This backend will be used to generate a nonce, verify messages and handle sessions. More info here
This feature is compatible only with EVM blockchains. Therefore, including non-EVM blockchains will result in the internal disabling of the 1-CA + SIWE mechanism.If you want to support only EVM blockchains, you should disable Solana support from AppKit by calling ReownAppKitModalNetworks.removeSupportedNetworks('solana'); right before your ReownAppKitModal() definition.

Configure your SIWEConfig object

Initialize ReownAppKitModal with your siweConfig

Add the siwe configuration in ReownAppKitModal initialization

SIWEConfig reference

Not configuring siweConfig object has the same effect as setting false on siweConfig.enable parameter.

Exported functions

generateNonce

Simple method to generate a timestamp-based nonce

formatMessage

Creates EIP-4361 message based on input arguments.

verifySignature

Verify a SIWE signature. Internally it calls your backend verification method.

getChainIdFromMessage

Get the chain ID from the SIWE message.

getAddressFromMessage

Get the address from the SIWE message.

Basic usage example

This basic configuration is enough to try the feature out without a backend