UniswapX: Dutch Order Reactor orders and settlement. This
ethereum.dex.uniswap_x_trades table includes all trades including failedexecute calls from Uniswap X's ExclusiveDutchOrderReactor .
To filter them out, set status = 1 (see example below) .These trades amount to ~1.6% of total volume, and ~3% of all trades.
Sample Query
-- Daily Swap Volume selectdate(block_timestamp) asdate, sum(usd_amount) as usd_volume,count(distinct transaction_hash) as txn_countfrom ethereum.dex.uniswap_x_tradeswherestatus=1group by all
Methodology
Identify the following trace call from UniswapX ExclusiveDutchOrderReactor contract
Note that the decoded orders can be found in the extra_fields column.
Last updated
This model includes failed orders that failed to execute.
Column Name
Description
Example
⚠️
project
Project name.
uniswap_x
protocol
Protocol name.
uniswap_x
trace_call
Trace call method.
execute
order_type
Order type. Can be either `single` or `batch` orders. `execute` and `executeWithCallback` maps to single orders.
single
order_index
Order index within the call. For batch orders, they are flatten with each order executed represented as a line.
0
status
Trace status of the call. This will 1 for successful traces and 0 for failed traces.
1
error
Error message emitted by the trace call.
filler
Address of the filler. These agents pickup signed orders from swappers and compete to execute them using any source of liquidity they have access to.
0x7321ac264b89254ea749a0657d41a9a2ebf8e3da
reactor
Address or the reactor. Order Reactors settle UniswapX orders. They are responsible for validating orders of a specific type, resolving them into inputs and outputs, and executing them against the filler's strategy, and verifying that the order was successfully fulfilled.
0x6000da47483062a0d734ba3dc7576ce6a0b645c4
swapper
Address of the swapper.
0x27b6318dd9861cf26ba8c32dde26bbf8b5e0c956
exclusive_filler
Address of the exclusive filler.
0x7321ac264b89254ea749a0657d41a9a2ebf8e3da
exclusivity_override_bps
The amount in bps that a non-exclusive filler needs to improve the outputs by to be able to fill the order.
100
token_sold_address
Input token address. Input tokens will map to token sold. Native ETH will be represented as zero address `0x0000000000000000000000000000000000000000`.
0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
token_sold_name
Input token name.
Wrapped Ether
token_sold_symbol
Input token symbol.
WETH
token_sold_decimals
Input token decimals.
18
token_sold_amount_raw
Input token amount, unnormalized, in string.
40000000000000000
token_sold_amount
Input token amount, normalized.
0.04
usd_sold_amount
USD value of the input token.
132.4968
outputs
Array of outputs. Note that there can be > 1 outputs for a single trade. Most of the case the bulk of the output values goes to the first output.
First output token address. Output tokens will map to tokens bought. Native ETH will be represented as zero address `0x0000000000000000000000000000000000000000`.
0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
token_bought_name
First output token name.
USD Coin
token_bought_symbol
First output token address.
USDC
token_bought_decimals
First output token decimals.
6
token_bought_amount_raw
Amount of token bought, unnormalized and in string.
119475368
token_bought_amount
Amount of token bought, normalized.
119.475368
usd_bought_amount
USD amount of token bought, normalized.
119.43952539
usd_amount
USD value of the swap. We preferentially select the input (token sold) usd value. If this is not available, we will select the output.
132.4968
additional_validation_contract
Custom validation contract.
0x0000000000000000000000000000000000000000
additional_validation_data
Encoded validation params for additionalValidationContract.
deadline
Deadline timestamp.
1712191068
decay_start_time
The time at which the DutchOutputs start decaying.