> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wirexapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Managing Crypto Assets

Handle unified balances, deposits, and withdrawals.

## Before You Start

Read the following guides before proceeding:

| Guide                                  | Why                                        |
| -------------------------------------- | ------------------------------------------ |
| [Getting Started](https://docs.wirexapp.com/docs/getting-started) | Platform overview and setup                |
| [Api Basics](https://docs.wirexapp.com/docs/api-basics)           | Required headers and request configuration |
| [Authentication](https://docs.wirexapp.com/docs/authentication)   | How to obtain access tokens                |
| [Onboarding](https://docs.wirexapp.com/docs/dev-onboarding)       | User and wallet registration               |
| [ABI Reference](https://docs.wirexapp.com/docs/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](https://docs.wirexapp.com/docs/global-addresses).

```mermaid
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](https://docs.wirexapp.com/docs/withdrawals).

```mermaid
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       |