Trades
The DEX trades table contains successful swaps made on decentralized exchanges (DEX), consolidated into a single table.
Coverage:
Currently, we support over 40+ DEX projects across 20+ protocol versions on Ethereum. This table does not include aggregator DEX trades.
Projects | Protocols |
---|---|
whiteswap, wallstreetbetsdex, vulcandex, verse, uniswap, unicly, swipeswap, swapr, sushiswap, sumswap, shibaswap, sashimiswap, sakeswap, saitaswap, safeswap, radioshackswap, plasmafinance, pancakeswap, orionprotocol, nomiswap, mintyswap, luaswap, linkswap, integralsize, gemswap, fraxswap, equalizerfinance, dooar, defiswap, convergence, cityswap, bitberryswap | uniswap_v2 |
uniswap, sushiswap, solidly | uniswap_v3 |
trader_joe | trader_joe_v2_1 |
pancakeswap | pancakeswap_v3 |
native | native_v1 |
maverick | maverick |
kyberswap | kyberswap_elastic |
hashflow | hashflow_v3 |
dodo | dodo_v2, dodo_v1 |
curve | curve_v2, curve_v1 |
clipper | clipper_fmm_v3, clipper_fmm_v2, clipper_fmm_v1 |
bancor | bancor_v3, bancor_v1 |
balancer | balancer_v2, balancer_v1 |
airswap | airswap_v4, airswap_v3, airswap_v2, airswap_light_v0, airswap_light |
Methodology
We adopted a protocol-based and event log-based approach to index swap events.
In brief, the swap events for each protocol are identified by the event signature (topic0), which contains the number of tokens swapped and the address of the sender and receiver.
For protocols such as Uniswap v2 and v3 the token address swapped is identified by the liquidity pool creation event using the pool address. The amount of tokens traded is adjusted by the token's decimal value and then multiplied by hourly price oracle data to give the USD value of the transaction.
DEX Trades
What is the difference between the DEX project and the DEX protocol?
DEX Project: Project refers to the DEX's platform, such as Uniswap, Balancer, Sushiswap, etc.
DEX Protocol: The DEX protocol refers to the underlying smart contract implemented for facilitating the swaps.
A project can undergo protocol upgrades. E.g. When Uniswap upgraded their v2 protocol to v3 to introduce concentrated liquidity pools.
New DEX projects can also choose to fork existing protocols, such as the Uniswap v2 protocol. One example of this was Sushiswap as a Uniswap v2 fork.
Hence, a single project can have multiple protocols. Likewise, a single protocol can be utilized across multiple projects.
Table Columns
_str
columns are numeric fields cast varchar
to retain precision when summing.
Unique Key: unique_id
Column | Description |
---|---|
project | The project (decentralized exchange) of the liquidity pool that the swap occurred from. |
protocol | DEX protocol (& version, if applicable) of the contract address facilitating the swap. |
liquidity_pool_address | Contract address of the liquidity pool holding the asset. For protocol without the concept of LP such as airswap, this will be null. |
sender_address | The address of the sender emitted on the swap event logs. This can be a router or pool address, which is different from the transaction initiator transaction_from_address that initiated the swap. |
to_address | Address of the recipient emitted on the swap event logs. For example, we use the to_address from the uniswap v2 swap event log and the recipient_address from the uniswap v3 swap event log. |
token_sold_address | Token address of the token sold. |
token_sold_name | Name of the token sold. |
token_sold_symbol | Symbol of the token sold. |
token_sold_decimals | Token decimals of the token sold. |
token_sold_amount_raw_str | Raw amount of tokens sold (unnormalized) in string. |
token_sold_amount_raw | Raw amount of tokens sold (unnormalized). |
token_sold_amount_str | Amount of tokens sold in string. |
token_sold_amount | Amount of tokens sold. |
usd_sold_amount | Amount of token sold in USD value. |
token_bought_address | Token address of the token bought, i.e. the asset acquired from the trade. |
token_bought_name | Name of the token bought. |
token_bought_symbol | Symbol of the token bought. |
token_bought_decimals | Token decimals of the token bought. |
token_bought_amount_raw_str | Raw amount of tokens bought (unnormalized) in string. |
token_bought_amount_raw | Raw amount of tokens bought (unnormalized). |
token_bought_amount_str | Amount of tokens bought in string. |
token_bought_amount | Amount of tokens bought. |
usd_bought_amount | Amount of token bought in USD value. |
usd_amount | USD value of the swap. This field preferentially selects the USD value of Native Assets and Stablecoin (USDT/USDC) tokens, as spam/meme token prices may conflate the true swap value. |
extra_fields | This field contains all the extra columns emitted from the event/function call that were not part of the conventional DEX trades columns. |
swap_count | Swap count within the transaction. |
transaction_fees | Fees paid at the transaction level. |
transaction_fees_usd | Fees paid in USD at the time of the transaction. |
fee_details | Additional fee details of the transaction, including max priority fee, gas price and gas used for the transaction. |
transaction_from_address | Transaction sender address. I.e. the address of the transaction initiator. (from_address in the raw.transactions field for the transaction_hash of this swap). |
transaction_to_address | Transaction receiver. (to_address in the raw.transactions field for the transaction_hash of this swap). |
transaction_hash | Transaction hash that this swap belongs to. |
transaction_index | The position of this transaction in the block that it belongs to. The first transaction has index 0. |
selector | 4-byte selector of the transaction. |
log_index | The position of the swap event log in the transaction. |
block_timestamp | Block timestamp of the swap event. |
block_number | Block number of the swap event. |
block_hash | Block hash of the swap event. |
unique_id | Unique ID of each trade. |
Last updated