Skip to main content

Overview

Two complementary datasets covering arbitrage cycle topology and lifecycle.
  • Dataset IDs: 0801 (paths), 0802 (path status)
  • Tables: blockdb_evm.b0801_arb_paths_v1, blockdb_evm.b0801_arb_path_status_v1
  • Description: Undirected arbitrage cycle topology (paths) and their per-event active/inactive status transitions (path status).
  • Primary keys: path_id (paths); (path_id, block_number, tx_index, log_index) (path status)
  • API: POST /evm/arb/paths, POST /evm/arb/path-status
  • CSV Sample (paths): Download
  • JSON Sample (paths): Download

Sample Viewer

Arbitrage paths (blockdb_evm.b0801_arb_paths_v1)

The paths table is the topology registry for arbitrage cycles. One row is written the first time a given cycle is detected on-chain. A cycle is an undirected loop of pools and tokens — for example a two-hop A → B → A or a three-hop A → B → C → A — where swapping around the loop could yield a net profit. The path_id is a stable 32-byte hash of the cycle topology and serves as the join key for the path status and opportunities tables. Primary key: path_id
ColumnTypeDescription
path_idBYTEA32-byte hash that uniquely identifies this undirected cycle. Stable across blocks — the same topology always produces the same path_id.
block_numberBIGINTBlock height where this path was first observed on-chain.
block_timeTIMESTAMPTZUTC timestamp of the block in which the path was first detected.
tx_indexINTEGERTransaction index within that block (genesis event).
log_indexINTEGERLog index within that transaction (genesis event).
pool_uidsBYTEA[]Ordered array of pool UIDs forming the cycle. The last hop returns to the starting pool, completing the loop. Join to blockdb_evm.b0211_liquidity_pools_v1 for pool metadata.
token_cycleBYTEA[]Token sequence traversed around the cycle (e.g. [A, B, A] for arb2 or [A, B, C, A] for arb3). The first and last token are always the same (the profit-bearing asset).
_tracing_idBYTEADeterministic BlockDB lineage identifier for this path record.
_parent_tracing_idsBYTEA[]Lineage identifiers of the upstream pool/reserve events that triggered path discovery.
_created_atTIMESTAMPTZRecord creation timestamp.
_updated_atTIMESTAMPTZRecord last update timestamp.

Arbitrage path status (blockdb_evm.b0801_arb_path_status_v1)

The path status table records every activation and deactivation event for each path. A path becomes active when all its constituent pools are live and arbitrageable; it becomes inactive when a pool in the cycle is deactivated, has insufficient liquidity, or its reserves change in a way that closes the opportunity. Each row captures the exact on-chain event that caused the transition, making it possible to reconstruct the full activation history of any path. Primary key: (path_id, block_number, tx_index, log_index)
ColumnTypeDescription
path_idBYTEAReference to the path topology in b0801_arb_paths_v1.
block_numberBIGINTBlock height of the status change event.
block_timeTIMESTAMPTZUTC timestamp of the block containing this status change.
tx_indexINTEGERTransaction index within the block.
log_indexINTEGERLog index within the transaction — pinpoints the exact event that caused the status change.
is_activeBOOLEANtrue when the path became active (all pools live and arbitrageable); false when it was deactivated.
trigger_pool_uidBYTEAThe specific pool whose reserve or state change triggered this status transition. Useful for diagnosing which leg of the cycle opened or closed the opportunity.
_tracing_idBYTEADeterministic BlockDB lineage identifier for this status event.
_parent_tracing_idsBYTEA[]Lineage identifiers of the upstream reserve or swap events that caused this status change.
_created_atTIMESTAMPTZRecord creation timestamp.
_updated_atTIMESTAMPTZRecord last update timestamp.

Arbitrage opportunities

Profit estimates per path and on-chain position.

Liquidity Pools

Pool metadata for the pools referenced in each cycle.
Last modified on April 4, 2026