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 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)
| 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 |
Updated 8 days ago
