Le message commence par example.com wants you to sign in with your Ethereum account:, suivi de l’adresse, d’une déclaration facultative et des champs URI, Version (1), Chain ID, Nonce (au moins 8 caractères alphanumériques), Issued At et, en option, Expiration Time, Not Before, Request ID et Resources. Les portefeuilles comparent le domaine à l’origine de la requête pour avertir en cas d’hameçonnage.
Le serveur doit tout vérifier, pas seulement la signature : que le domaine et l’URI sont bien les siens, que le nonce fait partie de ceux qu’il a émis et qu’il ne l’a pas encore vu, que les dates sont valides et que l’ID de chaîne est celui attendu. Les signatures des EOA sont vérifiées selon EIP-191 ; celles des comptes de contrat, via ERC-1271 sur la chaîne indiquée. Le vérificateur SIWE effectue ces contrôles.