Zynk
Getting StartedProduct GuidesAPI ReferenceFAQ'sRecipes
Getting StartedProduct GuidesAPI ReferenceFAQ'sRecipes
  1. Continuum - Wallet Infrastructure
  • Transformer - Cross Border Transfer
    • Overview
    • Customers & Identity
      • Entities/Customers
      • About KYC/KYB
      • RFI Scenarios for Customers
      • Identity Rejection Reasons
    • Accounts & Wallets
      • External Accounts(To be deprecated soon)
      • Fetch Requirements for External Accounts V2
      • External Accounts V2
      • Funding Accounts
      • About Plaid Integration
    • Transfers
      • Counterparty Risk details
      • Addition transfer requirements
      • Transfer in Action
      • Limits and Minimums
      • Fee details
    • Miscellaneous
      • Bank Codes
      • Supported chains and currencies
      • Partner payments signature generation
      • Reserves requirements
      • Partner Payments
      • Status updates - Webhooks
  • Transporter - Automated Liquidity Manager
    • Overview
    • Visibility Protocol
    • Instant liquidity process - How it works
    • Status updates - Webhooks
  • Teleport - Pay-In Accounts
    • Overview
    • About Teleport routes
  • Warp - Pay-Outs
    • Overview
  • Continuum - Wallet Infrastructure
    • Overview
    • Authentication
    • Continuum APIs
    • Transactions on Continuum
    • Details on generating signatures
Getting StartedProduct GuidesAPI ReferenceFAQ'sRecipes
Getting StartedProduct GuidesAPI ReferenceFAQ'sRecipes
  1. Continuum - Wallet Infrastructure

Authentication

Auth TypeDescriptionRegister Auth RequiredUse Case
API_KeyAPI key-based authenticationYesServer-to-server, automated systems
OAuthOAuth 2.0 / OIDC authenticationYesThird-party identity providers
Email_AuthEmail-based OTP authenticationYesUser email verification
SMS_AuthSMS-based OTP authenticationYesPhone number verification
PasskeyWebAuthn passkey authenticationAfter any auth typeSecure device-based authentication
The Continuum system implements a two-tier authentication architecture:
Primary Authentication
Primary authentication methods must be registered first for any entity. These methods serve as the root authentication mechanism:
API Key - Cryptographic key-based authentication for server-to-server operations
OAuth - OpenID Connect (OIDC) authentication via third-party identity providers
Email Auth - Email-based OTP (One-Time Password) authentication
SMS Auth - SMS-based OTP authentication
Primary authentication is registered via the Register Auth endpoint
Secondary Authentication
Once primary authentication is established, entities may optionally register passkeys as a secondary authentication method for enhanced convenience:
Passkey - WebAuthn-based passkey authentication using biometric or device credentials.
Passkeys are registered via the Passkey Registration two-step process after primary authentication is in place.

Session Management for Primary Authentication#

Primary authentication methods use different mechanisms to obtain signing credentials:
API Key Authentication (Permanent Keys) - For API Key authentication, the key pair registered during Register Auth serves as a permanent signing credential:
The registered private key is used directly to sign transaction payloads
No session creation required
Key pair remains valid until explicitly revoked
Suitable for server-to-server integrations and automated systems
Session-Based Authentication (Temporary Keys) - For OAuth, Email Auth, and SMS Auth, users must create a time-limited session to obtain temporary signing credentials. This process involves:
1
Step 1: Generate Ephemeral Key Pair
Generate a temporary ECDSA key pair using the P-256 (secp256r1) curve:
The public key must be in uncompressed format (65 bytes: 0x04 prefix + 32 bytes X coordinate + 32 bytes Y coordinate).
2
Step 2: Authentication-Specific Preparation
** For OAuth Authentication:**
1.
Generate the SHA-256 hash of the ephemeral public key:
2.
Obtain an OIDC token from your OAuth provider with the public key hash as the nonce claim
3.
The nonce claim in the OIDC token must match the SHA-256 hash of the ephemeral public key provided in the session request.
For Email Auth / SMS Auth:
1.
Call Initiate OTP to trigger OTP delivery:
POST /api/v1/wallets/{entityId}/initiate-otp
2.
User receives OTP code via email or SMS
3.
Use the OTP code in the session creation request
3
Step 3: Create Session
Call Start Session with the ephemeral public key and authentication credentials:
OAuth: Provide oidcToken (with public key hash as nonce)
Email/SMS: Provide otpId and otpCode
4
Step 4: Decrypt Credential Bundle
The response contains an encrypted credentialBundle:
5
Step 5: Sign Transactions
Use the session private key to sign transaction payloads:
Set signatureType: "ApiKey" in submit requests
Use the session private key to generate signatures
Session private key is valid for 15 minutes from creation
After expiration, create a new session to obtain fresh credentials

Session lifecycle#

Generate Ephemeral Key Pair
  ↓
Authenticate (OAuth/OTP)
  ↓
Create Session → Receive credentialBundle
  ↓
Decrypt with Ephemeral Private Key
  ↓
Extract Session Private Key
  ↓
Sign Transactions (valid for 15 minutes)
  ↓
Session Expires → Create New Session

Payload Signing Rules#

When performing operations that require payload signing (two-step processes), the following rules apply:
General Operations
For most two-step operations (wallet creation, account creation, transaction signing, etc.), payloads may be signed using either:
1.
Primary Authentication - Using API Key-based signing (signatureType: "ApiKey")
For API Key auth: Use registered permanent key
For OAuth/Email/SMS auth: Use session private key from credential bundle
2.
Secondary Authentication - Using Passkey/WebAuthn-based signing (signatureType: "WebAuthn")
This flexibility allows users to choose their preferred signing method based on context and convenience.
Passkey Management Operations

Authentication Flow Summary#

Complete Flow for New Entity:
1. Register Primary Auth
   ↓
   POST /api/v1/wallets/{entityId}/register-auth
   ↓
   Entity created with API Key/OAuth/Email/SMS authentication

2. Create Session (OAuth/Email/SMS only)
   ↓
   a) Generate ephemeral P-256 key pair
   b) For OAuth: Get OIDC token with SHA256(publicKey) as nonce
      For Email/SMS: Call initiate-otp, receive OTP
   c) POST /api/v1/wallets/{entityId}/start-session
   d) Decrypt credentialBundle with ephemeral private key
   e) Extract session private key (valid 15 minutes)

   Note: API Key auth skips this step (uses registered key directly)

3. (Optional) Register Passkey
   ↓
   Signed with primary auth (session key or API key)
   ↓
   Passkey added as secondary auth method

4. Perform Operations
   ↓
   Sign with either:
   - Primary auth:
     * API Key: Use registered permanent key
     * OAuth/Email/SMS: Use session private key from credential bundle
   - Secondary auth: Use passkey (WebAuthn)

   Exception: Passkey management operations
   ↓
   Must sign with primary auth only
Session Renewal (OAuth/Email/SMS):
Session expired (after 15 minutes)
  ↓
Generate new ephemeral key pair
  ↓
Authenticate and create new session
  ↓
Decrypt new credential bundle
  ↓
Continue operations with new session key
Modified at 2025-10-30 16:16:51
Previous
Overview
Next
Continuum APIs
Built with