IBEx.Fi Wallet Deployment Flow

1. Sign Up Flow (v1.2)
Get Options
GET /v1.2/auth/sign-up
Three scenarios:
• passkeys=FALSE (direct JWT)
• passkeys=FALSE + email
• passkeys=TRUE (default)
🔐
Create Passkey
(if passkeys=TRUE)
navigator.credentials.create()
User authenticates with biometric
OR skip if passkeys=FALSE
Safe
Deploy Safe
(if passkey created)
POST /v1.2/auth/sign-up
Safe wallet deployed on-chain
OR email validation
IBEX
Get Tokens
access_token + refresh_token
safeAddress (if passkey)
emailValidationRequired
2. Sign In Flow (v1.2)
Get Options
GET /v1.2/auth/sign-in
Three scenarios:
• No params (passkey)
• email + externalUserId
• externalUserId (direct)
🔐
Authenticate
navigator.credentials.get()
OR emailCode validation
OR direct JWT (externalUserId)
IBEX
Get Tokens
POST /v1.2/auth/sign-in
New access_token + refresh_token
authMethod + hasPasskey
3. Refresh Token Flow
🔄
Refresh
POST /v1.2/auth/refresh
Send refresh_token
(Same for all versions)
IBEX
New Tokens
New access_token + refresh_token
Both tokens replaced

📋 Data to Store

  • access_token : JWT for API auth (~1h)
  • refresh_token : JWT to refresh access
  • subject : externalUserId (unique per rpId)
  • authMethod : PASSKEY, EMAIL, EXTERNAL_USER_ID, or PASSKEY_AND_EMAIL
  • hasPasskey : Boolean indicating if user has passkey
  • safeAddress : Wallet addresses by chainId (if passkey exists)

🔧 Endpoints (v1.2)

⚙️ Technical Details

  • WebAuthn FIDO2 standard (passkey)
  • Email validation (optional)
  • ExternalUserId direct auth (no passkey)
  • Safe Global wallets (ERC-4337)
  • Multi-chain support
  • Gasless transactions (bundler/paymaster)
  • JWT-based authentication
← Back to Deploy Wallet Guide