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

# Wallet Transfers

> Real-time WebSocket stream for raw transfer events across EVM and Solana chains

<Tip> This endpoint is only available to Growth and Enterprise plans. </Tip>

## Endpoint Details

Use this stream to track token transfers by sender, receiver, contract, or other indexed event fields.

| Chain family | Endpoint                           | Event      |
| ------------ | ---------------------------------- | ---------- |
| EVM          | `wss://stream-evm-prod.mobula.io/` | `transfer` |
| Solana       | `wss://stream-sol-prod.mobula.io/` | `transfer` |

<Warning>
  Do not mix Solana `chainIds` on the EVM endpoint, or EVM `chainIds` on the Solana endpoint.
</Warning>

<Note>The EVM addresses used in filters must be lowercase.</Note>

## Subscription Payload

```json theme={null}
{
  "type": "stream",
  "authorization": "YOUR_API_KEY",
  "payload": {
    "name": "WalletTransfers",
    "chainIds": ["solana:solana"],
    "events": ["transfer"],
    "filters": {
      "or": [
        { "eq": ["transactionFrom", "2zqLokC98qfedXyXZHeL4sEdFcmmTFizvb1UQeRweWxp"] },
        { "eq": ["transactionTo", "suqh5sHtr8HyJ7q8scBimULPkPpA557prMG47xCHQfK"] }
      ]
    },
    "subscriptionId": "wallet-transfers",
    "subscriptionTracking": true
  }
}
```

## Response Frame

Every message uses the standard Multi-Events frame:

```json theme={null}
{
  "data": {
    "type": "transfer",
    "transactionHash": "5m6Q...",
    "transactionFrom": "2zqLokC98qfedXyXZHeL4sEdFcmmTFizvb1UQeRweWxp",
    "transactionTo": "suqh5sHtr8HyJ7q8scBimULPkPpA557prMG47xCHQfK",
    "address": "So11111111111111111111111111111111111111112",
    "amount": 1.42,
    "rawAmount": "1420000000",
    "date": "2026-06-08T00:18:34.613Z"
  },
  "chainId": "solana:solana",
  "duplicateCount": 1,
  "subscriptionId": "wallet-transfers"
}
```

See the [EVM Data Model](/indexing-stream/stream/data-model/evm-data-model#transfer-model) and [Solana Data Model](/indexing-stream/stream/data-model/solana-data-model) for chain-specific fields.

## Common Filters

### Transfers to a Wallet

```json theme={null}
{
  "eq": ["transactionTo", "ASde6y8pBCU1aityWHRpqT7pEAcEonjCgFUMeh5egRes"]
}
```

### Transfers From or To a Wallet

```json theme={null}
{
  "or": [
    { "eq": ["transactionFrom", "2zqLokC98qfedXyXZHeL4sEdFcmmTFizvb1UQeRweWxp"] },
    { "eq": ["transactionTo", "suqh5sHtr8HyJ7q8scBimULPkPpA557prMG47xCHQfK"] }
  ]
}
```

### Contract or Token Address

```json theme={null}
{
  "eq": ["address", "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"]
}
```

## Parameters

* **`chainIds`** (required): Chain identifiers, for example `["evm:1"]` or `["solana:solana"]`.
* **`events`** (required): Must include `transfer`.
* **`filters`** (optional): Filter conditions. See [filters](/indexing-stream/stream/filters).
* **`subscriptionId`** (optional): Identifier copied into matching responses.
* **`subscriptionTracking`** (optional, default: `false`): Include subscription details in response logs.
* **`tag`** (optional): Usage tag shown in the dashboard breakdown.

## Keepalive

```json theme={null}
{ "event": "ping" }
```

## Unsubscribe

```json theme={null}
{
  "type": "unsubscribe",
  "authorization": "YOUR_API_KEY",
  "payload": {
    "subscriptionId": "wallet-transfers"
  }
}
```
