Order Flow
The dex.orderflow
model aggregates swaps from both dex.trades
and dex.aggregator_trades
by transaction_hash
, allowing you to see the dex aggregator(s) that a single transaction utilised and the underlying liquidity sources (AMM pools) that it utilised
Methodology
Data Source
This model combines both `dex. trades and dex.aggregator_trades by transaction_hash
.
Within each transaction, we roll up all swaps that are routed by aggregators and all swaps that are executed by pools.
The usd_volume
of the swap is determined by the max usd_amount
of the swap within the entire transaction.
The volume and swaps executed by all dex pools are aggregated in the liquidity_details
column. For volume and swaps routed through dex aggregators, they are wrapped in the aggregator_details
column
Example:
Frontend Labeling
Internally, Allium maintains a mapping of key routers and aggregator routers which we use to label the transaction by the most probable frontend. The list contains routers, aggregators, meta-aggregators and telegram bots.
We attempt to make the best guess on identifying the front end used for each transaction by inferring from labelling the transaction. First, we label all transactions by the transaction's to address
, which tells us the contract that the user interacted with.
These contracts may include a meta_aggregator, aggregator, router, mev_bot contract or a direct liquidity pool interaction (particularly for curve AMM pools).
meta_aggregator
: A meta-aggregator is a contract that routes transactions to multiple other routers or aggregators.aggregator
: A contract that routes transactions to multiple other routers or aggregators. If itto_address
is routed to a single router or aggregator, we will label it as such. Otherwise, we will take the first aggregator or router that the transaction is routed to as the aggregator.router
: A contract that routes transactions to multiple other routers or aggregators. If thereto_address
is a router or telegram bot, we label it as a router.
For frontend labelling, we take the following approach by preferentially selecting the meta_aggregator, then aggregator, then router, then liquidity pool and finally the mev_bot:
The coalesce function returns the first non-null value in the list of arguments. If all the arguments are null, the coalesce function returns null and we cannot confidently label the frontend for the dex trades.
Sample Query
Output of this query: https://app.allium.so/s/NxGVkkU4
Table Columns
Unique Key: transaction_hash
frontend
The frontend interface used for the transaction
meta_aggregator
Meta aggregator involved in the transaction
aggregator
Aggregator involved in the transaction
router
Router used in the transaction
block_number
The block number in which the transaction was included
block_timestamp
The timestamp of the block in which the transaction was included
transaction_hash
The hash of the transaction
transaction_index
The index of the transaction within the block
from_address
The address initiating the transaction, also known as msg.sender
to_address
The address receiving the transaction, the smart contact address receiving the transactions
is_aggregator
Flag indicating if the transaction is an aggregator
usd_volume
The volume of the transaction in USD
total_usd_volume
The total volume of the transaction in USD
senders
Array of addresses sending tokens in the transaction
recipients
Array of addresses receiving tokens in the transaction
tokens_sold
Array of tokens sold in the transaction
tokens_bought
Array of tokens bought in the transaction
aggregator_source
Source of the aggregator
aggregator_usd_volume
USD volume of the aggregator
aggregators
Aggregators contracts involved in the transaction
aggregators_count
Count of aggregators involved in the transaction
aggregator_details
Details of the aggregators swaps involved
liquidity_source
Source of liquidity
liquidity_usd_volume
USD volume of liquidity
liquidity_pools
Liquidity pools involved in the transaction
liquidity_pools_count
Count of liquidity pools involved in the transaction
liquidity_details
Details of the liquidity pools swaps involved
total_trades
Total number of dex and dex aggregator trades in the transaction
Last updated