π Description
Build the end-to-end username registration UI flow. The user connects their Stellar wallet, enters a desired @username, the frontend generates the ZK non-inclusion proof off-chain via the SDK, and submits the registration transaction to the Soroban contract.
β
Requirements
- Step 1: Connect Stellar wallet (Freighter or xBull)
- Step 2: Enter desired
@username β live availability check via SDK resolveUsername
- Step 3: Frontend calls SDK to generate Poseidon hash + non-inclusion proof
- Step 4: Submit
register_resolver transaction to Soroban contract
- Step 5: Success screen showing
@username claimed + transaction link
- Loading states and error handling at every step
- Form validation: alphanumeric + hyphens only, 3β32 chars
π― Acceptance Criteria
π Expected files to change/structure
src/pages/register.tsx
src/components/UsernameInput.tsx
src/components/WalletConnect.tsx
src/hooks/useRegistration.ts
src/lib/sdk.ts β SDK wrapper
πΏ Branch: feat/web-registration-flow | Priority: HIGH | Difficulty: βββ all-nighter
π Description
Build the end-to-end username registration UI flow. The user connects their Stellar wallet, enters a desired
@username, the frontend generates the ZK non-inclusion proof off-chain via the SDK, and submits the registration transaction to the Soroban contract.β Requirements
@usernameβ live availability check via SDKresolveUsernameregister_resolvertransaction to Soroban contract@usernameclaimed + transaction linkπ― Acceptance Criteria
π Expected files to change/structure
src/pages/register.tsxsrc/components/UsernameInput.tsxsrc/components/WalletConnect.tsxsrc/hooks/useRegistration.tssrc/lib/sdk.tsβ SDK wrapper