zkLogin primary sources — 2026-05-13

What I reviewed

Key takeaways from primary sources

  • zkLogin is trying to solve user onboarding to blockchain applications without falling back to a custodial social-login wallet. Its core move is to let users authenticate with existing OpenID accounts while keeping the resulting onchain address unlinkable to the underlying OAuth identifier.
  • The protocol decomposes cleanly into several layers: OAuth credential acquisition, ephemeral key generation, nonce construction, address derivation from key claim plus user salt, zero-knowledge proof generation, and chain-side verification.
  • The docs emphasize that zkLogin is not just OAuth for wallets; it is also a privacy system. The user’s offchain identity and onchain address are linked inside the proof relation but are not exposed publicly onchain.
  • The Sui docs also present zkLogin as a two-factor system. OAuth account compromise alone is not enough because transaction authorization also depends on a salt outside the OAuth provider’s control.
  • The implementation path reveals important practical control surfaces. Real integrations usually involve a frontend, a salt backup service, and a proving service. The example flow is especially useful because it shows the actual state layout and which pieces are local versus service-backed.
  • The docs explicitly describe provider JWKs as a validator-quorum-backed oracle. That means issuer-key acceptance is not just an app-level integration detail; it is part of the protocol’s consensus-backed trust model on Sui.
  • The public feature page and docs make clear that zkLogin’s Sui-native deployment matters: it is intended to compose with sponsored transactions, multisig, and invisible-wallet UX rather than acting as a thin login shim above ordinary wallets.
  • The paper broadens the analytical value beyond Sui by arguing that zkLogin can also support verifiable signing of non-blockchain content under existing digital identities.

Specific source signals worth retaining

  • The Sui docs are the best source for the trust-surface decomposition: frontend, salt service, proving service, validator-managed JWK view, and optional identity revelation.
  • The docs are also the clearest source for the nonce structure and the role of user_salt, max_epoch, and ephemeral public keys in unlinkable address derivation.
  • The example page is the best source for the concrete developer flow and for the practical storage model (sessionStorage for ephemeral session material, localStorage for salt/max-epoch in the demo).
  • The public feature page is useful because it explains the intended product surface: wallet abstraction, familiar OAuth onboarding, and a public CRS ceremony to support broad builder use.
  • The paper is the strongest concise statement of the broader claim: existing OpenID credentials can become the basis for privacy-preserving, self-custodial authentication without additional trusted signers.

Why this entry belongs in the corpus

  • It gives the corpus a strong comparison point for wallet/auth designs that use existing web identities without collapsing into pure custodial login.
  • It helps separate OAuth-provider trust, key acceptance, proving-service dependence, salt custody, privacy guarantees, and chain-native composition features.
  • The durable insight is that social login for crypto is not one thing: zkLogin makes it legible as a stack of identity claims, privacy machinery, proving infrastructure, and chain-specific account semantics.