useRegistration hook. A user will type an alias, click a button, and watch their registration progress through every step — from alias availability check all the way to on-chain confirmation. By the end you’ll have a full registration form that provides real-time feedback and displays the final transaction hash and DID when registration succeeds.
What you’ll build
ARegistrationForm component that:
- Accepts an alias from the user.
- Calls
register(alias)fromuseRegistration. - Displays a live progress list that updates as each of the 12 phases completes.
- Shows the registration result — DID, smart account address, and transaction hash — on success.
Prerequisites
- You have completed the Quickstart tutorial. Your app already has
HyperAuthProviderwrapping its root.
Steps
1
Understand the registration phases
Before writing any UI code, look at what
useRegistration tracks under the hood. The hook moves through these 12 steps in order:Each step has a
status of 'pending', 'active', 'done', or 'error'. You’ll use these to render a live checklist.2
Create the RegistrationForm component
Create a new file
src/RegistrationForm.tsx:src/RegistrationForm.tsx
useRegistration is called without arguments — it reads the client from HyperAuthProvider internally. The register(alias) function is the only call you need to make. Everything else — passkey creation, identity generation, on-chain submission — happens automatically.3
Add the ProgressList component
Add this to the same file, below Each The
RegistrationForm:src/RegistrationForm.tsx
RegistrationStep has three fields:detail field carries short contextual text that HyperAuth fills in as each step finishes — for example step 0 sets detail to 'Available' once the alias check passes, and step 3 sets it to the predicted smart account address.4
Add the result and error components
Still in
src/RegistrationForm.tsx:src/RegistrationForm.tsx
RegistrationOutcome is the shape of the result value returned by the hook once registration completes:5
Mount the form in your app
Open
src/App.tsx and add the form inside the ready branch:src/App.tsx
6
Run the flow end to end
Start the dev server and open the app:Type an alias — for example Follow the browser’s WebAuthn prompt when step 1 appears. After step 10 confirms on-chain, the result panel appears with your DID, smart account address, and transaction hash.
alice — and click Register. You’ll see the progress list come alive one row at a time:If the alias is already taken, the flow stops at step 0 with an error message and the Try again button resets everything so the user can pick a different name.
What you have built
You’ve built a complete identity registration flow.useRegistration manages all twelve steps of the process — alias checking, passkey creation, identity generation, account prediction, fee sponsorship, signing, on-chain submission, and session storage — and exposes just enough state for your UI to reflect exactly what is happening at every moment.
The result.did and result.smartAccount values you received are now live on-chain. The next tutorial, Sign and Verify Data, shows how to use the identity you just created to sign arbitrary messages.