> For the complete documentation index, see [llms.txt](https://whitepaper.zodor.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://whitepaper.zodor.io/user-experience/user-onboarding.md).

# User Onboarding

### User Onboarding <a href="#user-onboarding" id="user-onboarding"></a>

Joining Zodor is as easy as it gets. New users are walked through a step-by-step process to learn the Zodor ecosystem before they start their investment journey.

**Step 1:** A user signs up on the Zodor website or mobile app.

**Step 2:** A wallet is created automatically. The web app uses passkey/WebAuthn; mobile uses the device Secure Enclave (FaceID/TouchID). Behind the scenes, an EIP-7702 delegate (`ZodorDelegateAccount`) is set on the user's EOA preserving the user's address while enabling smart-wallet features.

**Step 3:** The user is asked to complete KYC. This step may be skipped initially but is mandatory before redeeming loyalty points or purchasing any asset token. KYC is performed off-chain by Sumsub, and the resulting attestation is committed on-chain as a Masque ID claim by `ZKKYCGate`.

**Step 4:** The full Zodor ecosystem becomes available Hub, Portfolio, Wallet, Community, Loyalty, and the Capital marketplace.

**Step 5:** The user joins the Loyalty Program, completes daily quests, refers friends, and starts earning AR Points, NFT Shards, and Level-Up Badges.

The first call after signup is `fullOnboard()` in the server SDK, which atomically:

1. Creates the Masque ID through `MasqueIdFactory`
2. Registers the identity in `ZodorIdentityRegistry` with jurisdiction
3. Deploys the smart wallet through `ZodorAccountFactory` (or sets the EIP-7702 delegate)
4. Issues the first claim through `ZodorClaimIssuer`

If any step fails, a backend cron (`reconcileIdentityOnboard`) retries until convergence users never see a half-onboarded state.
