Description
Implement POST /api/v1/auth/wallet-auth allowing a user to authenticate by signing a challenge message with their Stellar wallet, verified against their walletAddress.
Acceptance Criteria
- Server issues a one-time challenge string tied to a wallet address (short expiry, e.g. 5 minutes).
- Server verifies the signed challenge against the Stellar public key before issuing a JWT.
- Reused or expired challenges are rejected.
- If no User exists for that wallet address, a new one is created with role DONOR by default (documented choice - flag if you think it should differ).
- Tests cover valid signature, invalid signature, and expired challenge cases.
- openapi.yaml documents the endpoint including the challenge/response flow.
Suggested reward: $30-$40
Description
Implement POST /api/v1/auth/wallet-auth allowing a user to authenticate by signing a challenge message with their Stellar wallet, verified against their walletAddress.
Acceptance Criteria
Suggested reward: $30-$40