Loading page…
Loading page…
Reserve has its own identity boundary rather than borrowing a wallet login card. Enrollment, returning-user authentication, and password recovery are distinct surfaces with shared custody context, explicit autocomplete contracts, passkey support, and non-disclosing recovery copy.
Enrollment collects identity, email, password confirmation, and terms consent before organizational verification. It uses the canonical Input, Checkbox, and StatefulButton controls.
RESERVE
Reserve enrollment
Create the identity that will own Reserve instructions. Organizational verification and signer policy follow after enrollment.
<ReserveSignupSurface onSubmit={enrollReserveIdentity} />--ch-primary--ch-bg--ch-surface--ch-borderThe left rail establishes the Reserve trust boundary; the right side owns only enrollment.
Returning users get a separate sign-in surface with password and passkey routes. Its session copy makes the separation from wallet and system-admin access explicit.
RESERVE
Reserve sign in
Authenticate to review positions, approve instructions, and retrieve Reserve statements.
<ReserveLoginSurface passkey onSubmit={signIn} onPasskey={usePasskey} />--ch-primary--ch-focus--ch-danger--ch-successPassword recovery points to its own route instead of unfolding inside login.
Recovery is a distinct surface and uses the same response whether an identity exists. Submit the live specimen to see the sent state; no network request is made in the styleguide.
RESERVE
Access recovery
The recovery path is intentionally separate from sign in and gives the same response whether or not an identity exists.
<ReservePasswordRecoverySurface onSubmit={sendRecoveryRoute} loginHref="/reserve/login" />--ch-primary--ch-success--ch-danger--ch-fg-mutedEmail-only request, time-limited link, neutral account-disclosure language.