Onboarding comparsion
This page outlines the differences between Standard Onboarding and External Authorization Onboarding flows in Wirex Pay.
Overview
Wirex Pay supports two onboarding models for end-users:
- Standard Onboarding — Users are fully onboarded into Wirex Pay with on-chain presence and internal balance management.
- External Authorization Onboarding — Users are onboarded for partner-managed balances; settlement occurs via the partner’s Master Account.
Glossary
-
EOA (Externally Owned Account): A standard Ethereum address (format: 0x...). In Standard flow, users control this address. In External Authorization, it serves only as an identifier.
-
AA (Account Abstraction): ERC-4337 compliant smart contract wallet deployed at a unique address. Required for Standard flow, not used in External Authorization.
-
KYC (Know Your Customer): Regulatory-required identity verification. Both flows use the same process with identical requirements and outcomes.
Standard Onboarding Flow
In the standard model, users are fully represented on-chain and inside Wirex Pay.
Steps (in order):
- Account Abstraction (AA) Creation — Deploy a per-user AA smart wallet.
- Registration in Accounts Contract — Register the user on-chain (status/verification plumbing).
- Registration in Offchain API — Create/link the user in Wirex Pay’s off-chain system for UX, history, and services.
- KYC Verification — User completes KYC; status is reflected on/off-chain per platform rules.
Data required:
- EOA Address — Serves as a unique identifier of the user on the platform
- User Email - Serves as a secondary identifier for communication and account inquiries
- KYC Information — Collected as per regulatory requirements
- AA Address - Generated during deployment (stored on-chain)
Key characteristics:
- Wirex Pay maintains per-user balances (on/off-chain projection).
- All authorizations and balance checks occur inside Wirex Pay.
- Per-user AA is the settlement endpoint.
sequenceDiagram
title Standard Onboarding Flow
participant U as User
participant WP as Wirex Pay
participant AAF as AA Factory (Blockchain)
participant AC as Accounts Contract (Blockchain)
participant KYC as KYC Provider
U->>AAF: Deploy AA (per-user)
U->>AC: Register user (EOA, AA)
AC-->>WP: AA address
U->>WP: createUser(EOA, email)
U->>WP: requestKYCLink()
WP-->>U: KYC link
U-->>KYC: Complete verification flow
KYC-->>WP: KYC result (approved/declined)
WP-->>U: Onboarding complete
External Authorization Onboarding Flow
In this model, balances are managed by the partner, and Wirex Pay settles against a prefunded Master Account.
Steps (in order):
- Registration in Offchain API — Create the user in Wirex Pay (no per-user AA required).
- KYC Verification — Same KYC process as standard flow.
Data required:
- EOA Address — Serves as a unique identifier of the user on the platform
- User Email - Serves as a secondary identifier for communication and account inquiries
- KYC Information — Collected as per regulatory requirements
Key characteristics:
- No per-user AA deployment and no Accounts Contract registration required for this feature.
sequenceDiagram
title External Authorization Onboarding Flow
participant U as User
participant P as Partner System
participant WP as Wirex Pay API (WP API)
participant KYC as KYC Provider
U->>P: Provide EOA & email
P->>WP: createUser(EOA, email)
WP-->>P: UserCreated
P->>WP: requestKYCLink(userId)
WP-->>P: kycInitLink
P-->>U: Present KYC link
U-->>KYC: Complete verification flow
KYC-->>WP: KYC result (approved/declined)
WP-->>P: KYC status webhook/response
P-->>U: Onboarding complete
Comparison Table
| Component | Standard Flow | External Authorization Flow |
|---|---|---|
| AA Deployment | Required - one per user | Not required |
| On-chain Registration | Required via Accounts Contract | Not required |
| Off-chain Registration | Required via API | Required via API |
| KYC Process | Same KYC provider flow | Same KYC provider flow |
| User Identifier | EOA address | EOA address |
Notes
EOA Address Requirements
- Must be a valid Ethereum address format (0x followed by 40 hexadecimal characters)
- Case-insensitive, but should follow EIP-55 checksum encoding when possible
- Used as a primary user identifier in both flows
KYC Integration
- Both flows use the same KYC provider and verification process
- KYC session must be initiated after user registration
- Verification results are communicated via webhook
- The user cannot transact until KYC is approved
Edge Cases and Constraints
Registration Constraints
- EOA and email address cannot be changed after registration
- Duplicate EOA or email addresses are rejected
External Authorization Specific
- Users cannot be migrated from Standard to the External Authorization flow
- Master Account must be funded before user onboarding
Updated 3 months ago
