Sign In With Solana

  • Name: Sign In With Solana (SIWS)
  • URL: https://github.com/phantom/sign-in-with-solana
  • Category: Solana wallet-auth standard / wallet-composed login message format / signed-session bootstrap feature
  • Tags: solana-ecosystem
  • Summary: Sign In With Solana is wallet-composed login, not generic signMessage glue. The app submits structured fields, the wallet builds the final message, and the verifier can re-derive that message server-side. What matters is that more of the phishing and prompt policy moves into wallet UX instead of staying in app code.
  • What it does:
    • Defines a standard Solana sign-in flow centered on a signIn method rather than ad hoc connect plus signMessage sequences
    • Uses a structured signInInput object with optional fields such as domain, address, statement, uri, chainId, nonce, issuedAt, and resources
    • Requires the wallet to construct the final human-readable sign-in message, including filling in required domain or address values when omitted by the app
    • Standardizes an ABNF message format so signed outputs can be parsed, reconstructed, and verified against the input
    • Returns a signInOutput object containing the signed account, message bytes, signature, and optional signature type
    • Integrates with Solana Wallet Standard and Mobile Wallet Adapter as an optional wallet capability rather than a one-off app convention
  • Key claims:
    • The key design move is wallet-side message construction. SIWS deliberately reduces app freedom so wallets can present more consistent prompts, bind requests to the requesting domain, and flag suspicious requests.
    • SIWS is modeled after EIP-4361, but it shifts more control to wallets by making the app submit structured fields instead of a prebuilt final message. That difference is the main reason it belongs in the corpus.
    • The wallet-standard source is analytically useful because it shows SIWS as a feature flag (solana:signIn) rather than an assumed baseline. In practice, adoption and fallback behavior become part of the auth control plane.
    • The verification utilities matter as much as the syntax. The reference implementation re-parses the signed message, checks it against the input, re-derives canonical text, and only then verifies the signature.
    • Mobile Wallet Adapter 2.0 is an important downstream signal because it treats solana:signInWithSolana as an optional extension to authorization, showing how SIWS plugs into persistent wallet-app connection infrastructure instead of living only in browser prompts.
    • The security model is not just signature correctness. Domain binding, nonce handling, request freshness, and wallet-controlled UI all determine whether SIWS meaningfully improves phishing resistance over legacy signed-message login.
    • SIWS helps separate a recurring confusion in wallet auth: subject ownership proof, transport/session establishment, and later capability authorization are related but distinct layers. SIWS primarily standardizes the ownership-proof login message at the wallet boundary.
  • Whitepaper: No standalone SIWS whitepaper surfaced in this pass. The strongest primary materials were the official SIWS specification, the Solana Wallet Standard feature and utility code, and the Mobile Wallet Adapter 2.0 specification; see ../../whitepapers/sign-in-with-solana-primary-sources-2026-05-10.md.
  • Sources:

Internal linkages