Onboarding a User

Register users, deploy wallets, and complete KYC verification.

Before You Start

Read the following guides before proceeding:

GuideWhy
Getting StartedPlatform overview and setup
Api BasicsRequired headers and request configuration
AuthenticationHow to obtain access tokens

User onboarding in Wirex BaaS combines on-chain wallet deployment with identity verification. Each user receives an Account Abstraction (AA) wallet that serves as their primary address for holding assets and interacting with the platform. The wallet is deployed on Base network and registered in the Wirex Accounts smart contract.

Identity verification (KYC) is required before users can access financial features. Wirex supports three verification flows: Wirex-hosted (redirect users to complete verification in Wirex UI), SumSub shared (share existing SumSub verification), and reliance (submit full identity data via API). The appropriate flow depends on your existing verification infrastructure and user experience requirements.

The onboarding sequence is: authenticate user, deploy AA wallet with required modules, register wallet on-chain, then complete KYC verification. Users receive webhook notifications as their verification status progresses through Applied, InReview, and Approved states.

KYC flows are covered in the KYC section.

User Registration Flow (Simplified)

Detailed documentation available in On-Chain Registration and API Registration.

sequenceDiagram
    participant User
    participant App as Your App
    participant BaaS as Wirex BaaS
    participant Chain as Blockchain

    Note over User,BaaS: Authentication
    User->>App: Sign in
    App->>BaaS: POST /api/v1/oauth2/token
    BaaS-->>App: access_token

    Note over App,Chain: Wallet Deployment
    App->>Chain: Deploy AA wallet (ZeroDev SDK)
    App->>Chain: Install modules (executor + policy)
    App->>Chain: Register in Accounts contract
    Chain-->>BaaS: Event detected
    BaaS->>App: POST /v2/webhooks/wallets

    Note over App,BaaS: API Registration
    App->>BaaS: POST /api/v2/user
    BaaS-->>App: user_id
StepActionDescription
1POST /api/v1/oauth2/tokenObtain access token
2ZeroDev SDKDeploy AA wallet on Base
3Install modulesAdd executor and policy modules
4Accounts contractRegister wallet on-chain
5WebhookWallet confirmation notification
6POST /api/v2/userComplete API registration