# Sign-In with Ethereum Proposal
- Introduction
- Goals & Deliverables
- standardized way to authenticate instead of signing
- google sign in equivalent
- Basic authentication
- Sessions/duration
- extendable to include blockchain data
- Web2 to use it
- Compatibility with OAuth standards
- Non reliance on servers
- potentially restricted to implicit flow or PKCE for auth code flow
- Project Approach and Schedule
- Stakeholders
- Setting up comittee for review/feedback
- Who we will be surveying
- Specfication creation
- Implementation
- Requires multiple
- Pilots and example usage
- Hand-off and future maintenance
- Draft Solution
- Current practices
- Existing Approaches (personal sign)
- OAuth/2
- Summary of core changes/extension from OAuth specification
- Roles
- User
- Application
- Registry
- ...
- Implicit flow
- pros/cons
- Auth code flow with PKCE
- pros/cons
- Scope
- name (ENS name)
- Verifying authority
- unlike normal OAuth, verifying authority is the user, not a centralised entity
- smart contract wallet signing key lookup vs EOA
- backend infura for verifying
- Access token format
- supported curves / algos
- sample JWT
- note: additional fields should be OAuth compliant
- Security considerations
- JWT must sign over redirect_uri in browser
- token generation page must be hosted by wallet / decentralised service
- cross-site request forgery
- Extensions
- more scopes
- attestation
- integration into web2 OAuth aggregation platforms
- refresh tokens
- Team and Budget
- Closing Remarks
## Things we should in include
#### OAuth Specific
- PKCE
- Implicit Flow / Auth Code flow
- Attestation/Permission granting moving forward (scope)
- they may also want to implement this to be compabilible with the OAuth spec itself
- for example if its included in a JWT algo signing, or JWK
- or if perhaps we reference the OAuth spec and extend it to work
#### Goals of implementation
- Basic authentication
- Sessions/duration
- Web2 to use it potentially
#### Others
- SCW compatibility (how?)
- ENS usage moving forward
- Platforms (Native/Web)
- Examples and next steps forwards
- Redirect url
- Error responses
- Future work: refresh tokens
- Future work: verifiable credentials
- Future work: extensions on grants / permissions
#### Existing solutions
## Introduction
The Ethereum Foundation (EF) and True Names LTD (ENS) would like to create a Sign-In with Ethereum specification, a package using OAuth for easy implementation by web2 services, and a Javascript library for the user-facing part of sign-in.
Reach out to login providers
What do we do if it a SCW?
One of the goals is defo reaching it out to web2?
Attestation moving forward?
## Existing Approaches
- https://eauth.pelith.com/login