feat(auth): Sign-in with Ethereum for Better Auth
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 42/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- github, mongodb, next.js, typescript
- Domaine
- authentication, backend
Piste de recherche
Start with frontend/src/features/auth/server/auth.ts and the sign-in components under features/auth/components; first verify whether Better Auth provides a SIWE plugin and read its API. Trace how the existing email OTP flow and MongoDB adapter handle accounts and sessions, then check compatibility with the signed assertion bridge on feat/toju-agent-storage. Done means wallet linking and unlinking work, replayed or invalid SIWE messages are rejected, and proxy/session behavior remains unchanged.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
Add wallet-based sign-in (EIP-4361) alongside the existing email OTP flow, optionally pulling the user's ENS name and avatar into the profile.
Motivation
Crypto-native users expect to sign in with their wallet, and it ties account identity to the addresses used for payments and agents.
Current state in this repo
frontend/src/features/auth/server/auth.tsconfigures Better Auth with the MongoDB adapter, email-OTP and Next cookies; sign-in forms are underfeatures/auth/components.
Proposal
- Add a SIWE flow (nonce, message, signature verification) if Better Auth provides a plugin; otherwise implement a small custom plugin.
- Link a wallet address to an existing account (verified by signature) rather than creating duplicate accounts.
- Optional: show ENS name/avatar from the ENS issue's resolution helper.
Acceptance criteria
- Nonces are single-use and expire; replayed signatures are rejected.
- Domain, chain id and expiry in the SIWE message are validated.
- A user can link and unlink a wallet; the proxy/session behaviour is unchanged.
Out of scope
- Replacing email OTP.
Technical notes and risks
- Backend identity for agent endpoints uses a different mechanism on
feat/toju-agent-storage(signed assertion bridge); keep the two flows compatible.
Verify before implementing
- Whether Better Auth currently ships a SIWE plugin and its API.
References
- EIP-4361 Sign-In with Ethereum: https://eips.ethereum.org/EIPS/eip-4361
Part of ##1. Ground rules for all issues in this roadmap are listed there (testnet-first, no secrets in the repo, chain logic behind the registry, tests and docs with every PR).
- Langage dominant
- Python
- Étoiles
- 2
- Forks
- 4
- Merge moyen
- 6 h 13 min
- PR mergées (30 j)
- 20
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de QMeshPy/distributed-quantum
-
enhancement good first issue helia storage tier-1
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
QMeshPy/distributed-quantum#53 ·
Les mainteneurs répondent en général sous 1 jour
-
chain-integration enhancement payments research-spike tier-2
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
QMeshPy/distributed-quantum#78 ·
Les mainteneurs répondent en général sous 1 jour
-
chain-integration enhancement payments research-spike tier-2
Difficulté 3/5 1-2 jours Accessibilité débutants 66/100
QMeshPy/distributed-quantum#77 ·
Les mainteneurs répondent en général sous 1 jour
-
documentation good first issue kubo storage tier-1
Difficulté 2/5 1-3 heures Accessibilité débutants 42/100
QMeshPy/distributed-quantum#75 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement kubo storage tier-2
Difficulté 4/5 3-5 jours Accessibilité débutants 56/100
QMeshPy/distributed-quantum#74 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de QMeshPy/distributed-quantum
Issues similaires
-
Project submission:Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
slavakurilyak/awesome-ai-agents#845 ·
Les mainteneurs répondent en général sous 1 jour
-
tests: pin that the atomic writers in utils/paths.py stage the temporary file in the target's directoryPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertedifficulty:2 enhancement good first issue
Difficulté 1/5 1-3 heures Accessibilité débutants 92/100
MakazhanAlpamys/Soup#2178 ·
Les mainteneurs répondent en général sous 1 jour
-
[BUG] dcg.waggr permutation p-values are folded twice, so near-zero scores get the smallest p-valuesOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
scverse/rapids-singlecell#854 ·
Les mainteneurs répondent en général sous 1 jour
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGLPeut-être pris @ninglinLiu l’a pris aujourd’hui. Ouvertearea:frontend backend:slang bug direction:input
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour
-
random_elements(unique=True) on an OrderedDict: ZeroDivisionError once only zero weights remain, AssertionError with use_weighting=FalsePeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 13 jours