Create wallet login messages that follow EIP-4361
Use the SIWE tool to build, inspect, and debug Sign-In with Ethereum messages before wiring them into a wallet login flow. Review the domain, address, URI, chain ID, nonce, statement, and issued-at timestamp in a readable format.
Compose SIWE messages
Generate a wallet login message with the required EIP-4361 fields for your app domain and user address.
Review auth fields
Inspect nonce, URI, chain ID, statement, issued-at time, and domain before asking a wallet to sign.
Debug wallet login
Troubleshoot signature prompts, backend verification, session creation, and wallet authentication analytics.
How to use the SIWE tool
Use this Sign-In with Ethereum tool to create a readable EIP-4361 message for wallet authentication. A SIWE message lets a user prove control of an Ethereum address by signing a structured login message instead of submitting a password or signing an onchain transaction.
1. Enter the app domain and wallet address
Start with the domain that will request authentication and the Ethereum address that should sign the message. The domain helps users confirm which app is asking for wallet-based login.
2. Add URI, chain ID, nonce, and timestamp
A SIWE message includes security-critical fields such as a URI, chain ID, nonce, issued-at timestamp, and optional expiration time. The nonce should be unique so the signed message cannot be replayed later.
3. Review the human-readable statement
The statement explains what the user is signing. Keep it clear and specific so wallet prompts are understandable and users can distinguish login messages from transactions or approvals.
4. Use the signed message in your auth flow
After a wallet signs the SIWE message, your backend verifies the signature and creates a session. Teams can then connect wallet identity to product analytics, activation funnels, retention, and support workflows.