> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blockdb.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Arbitrage Paths

> Arbitrage cycle topology and per-path active/inactive status events.

## 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](/api-reference/evm/arbitrage/arb-paths), [POST /evm/arb/path-status](/api-reference/evm/arbitrage/arb-path-status)
* **CSV Sample (paths):** [Download](https://huggingface.co/datasets/BlockDB/MEV-Arbitrage-Paths-Ethereum-And-EVM-Cryptocurrency-Data/resolve/main/data/blockdb0701_arb_paths_v1.csv?download=true)
* **JSON Sample (paths):** [Download](https://huggingface.co/datasets/BlockDB/MEV-Arbitrage-Paths-Ethereum-And-EVM-Cryptocurrency-Data/resolve/main/data/blockdb0701_arb_paths_v1.json?download=true)

## Sample Viewer

<Frame>
  <iframe src="https://huggingface.co/datasets/BlockDB/MEV-Arbitrage-Paths-Ethereum-And-EVM-Cryptocurrency-Data/embed/viewer/default/train" frameborder="0" width="100%" height="600px" />
</Frame>

## 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`

| Column                | Type          | Description                                                                                                                                                                     |
| --------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `path_id`             | `BYTEA`       | 32-byte hash that uniquely identifies this undirected cycle. Stable across blocks — the same topology always produces the same `path_id`.                                       |
| `block_number`        | `BIGINT`      | Block height where this path was first observed on-chain.                                                                                                                       |
| `block_time`          | `TIMESTAMPTZ` | UTC timestamp of the block in which the path was first detected.                                                                                                                |
| `tx_index`            | `INTEGER`     | Transaction index within that block (genesis event).                                                                                                                            |
| `log_index`           | `INTEGER`     | Log index within that transaction (genesis event).                                                                                                                              |
| `pool_uids`           | `BYTEA[]`     | 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_cycle`         | `BYTEA[]`     | 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_id`         | `BYTEA`       | Deterministic BlockDB lineage identifier for this path record.                                                                                                                  |
| `_parent_tracing_ids` | `BYTEA[]`     | Lineage identifiers of the upstream pool/reserve events that triggered path discovery.                                                                                          |
| `_created_at`         | `TIMESTAMPTZ` | Record creation timestamp.                                                                                                                                                      |
| `_updated_at`         | `TIMESTAMPTZ` | Record 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)`

| Column                | Type          | Description                                                                                                                                                      |
| --------------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `path_id`             | `BYTEA`       | Reference to the path topology in `b0801_arb_paths_v1`.                                                                                                          |
| `block_number`        | `BIGINT`      | Block height of the status change event.                                                                                                                         |
| `block_time`          | `TIMESTAMPTZ` | UTC timestamp of the block containing this status change.                                                                                                        |
| `tx_index`            | `INTEGER`     | Transaction index within the block.                                                                                                                              |
| `log_index`           | `INTEGER`     | Log index within the transaction — pinpoints the exact event that caused the status change.                                                                      |
| `is_active`           | `BOOLEAN`     | `true` when the path became active (all pools live and arbitrageable); `false` when it was deactivated.                                                          |
| `trigger_pool_uid`    | `BYTEA`       | The 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_id`         | `BYTEA`       | Deterministic BlockDB lineage identifier for this status event.                                                                                                  |
| `_parent_tracing_ids` | `BYTEA[]`     | Lineage identifiers of the upstream reserve or swap events that caused this status change.                                                                       |
| `_created_at`         | `TIMESTAMPTZ` | Record creation timestamp.                                                                                                                                       |
| `_updated_at`         | `TIMESTAMPTZ` | Record last update timestamp.                                                                                                                                    |

## Related datasets

<CardGroup cols={2}>
  <Card title="Arbitrage opportunities" icon="chart-line" href="/data-catalog/evm/arbitrage/arb-opportunities">
    Profit estimates per path and on-chain position.
  </Card>

  <Card title="Liquidity Pools" icon="water" href="/data-catalog/evm/entities/liquidity-pools">
    Pool metadata for the pools referenced in each cycle.
  </Card>
</CardGroup>
