Managing Crypto Assets
Handle unified balances, deposits, and withdrawals.
Before You Start
Read the following guides before proceeding:
| Guide | Why |
|---|---|
| Getting Started | Platform overview and setup |
| Api Basics | Required headers and request configuration |
| Authentication | How to obtain access tokens |
| Onboarding | User and wallet registration |
| ABI Reference | Smart contract ABIs |
Wirex BaaS provides a unified balance system where user assets are held in unified tokens (WUSD, WEUR, WGBP) that represent fiat-equivalent value. When users deposit supported stablecoins (USDC, USDT, EURC), they are automatically converted to the corresponding unified 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 unified 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)
| Step | Action | Description |
|---|---|---|
| 1 | Send to global address | User sends USDC/USDT from any chain |
| 2 | Rhino.fi detection | Bridge detects deposit on source chain |
| 3 | Bridge to Base | Tokens bridged to Base network |
| 4 | Wrap | Tokens wrapped to WUSD/WEUR |
| 5 | Webhook | Activity 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
| Step | Action | Description |
|---|---|---|
| 1 | Request | Submit withdrawal request with encoded calldata |
| 2 | Delay | 3-second delay enforced by ExecutionDelayPolicy |
| 3 | Execute | Submit execution with matching nonce |
| 4 | Unwrap + Transfer | WUSD unwrapped to USDC, sent to recipient |
FX Swap Flow (Simplified)
Detailed documentation available in FX Swaps.
sequenceDiagram
participant Client
participant Wirex as Wirex API
participant Chain as Base Chain
Client->>Wirex: POST /api/v1/fx/estimate
Wirex-->>Client: estimation_id, destination_address, rate, expiry
Client->>Chain: Transfer source tokens to destination_address
Chain-->>Client: payment_transaction_hash
Client->>Wirex: POST /api/v1/fx
Wirex-->>Client: trade_id
| Step | Action | Description |
|---|---|---|
| 1 | Estimate | Quote by source or destination amount |
| 2 | Pay | Send source tokens on-chain to the deposit address |
| 3 | Execute | Submit the estimation and payment hash |
Updated 20 days ago

