Skip to main content
Reown Docs

Sign In With Ethereum

2 min read

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

Warning

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#

Note

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