Managing Crypto Assets

Handle unified balances, deposits, and withdrawals.

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
OnboardingUser and wallet registration
ABI ReferenceSmart contract ABIs

Wirex BaaS provides a unified balance system where user assets are held in wrapped tokens (WUSD, WEUR, WGBP) that represent fiat-equivalent value. When users deposit supported stablecoins (USDC, USDT, EURC), they are automatically converted to the corresponding wrapped token. This abstraction simplifies balance management and enables seamless integration with fiat rails.

Users can receive crypto deposits through their AA wallet address or via global deposit addresses that route funds to the correct user wallet. For withdrawals, users can send wrapped tokens back to external wallets, with automatic unwrapping to the underlying stablecoin. Withdrawal requests require user signature and are processed through the platform's oracle system.

Balance changes trigger webhook notifications, allowing your application to update UI in real-time as deposits confirm and withdrawals process.

Multi-Chain Deposit Flow (Simplified)

Detailed documentation available in Global Addresses.

sequenceDiagram
    participant User
    participant Source as Source Chain<br/>(ETH/ARB/...)
    participant Rhino as Rhino.fi Bridge
    participant Base as Base Chain<br/>(Smart Wallet)

    Note over User,Base: Deposit via Global Address
    User->>Source: Send USDC to global address
    Source->>Rhino: Detect deposit
    Rhino->>Base: Bridge to Base
    Note right of Base: Wrap to WUSD
    Base-->>Rhino: POST /v2/webhooks/activities<br/>(type: Crypto, direction: Inbound)
StepActionDescription
1Send to global addressUser sends USDC/USDT from any chain
2Rhino.fi detectionBridge detects deposit on source chain
3Bridge to BaseTokens bridged to Base network
4WrapTokens wrapped to WUSD/WEUR
5WebhookActivity notification delivered

On-Chain Withdrawal Flow (Simplified)

Detailed documentation available in Withdrawals.

sequenceDiagram
    participant User
    participant Wallet as Smart Wallet
    participant Policy as ExecutionDelayPolicy

    Note over User,Policy: Phase 1: Request
    User->>Wallet: Initiate withdrawal
    Wallet->>Policy: request(wallet, nonce, data)
    Policy-->>Wallet: Store with valid_after
    Wallet-->>User: Request tx hash

    Note over User,Policy: DELAY PERIOD (3 seconds)

    Note over User,Policy: Phase 2: Execute
    User->>Wallet: Execute withdrawal
    Wallet->>Policy: Submit with custom nonce
    Policy-->>Wallet: Verify delay, execute
    Wallet-->>User: Execution tx hash
StepActionDescription
1RequestSubmit withdrawal request with encoded calldata
2Delay3-second delay enforced by ExecutionDelayPolicy
3ExecuteSubmit execution with matching nonce
4Unwrap + TransferWUSD unwrapped to USDC, sent to recipient