Table Description
The nft.wash_trades table on Dune is crucial for identifying and analyzing potential wash trading activities in Non-Fungible Token (NFT) transactions across various marketplaces. It provides insights into the authenticity of NFT trades and helps in understanding market manipulation within the NFT space.Usage
The nft.wash_trades table serves as an essential tool for analyzing the integrity of NFT market activities. It offers a detailed view of each NFT transaction, including data points such as blockchain, project, buyer and seller addresses, and various filters to detect potential wash trades. This table allows analysts to identify suspicious trading patterns, assess the prevalence of wash trading in different NFT projects, and gain insights into the overall health and authenticity of the NFT market.Coverage
Thenft.wash_trades table is maintained by Dune and its community of contributors. We strive to ensure the data is as accurate and up-to-date as possible. However, Dune does not guarantee the accuracy or completeness of the data provided. The table covers various blockchains and NFT projects, with a focus on identifying potential wash trading activities.
Mechanism
The nft.wash_trades table employs a multi-faceted approach to identify potential wash trades:- Basic Trade Information: Each entry includes details such as blockchain, project, NFT contract address, token ID, buyer, seller, and transaction specifics.
- Funding Source Analysis: The table tracks the first funding sources for both buyers and sellers (buyer_first_funded_by, seller_first_funded_by) to identify potential connections between trading parties.
-
Wash Trade Filters: Several filters are applied to flag suspicious activities:
- filter_1_same_buyer_seller: Identifies trades where the buyer and seller are the same.
- filter_2_back_and_forth_trade: Detects repetitive trading between the same parties.
- filter_3_bought_or_sold_3x: Flags NFTs that have been traded frequently in a short period.
- filter_4_first_funded_by_same_wallet: Identifies trades where both parties were initially funded by the same wallet.
- filter_5_flashloan: Detects trades potentially facilitated by flash loans.
- Wash Trade Classification: The is_wash_trade column provides a final verdict on whether a trade is considered a wash trade based on the applied filters.
Table Schema
| Column | Type | Description |
|---|---|---|
blockchain | VARCHAR | Blockchain on which the trade occurred |
project | VARCHAR | NFT marketplace name |
version | VARCHAR | Contract version |
nft_contract_address | VARBINARY | NFT contract address |
token_id | DOUBLE | NFT token ID |
token_standard | VARCHAR | Token standard (ERC721, ERC1155) |
trade_category | VARCHAR | How the NFT was traded |
buyer | VARBINARY | Buyer wallet address |
seller | VARBINARY | Seller wallet address |
project_contract_address | VARBINARY | Marketplace contract address |
aggregator_name | VARCHAR | Aggregator name if applicable |
aggregator_address | VARBINARY | Aggregator contract address |
tx_from | VARBINARY | Address that initiated the transaction |
tx_to | VARBINARY | Address that received the transaction |
block_time | TIMESTAMP | UTC event block time |
block_date | DATE | UTC event block date |
block_number | BIGINT | Block number |
tx_hash | VARBINARY | Transaction hash |
unique_trade_id | VARCHAR | Unique trade identifier |
buyer_first_funded_by | VARBINARY | Wallet that first funded the buyer in ETH |
seller_first_funded_by | VARBINARY | Wallet that first funded the seller in ETH |
filter_1_same_buyer_seller | BOOLEAN | Whether buyer and seller are the same address |
filter_2_back_and_forth_trade | BOOLEAN | Whether the NFT was traded back and forth between buyer and seller |
filter_3_bought_or_sold_3x | BOOLEAN | Whether the same NFT was bought 3+ times (excluding ERC1155) |
filter_4_first_funded_by_same_wallet | BOOLEAN | Whether the same wallet first funded both buyer and seller |
filter_5_flashloan | BOOLEAN | Whether the transaction included a flashloan |
is_wash_trade | BOOLEAN | Final verdict: true if any filter was triggered |