EIP-4361 (SIWE)

Smart Contract Standard

Sign-In with Ethereum standard enabling Ethereum accounts to authenticate with off-chain services via a structured, human-readable signed message, replacing OAuth/social login with user-controlled cryptographic identity.

Open Standard

Details

License https://github.com/spruceid/siwe
Dev Status 🏁 Final
Dev Status Detail Final
Owner SpruceID (Spruce Systems, Inc.)
Governing Body Ethereum EIP/ERC process (Final) | Company-controlled (SpruceID as author and principal maintainer)
Country United States
Start Year 2021
Stack Language-agnostic message format (plain text + EIP-191 signing); reference implementations in TypeScript, Rust, Go, Python, Elixir, Ruby
Funding SpruceID (company-funded); Ethereum Foundation ecosystem support
Last Investigated Mar 9, 2026

Topology view

This tool in the centre and the things it is directly related to. Each line names the kind of relationship.

Topology view: EIP-4361 (SIWE)This tool in the centre and the things it is directly related to. Each line names the kind of relationship.EIP-4361(SIWE)SpruceID (Basis for, Based on, Conforming implementations, Protocol spoken by)SpruceIDEthereum (Built on)Ethereumdid:ethr (Conforming implementations, Protocol spoken by)did:ethrHuman Passport (Conforming implementations, Identity primitive for)HumanPassportSession (Speaks protocol)Session
  • SpruceID (Tool): Basis for, Based on, Conforming implementations, Protocol spoken by
  • Ethereum (Tool): Built on
  • did:ethr (Tool): Conforming implementations, Protocol spoken by
  • Human Passport (Tool): Conforming implementations, Identity primitive for
  • Session (Tool): Speaks protocol

Open in Graph Explorer

Use Case Domains

Affordances

Sovereign identity

Smart Contract Standard Attributes

Origins Developed by SpruceID in collaboration with Ethereum Magicians community; motivated by the problem of centralized identity providers (Google, Facebook) controlling user authentication; enables ENS and Ethereum wallets as identity layer for web services.
Data Formats Plain text SIWE message format (ABNF-specified); EIP-712 structured data optional; JSON for session metadata; domain, nonce, chain-id, URI as required fields
Terms CC0
Funds Unknown (SpruceID is venture-backed; no public round size for SIWE development specifically)
Based On ERC-191 (signed data standard); EIP-712 (typed structured data signing); ENS for human-readable identity layer
Permissions Permissionless; any dapp or service may implement SIWE; no central authority
Development Tools siwe npm package (TypeScript), siwe-rs (Rust), siwe-go (Go), siwe-py (Python); MetaMask native integration via MIP-0003; WalletConnect support; Auth0 SIWE plugin
Protocol Maturity / Standardization Final EIP; 3M+ library downloads; integrated into MetaMask, WalletConnect, Auth0; widely adopted in Web3 authentication flows
Trust Framework Cryptographic: wallet signature verification via EIP-191; nonce-based replay prevention; domain binding prevents cross-site forgery; session expiry via timestamp fields
Target Application Domain Web3 authentication, DAO gating, token-gated content, decentralized social platforms, civic identity, data vault access control
Deployment Model Off-chain message signing + on-chain address verification; no contract deployment required for basic auth; optional ERC-1271 for smart contract wallet support
Standard Type Identity Standard
Ecosystem Ethereum (chain-agnostic message format; chain-id field enables multi-chain adaptation)

Relationships

How this tool connects to other tools and organizations, from relationships reviewed by the OpenHaven data steward. They describe how projects connect, not how good they are.

Based on
Built on
Speaks protocol
Basis for
Conforming implementations
Identity primitive for
Protocol spoken by