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

# NFT Transfers

> NFT transfer events across EVM networks.

export const TableSample = ({tableName, tableSchema}) => <>
    <div className="hidden dark:block">
      <iframe src={`https://dune.com/embeds/3419983/5785629?table_schema_t6f0df=${tableSchema}&table_name_t6f0df=${tableName}&darkMode=true`} style={{
  width: '100%',
  height: '500px',
  border: 'none',
  marginTop: '10px'
}} />
    </div>
    <div className="dark:hidden">
      <iframe src={`https://dune.com/embeds/3419983/5785629?table_schema_t6f0df=${tableSchema}&table_name_t6f0df=${tableName}`} style={{
  width: '100%',
  height: '500px',
  border: 'none',
  marginTop: '10px'
}} />
    </div>
  </>;

export const DuneEmbed = ({qID, vID, height = '500px'}) => <>
    <div className="hidden dark:block">
      <iframe src={`https://dune.com/embeds/${qID}/${vID}?darkMode=true`} style={{
  width: '100%',
  height,
  border: 'none',
  marginTop: '10px'
}}></iframe>
    </div>
    <div className="dark:hidden">
      <iframe src={`https://dune.com/embeds/${qID}/${vID}`} style={{
  width: '100%',
  height,
  border: 'none',
  marginTop: '10px'
}}></iframe>
    </div>
  </>;

The `nft.transfers` table contains NFT transfer events across ERC721 and ERC1155 tokens for all EVM-compatible networks indexed on Dune. This dataset encompasses:

* Transfer events for ERC721 tokens
* Transfer events for ERC1155 tokens

<Info>
  This table covers all standard ERC-721 and ERC-1155 transfer events. Some NFTs may have non-standard transfer mechanisms and might not be included.
  You can check the logic for the transfers table [here](https://github.com/duneanalytics/spellbook/tree/main/dbt_subprojects/hourly_spellbook/models/_sector/nft/transfers). The level of detail of the transfers table will vary by chain.
</Info>

### Utility

The NFT transfers table provides a comprehensive view of NFT movement across networks, enabling you to:

* Track NFT flows between addresses
* Analyze NFT transaction volumes and patterns
* Identify significant NFT movements
* Monitor NFT marketplace and protocol activity

## Table Schema

| Column               | Type        | Description                               |
| -------------------- | ----------- | ----------------------------------------- |
| `blockchain`         | `VARCHAR`   | Blockchain on which the transfer occurred |
| `block_time`         | `TIMESTAMP` | UTC event block time                      |
| `block_month`        | `DATE`      | UTC event block month (partition key)     |
| `block_date`         | `DATE`      | UTC event block date                      |
| `block_number`       | `BIGINT`    | Block number                              |
| `token_standard`     | `VARCHAR`   | Token standard (ERC721, ERC1155)          |
| `transfer_type`      | `VARCHAR`   | Single or batch transfer                  |
| `evt_index`          | `INTEGER`   | Event index within the transaction        |
| `contract_address`   | `VARBINARY` | NFT contract address                      |
| `token_id`           | `UINT256`   | ID of the transferred token               |
| `amount`             | `UINT256`   | Number of tokens transferred              |
| `from`               | `VARBINARY` | Sender address                            |
| `to`                 | `VARBINARY` | Recipient address                         |
| `executed_by`        | `VARBINARY` | Address that executed the transaction     |
| `tx_hash`            | `VARBINARY` | Transaction hash                          |
| `unique_transfer_id` | `VARCHAR`   | Unique transfer identifier                |

<TableSample tableSchema="nft" tableName="transfers" />

### Network Coverage

NFT transfer data is available for the following EVM-compatible networks:

<div>
  <DuneEmbed qID="3695907" vID="6218008" height="600px" />
</div>

## Sample Queries

**Query recent NFT transfers for a specific address**

This query returns the most recent NFT transfers (both incoming and outgoing) for a specified address:

```sql theme={null}
SELECT
    block_time,
    token_standard,
    CASE 
        WHEN "from" = {{address}} THEN 'Outgoing'
        WHEN "to" = {{address}} THEN 'Incoming'
    END AS direction,
    contract_address,
    token_id,
    amount
FROM nft.transfers
WHERE ("from" = {{address}} OR "to" = {{address}})
    AND block_time > now() - interval '30' day
ORDER BY block_time DESC
LIMIT 100
```

**Calculate daily transfer volume for a specific NFT contract**

This query calculates the daily transfer volume for a specific NFT contract:

```sql theme={null}
SELECT
    block_date,
    COUNT(*) AS num_transfers,
    SUM(amount) AS total_amount
FROM nft.transfers
WHERE contract_address = {{contract_address}}
    AND block_time > now() - interval '30' day
    AND blockchain = 'ethereum'
GROUP BY 1
ORDER BY 1 DESC
```

**Identify most active NFT contracts in the last 24 hours**

This query finds the most active NFT contracts by transfer count in the last 24 hours:

```sql theme={null}
SELECT
    blockchain,
    contract_address,
    token_standard,
    COUNT(*) AS transfer_count
FROM nft.transfers
WHERE block_time > now() - interval '1' day
GROUP BY 1, 2, 3
ORDER BY transfer_count DESC
LIMIT 50
```
