---
updatedAt: 2026-10-02T12:55:03.000Z
agentTools:
  projectIndex: https://docs.ccview.io/llms.txt
---

# Transfers Stream

transfersCreated pushes every token transfer, CC and CIP-56 tokens, as it is recorded on the ledger.

`transfersCreated` emits a batch of token transfers recorded on the ledger at the same moment: Canton Coin and any CIP-56 token CC View indexes. Each event carries an array of transfers, and each transfer in it records who sent, who received, how much, which token, and through which venue. An event fires once its transfers are committed, so everything you receive is final.

Use it when you need to react to money moving: credit a deposit the moment it lands, watch an address or an ANS name, track a token's flow, or measure the volume going through a venue in real time.

## Subscribe

```graphql
subscription Transfers {
  transfersCreated(filter: { network: "mainnet" }) {
    recordTime
    sender
    receiver
    amount
    tokenId
    provider
  }
}
```

[Open in GraphiQL ↗](https://ccview.io/graphiql?query=subscription%20Transfers%20%7B%0A%20%20transfersCreated%28filter%3A%20%7B%20network%3A%20%22mainnet%22%20%7D%29%20%7B%0A%20%20%20%20recordTime%0A%20%20%20%20sender%0A%20%20%20%20receiver%0A%20%20%20%20amount%0A%20%20%20%20tokenId%0A%20%20%20%20provider%0A%20%20%7D%0A%7D)

## Filter

All fields are optional and combine with AND. See [Filters](/reference/streams#filters) for the shared rules.

| Field      | Type     | Matches                                                                    |
| :--------- | :------- | :------------------------------------------------------------------------- |
| `network`  | `String` | `mainnet`, `testnet` or `devnet`                                           |
| `sender`   | `String` | Sending party ID or its ANS name                                           |
| `receiver` | `String` | Receiving party ID or its ANS name                                         |
| `tokenId`  | `String` | Token ID: `cc` for Canton Coin, or the ID of a CIP-56 token such as `cETH` |
| `provider` | `String` | Provider party ID or app name of the venue the transfer went through       |

To watch one wallet in both directions, open two subscriptions: one with `sender`, one with `receiver`.

## Event fields

| Field        | Type      | Meaning                                                                                                   |
| :----------- | :-------- | :-------------------------------------------------------------------------------------------------------- |
| `network`    | `String!` | Network the transfer belongs to                                                                           |
| `recordTime` | `String!` | Ledger record time, ISO 8601 UTC                                                                          |
| `sender`     | `String!` | Sending party ID                                                                                          |
| `receiver`   | `String!` | Receiving party ID                                                                                        |
| `amount`     | `String!` | Amount as a decimal string, in token units. Keep it as a string or parse with a decimal type, not a float |
| `tokenId`    | `String!` | `cc` for Canton Coin, otherwise the CIP-56 token ID                                                       |
| `provider`   | `String!` | Provider party ID of the venue (featured app) the transfer went through                                   |

## Example message

One `next` message with two transfers in the batch. Values are illustrative.

```json
{
  "data": {
    "transfersCreated": [
      {
        "recordTime": "2026-09-30T14:03:11.482913130Z",
        "sender": "alice::1220a3f0c2…",
        "receiver": "bob::1220c81d9e…",
        "amount": "125.0000000000",
        "tokenId": "cc",
        "provider": "wallet-app::12204b77e1…"
      },
      {
        "recordTime": "2026-09-30T14:03:11.482913130Z",
        "sender": "market-maker::1220f00d3a…",
        "receiver": "exchange-hot::12209c2e55…",
        "amount": "0.2500000000",
        "tokenId": "cETH",
        "provider": "dex-venue::1220e4a1b0…"
      }
    ]
  }
}
```

## Example: detect deposits to a treasury address

Filter on the receiving party and the token. Every event is a confirmed deposit. Credit it, then store `recordTime` so you can backfill from [List token transfers](/reference/transfers_list_v1) if the connection drops.

```graphql
subscription Deposits {
  transfersCreated(
    filter: { network: "mainnet", receiver: "treasury::1220e9c4…", tokenId: "cc" }
  ) {
    recordTime
    sender
    amount
    provider
  }
}
```

[Open in GraphiQL ↗](https://ccview.io/graphiql?query=subscription%20Deposits%20%7B%0A%20%20transfersCreated%28%0A%20%20%20%20filter%3A%20%7B%20network%3A%20%22mainnet%22%2C%20receiver%3A%20%22treasury%3A%3A1220e9c4%E2%80%A6%22%2C%20tokenId%3A%20%22cc%22%20%7D%0A%20%20%29%20%7B%0A%20%20%20%20recordTime%0A%20%20%20%20sender%0A%20%20%20%20amount%0A%20%20%20%20provider%0A%20%20%7D%0A%7D)

## Related REST endpoints

[List token transfers](/reference/transfers_list_v1) for history and backfill. [Get transfer details](/reference/transfer_details_v1) for the full record of a single transfer. [Get transfer statistics](/reference/transfers_stats_v1) for aggregates.