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

# Transfers

> Every on-chain stablecoin transfer across all supported chains, enriched with token metadata and USD value.

`stablecoins.core.transfers` is the unified record of every on-chain stablecoin movement across all chains Allium supports. Each row captures sender, receiver, raw and normalized amounts, USD value at the time of transfer, and transaction context.

This table replaces `crosschain.stablecoin.transfers`. Key additions in the new schema: `product_id` (canonical stablecoin identifier), `is_native` (distinguishes chain-native issuance from bridged representations), `stablecoin_type` (backing model), and `usd_exchange_rate`.

For single-chain workloads, use `<chain>.stablecoins.transfers` instead — identical schema without the `chain` column.

*For background on how Allium maps on-chain events to the transfer schema:*

<Card title="Token Transfers" icon="money-bill-transfer" href="/historical-data/token-transfers" horizontal />

### Sample Queries

**All USDT-family transfers on Ethereum (replaces `base_asset = 'usdt'`)**

The legacy `base_asset` column grouped tokens by ticker and is removed. Filter by `product_id` via the catalog to include native USDT and bridged or DeFi-wrapped variants:

```sql theme={null}
select *
from ethereum.stablecoins.transfers
where product_id in (
    select product_id
    from stablecoins.registry.catalog
    where underlying_product_id = 'usdt'
        or product_id = 'usdt'
)
limit 100
```

On `stablecoins.core.transfers`, add a `chain` filter instead of using the per-chain table.

**Weekly unique senders and total volume of USD stablecoins across all chains, last 6 months**

```sql theme={null}
select
    date_trunc('week', block_timestamp) as week,
    chain,
    token_symbol,
    count(distinct from_address) as unique_senders,
    sum(amount) as transfer_volume
from stablecoins.core.transfers
where block_timestamp > current_timestamp - interval '6 months'
    and currency = 'usd'
group by all
order by 1 desc
```

### Table Columns

**Unique Key**: `block_timestamp::date`, `unique_id`

| Column Name             | Data Type         | Description                                                                                           |
| ----------------------- | ----------------- | ----------------------------------------------------------------------------------------------------- |
| chain                   | VARCHAR           | Blockchain of the transfer (e.g. ethereum, solana)                                                    |
| product\_id             | VARCHAR           | Allium stablecoin product identifier (e.g. usdc, usdt)                                                |
| is\_native              | BOOLEAN           | Whether the transfer was of a chain-native stablecoin issuance (vs. a bridged/wrapped representation) |
| stablecoin\_type        | VARCHAR           | Backing model of the stablecoin (e.g. fiat-backed, crypto-collateralized, algorithmic)                |
| currency                | VARCHAR           | The reference currency the stablecoin is pegged to (e.g. usd, eur)                                    |
| from\_address           | VARCHAR           | Sender of the stablecoin transfer                                                                     |
| to\_address             | VARCHAR           | Recipient of the stablecoin transfer                                                                  |
| token\_address          | VARCHAR           | Contract address of the stablecoin token                                                              |
| token\_name             | VARCHAR           | Name of the stablecoin                                                                                |
| token\_symbol           | VARCHAR           | Symbol of the stablecoin                                                                              |
| raw\_amount\_str        | VARCHAR           | Transfer amount, unnormalized, as string to retain precision                                          |
| raw\_amount             | FLOAT             | Transfer amount, unnormalized                                                                         |
| amount\_str             | VARCHAR           | Transfer amount, normalized, as string to retain precision                                            |
| amount                  | FLOAT             | Transfer amount, normalized by token decimals                                                         |
| usd\_amount             | FLOAT             | Transfer amount valued in USD at the time of transfer                                                 |
| usd\_exchange\_rate     | FLOAT             | Exchange rate used for USD conversion                                                                 |
| transaction\_hash       | VARCHAR           | Hash of the transaction containing the transfer                                                       |
| block\_timestamp        | TIMESTAMP\_NTZ(9) | Block timestamp of the transfer                                                                       |
| unique\_id              | VARCHAR           | Unique identifier for the transfer event                                                              |
| \_created\_at           | TIMESTAMP\_NTZ(9) | Timestamp when the row was first created                                                              |
| \_updated\_at           | TIMESTAMP\_NTZ(9) | Timestamp when the row was last updated                                                               |
| \_metadata\_updated\_at | TIMESTAMP\_NTZ(9) | Timestamp when token metadata (name, symbol, etc.) was last updated                                   |
