Mon, May 25, 2026

Propagation anomalies - 2026-05-25

Detection of blocks that propagated slower than expected, attempting to find correlations with blob count.

Show code
display_sql("block_production_timeline", target_date)
View query
WITH
-- Base slots using proposer duty as the source of truth
slots AS (
    SELECT DISTINCT
        slot,
        slot_start_date_time,
        proposer_validator_index
    FROM canonical_beacon_proposer_duty
    WHERE meta_network_name = 'mainnet'
      AND slot_start_date_time >= '2026-05-25' AND slot_start_date_time < '2026-05-25'::date + INTERVAL 1 DAY
),

-- Proposer entity mapping
proposer_entity AS (
    SELECT
        index,
        entity
    FROM ethseer_validator_entity
    WHERE meta_network_name = 'mainnet'
),

-- Blob count per slot
blob_count AS (
    SELECT
        slot,
        uniq(blob_index) AS blob_count
    FROM canonical_beacon_blob_sidecar
    WHERE meta_network_name = 'mainnet'
      AND slot_start_date_time >= '2026-05-25' AND slot_start_date_time < '2026-05-25'::date + INTERVAL 1 DAY
    GROUP BY slot
),

-- Canonical block hash (to verify MEV payload was actually used)
canonical_block AS (
    SELECT DISTINCT
        slot,
        execution_payload_block_hash
    FROM canonical_beacon_block
    WHERE meta_network_name = 'mainnet'
      AND slot_start_date_time >= '2026-05-25' AND slot_start_date_time < '2026-05-25'::date + INTERVAL 1 DAY
),

-- MEV bid timing using timestamp_ms
mev_bids AS (
    SELECT
        slot,
        slot_start_date_time,
        min(timestamp_ms) AS first_bid_timestamp_ms,
        max(timestamp_ms) AS last_bid_timestamp_ms
    FROM mev_relay_bid_trace
    WHERE meta_network_name = 'mainnet'
      AND slot_start_date_time >= '2026-05-25' AND slot_start_date_time < '2026-05-25'::date + INTERVAL 1 DAY
    GROUP BY slot, slot_start_date_time
),

-- MEV payload delivery - join canonical block with delivered payloads
-- Note: Use is_mev flag because ClickHouse LEFT JOIN returns 0 (not NULL) for non-matching rows
-- Get value from proposer_payload_delivered (not bid_trace, which may not have the winning block)
mev_payload AS (
    SELECT
        cb.slot,
        cb.execution_payload_block_hash AS winning_block_hash,
        1 AS is_mev,
        max(pd.value) AS winning_bid_value,
        groupArray(DISTINCT pd.relay_name) AS relay_names,
        any(pd.builder_pubkey) AS winning_builder
    FROM canonical_block cb
    GLOBAL INNER JOIN mev_relay_proposer_payload_delivered pd
        ON cb.slot = pd.slot AND cb.execution_payload_block_hash = pd.block_hash
    WHERE pd.meta_network_name = 'mainnet'
      AND slot_start_date_time >= '2026-05-25' AND slot_start_date_time < '2026-05-25'::date + INTERVAL 1 DAY
    GROUP BY cb.slot, cb.execution_payload_block_hash
),

-- Winning bid timing from bid_trace (may not exist for all MEV blocks)
winning_bid AS (
    SELECT
        bt.slot,
        bt.slot_start_date_time,
        argMin(bt.timestamp_ms, bt.event_date_time) AS winning_bid_timestamp_ms
    FROM mev_relay_bid_trace bt
    GLOBAL INNER JOIN mev_payload mp ON bt.slot = mp.slot AND bt.block_hash = mp.winning_block_hash
    WHERE bt.meta_network_name = 'mainnet'
      AND slot_start_date_time >= '2026-05-25' AND slot_start_date_time < '2026-05-25'::date + INTERVAL 1 DAY
    GROUP BY bt.slot, bt.slot_start_date_time
),

-- Block gossip timing with spread
block_gossip AS (
    SELECT
        slot,
        min(event_date_time) AS block_first_seen,
        max(event_date_time) AS block_last_seen
    FROM libp2p_gossipsub_beacon_block
    WHERE meta_network_name = 'mainnet'
      AND slot_start_date_time >= '2026-05-25' AND slot_start_date_time < '2026-05-25'::date + INTERVAL 1 DAY
    GROUP BY slot
),

-- Column arrival timing: first arrival per column, then min/max of those
column_gossip AS (
    SELECT
        slot,
        min(first_seen) AS first_column_first_seen,
        max(first_seen) AS last_column_first_seen
    FROM (
        SELECT
            slot,
            column_index,
            min(event_date_time) AS first_seen
        FROM libp2p_gossipsub_data_column_sidecar
        WHERE meta_network_name = 'mainnet'
          AND slot_start_date_time >= '2026-05-25' AND slot_start_date_time < '2026-05-25'::date + INTERVAL 1 DAY
          AND event_date_time > '1970-01-01 00:00:01'
        GROUP BY slot, column_index
    )
    GROUP BY slot
)

SELECT
    s.slot AS slot,
    s.slot_start_date_time AS slot_start_date_time,
    pe.entity AS proposer_entity,

    -- Blob count
    coalesce(bc.blob_count, 0) AS blob_count,

    -- MEV bid timing (absolute and relative to slot start)
    fromUnixTimestamp64Milli(mb.first_bid_timestamp_ms) AS first_bid_at,
    mb.first_bid_timestamp_ms - toInt64(toUnixTimestamp(mb.slot_start_date_time)) * 1000 AS first_bid_ms,
    fromUnixTimestamp64Milli(mb.last_bid_timestamp_ms) AS last_bid_at,
    mb.last_bid_timestamp_ms - toInt64(toUnixTimestamp(mb.slot_start_date_time)) * 1000 AS last_bid_ms,

    -- Winning bid timing (from bid_trace, may be NULL if block hash not in bid_trace)
    if(wb.slot != 0, fromUnixTimestamp64Milli(wb.winning_bid_timestamp_ms), NULL) AS winning_bid_at,
    if(wb.slot != 0, wb.winning_bid_timestamp_ms - toInt64(toUnixTimestamp(s.slot_start_date_time)) * 1000, NULL) AS winning_bid_ms,

    -- MEV payload info (from proposer_payload_delivered, always present for MEV blocks)
    if(mp.is_mev = 1, mp.winning_bid_value, NULL) AS winning_bid_value,
    if(mp.is_mev = 1, mp.relay_names, []) AS winning_relays,
    if(mp.is_mev = 1, mp.winning_builder, NULL) AS winning_builder,

    -- Block gossip timing with spread
    bg.block_first_seen,
    dateDiff('millisecond', s.slot_start_date_time, bg.block_first_seen) AS block_first_seen_ms,
    bg.block_last_seen,
    dateDiff('millisecond', s.slot_start_date_time, bg.block_last_seen) AS block_last_seen_ms,
    dateDiff('millisecond', bg.block_first_seen, bg.block_last_seen) AS block_spread_ms,

    -- Column arrival timing (NULL when no blobs)
    if(coalesce(bc.blob_count, 0) = 0, NULL, cg.first_column_first_seen) AS first_column_first_seen,
    if(coalesce(bc.blob_count, 0) = 0, NULL, dateDiff('millisecond', s.slot_start_date_time, cg.first_column_first_seen)) AS first_column_first_seen_ms,
    if(coalesce(bc.blob_count, 0) = 0, NULL, cg.last_column_first_seen) AS last_column_first_seen,
    if(coalesce(bc.blob_count, 0) = 0, NULL, dateDiff('millisecond', s.slot_start_date_time, cg.last_column_first_seen)) AS last_column_first_seen_ms,
    if(coalesce(bc.blob_count, 0) = 0, NULL, dateDiff('millisecond', cg.first_column_first_seen, cg.last_column_first_seen)) AS column_spread_ms

FROM slots s
GLOBAL LEFT JOIN proposer_entity pe ON s.proposer_validator_index = pe.index
GLOBAL LEFT JOIN blob_count bc ON s.slot = bc.slot
GLOBAL LEFT JOIN mev_bids mb ON s.slot = mb.slot
GLOBAL LEFT JOIN mev_payload mp ON s.slot = mp.slot
GLOBAL LEFT JOIN winning_bid wb ON s.slot = wb.slot
GLOBAL LEFT JOIN block_gossip bg ON s.slot = bg.slot
GLOBAL LEFT JOIN column_gossip cg ON s.slot = cg.slot

ORDER BY s.slot DESC
Show code
df = load_parquet("block_production_timeline", target_date)

# Filter to valid blocks (exclude missed slots)
df = df[df["block_first_seen_ms"].notna()]
df = df[(df["block_first_seen_ms"] >= 0) & (df["block_first_seen_ms"] < 60000)]

# Flag MEV vs local blocks
df["has_mev"] = df["winning_bid_value"].notna()
df["block_type"] = df["has_mev"].map({True: "MEV", False: "Local"})

# Get max blob count for charts
max_blobs = df["blob_count"].max()

print(f"Total valid blocks: {len(df):,}")
print(f"MEV blocks: {df['has_mev'].sum():,} ({df['has_mev'].mean()*100:.1f}%)")
print(f"Local blocks: {(~df['has_mev']).sum():,} ({(~df['has_mev']).mean()*100:.1f}%)")
Total valid blocks: 7,179
MEV blocks: 6,697 (93.3%)
Local blocks: 482 (6.7%)

Anomaly detection method

The method:

  1. Fit linear regression: block_first_seen_ms ~ blob_count
  2. Calculate residuals (actual - expected)
  3. Flag blocks with residuals > 2σ as anomalies

Points above the ±2σ band propagated slower than expected given their blob count.

Show code
# Conditional outliers: blocks slow relative to their blob count
df_anomaly = df.copy()

# Fit regression: block_first_seen_ms ~ blob_count
slope, intercept, r_value, p_value, std_err = stats.linregress(
    df_anomaly["blob_count"].astype(float), df_anomaly["block_first_seen_ms"]
)

# Calculate expected value and residual
df_anomaly["expected_ms"] = intercept + slope * df_anomaly["blob_count"].astype(float)
df_anomaly["residual_ms"] = df_anomaly["block_first_seen_ms"] - df_anomaly["expected_ms"]

# Calculate residual standard deviation
residual_std = df_anomaly["residual_ms"].std()

# Flag anomalies: residual > 2σ (unexpectedly slow)
df_anomaly["is_anomaly"] = df_anomaly["residual_ms"] > 2 * residual_std

n_anomalies = df_anomaly["is_anomaly"].sum()
pct_anomalies = n_anomalies / len(df_anomaly) * 100

# Prepare outliers dataframe
df_outliers = df_anomaly[df_anomaly["is_anomaly"]].copy()
df_outliers["relay"] = df_outliers["winning_relays"].apply(lambda x: x[0] if len(x) > 0 else "Local")
df_outliers["proposer"] = df_outliers["proposer_entity"].fillna("Unknown")
df_outliers["builder"] = df_outliers["winning_builder"].apply(
    lambda x: f"{x[:10]}..." if pd.notna(x) and x else "Local"
)

print(f"Regression: block_ms = {intercept:.1f} + {slope:.2f} × blob_count (R² = {r_value**2:.3f})")
print(f"Residual σ = {residual_std:.1f}ms")
print(f"Anomalies (>2σ slow): {n_anomalies:,} ({pct_anomalies:.1f}%)")
Regression: block_ms = 1663.4 + 18.11 × blob_count (R² = 0.010)
Residual σ = 616.0ms
Anomalies (>2σ slow): 507 (7.1%)
Show code
# Create scatter plot with regression band
x_range = np.array([0, int(max_blobs)])
y_pred = intercept + slope * x_range
y_upper = y_pred + 2 * residual_std
y_lower = y_pred - 2 * residual_std

fig = go.Figure()

# Add ±2σ band
fig.add_trace(go.Scatter(
    x=np.concatenate([x_range, x_range[::-1]]),
    y=np.concatenate([y_upper, y_lower[::-1]]),
    fill="toself",
    fillcolor="rgba(100,100,100,0.2)",
    line=dict(width=0),
    name="±2σ band",
    hoverinfo="skip",
))

# Add regression line
fig.add_trace(go.Scatter(
    x=x_range,
    y=y_pred,
    mode="lines",
    line=dict(color="white", width=2, dash="dash"),
    name="Expected",
))

# Normal points (sample to avoid overplotting)
df_normal = df_anomaly[~df_anomaly["is_anomaly"]]
if len(df_normal) > 2000:
    df_normal = df_normal.sample(2000, random_state=42)

fig.add_trace(go.Scatter(
    x=df_normal["blob_count"],
    y=df_normal["block_first_seen_ms"],
    mode="markers",
    marker=dict(size=4, color="rgba(100,150,200,0.4)"),
    name=f"Normal ({len(df_anomaly) - n_anomalies:,})",
    hoverinfo="skip",
))

# Anomaly points
fig.add_trace(go.Scatter(
    x=df_outliers["blob_count"],
    y=df_outliers["block_first_seen_ms"],
    mode="markers",
    marker=dict(
        size=7,
        color="#e74c3c",
        line=dict(width=1, color="white"),
    ),
    name=f"Anomalies ({n_anomalies:,})",
    customdata=np.column_stack([
        df_outliers["slot"],
        df_outliers["residual_ms"].round(0),
        df_outliers["relay"],
    ]),
    hovertemplate="<b>Slot %{customdata[0]}</b><br>Blobs: %{x}<br>Actual: %{y:.0f}ms<br>+%{customdata[1]}ms vs expected<br>Relay: %{customdata[2]}<extra></extra>",
))

fig.update_layout(
    margin=dict(l=60, r=30, t=30, b=60),
    xaxis=dict(title="Blob count", range=[-0.5, int(max_blobs) + 0.5]),
    yaxis=dict(title="Block first seen (ms from slot start)"),
    legend=dict(orientation="h", yanchor="bottom", y=1.02, xanchor="right", x=1),
    height=500,
)
fig.show(config={"responsive": True})

All propagation anomalies

Blocks that propagated much slower than expected given their blob count, sorted by residual (worst first).

Show code
# All anomalies table with selectable text and Lab links
if n_anomalies > 0:
    df_table = df_outliers.sort_values("residual_ms", ascending=False)[
        ["slot", "blob_count", "block_first_seen_ms", "expected_ms", "residual_ms", "proposer", "builder", "relay"]
    ].copy()
    df_table["block_first_seen_ms"] = df_table["block_first_seen_ms"].round(0).astype(int)
    df_table["expected_ms"] = df_table["expected_ms"].round(0).astype(int)
    df_table["residual_ms"] = df_table["residual_ms"].round(0).astype(int)
    
    # Build HTML table
    html = '''
    <style>
    .anomaly-table { border-collapse: collapse; width: 100%; font-family: monospace; font-size: 13px; }
    .anomaly-table th { background: #2c3e50; color: white; padding: 8px 12px; text-align: left; position: sticky; top: 0; }
    .anomaly-table td { padding: 6px 12px; border-bottom: 1px solid #eee; }
    .anomaly-table tr:hover { background: #f5f5f5; }
    .anomaly-table .num { text-align: right; }
    .anomaly-table .delta { background: #ffebee; color: #c62828; font-weight: bold; }
    .anomaly-table a { color: #1976d2; text-decoration: none; }
    .anomaly-table a:hover { text-decoration: underline; }
    .table-container { max-height: 600px; overflow-y: auto; }
    </style>
    <div class="table-container">
    <table class="anomaly-table">
    <thead>
    <tr><th>Slot</th><th class="num">Blobs</th><th class="num">Actual (ms)</th><th class="num">Expected (ms)</th><th class="num">Δ (ms)</th><th>Proposer</th><th>Builder</th><th>Relay</th></tr>
    </thead>
    <tbody>
    '''
    
    for _, row in df_table.iterrows():
        slot_link = f'<a href="https://lab.ethpandaops.io/ethereum/slots/{row["slot"]}" target="_blank">{row["slot"]}</a>'
        html += f'''<tr>
            <td>{slot_link}</td>
            <td class="num">{row["blob_count"]}</td>
            <td class="num">{row["block_first_seen_ms"]}</td>
            <td class="num">{row["expected_ms"]}</td>
            <td class="num delta">+{row["residual_ms"]}</td>
            <td>{row["proposer"]}</td>
            <td>{row["builder"]}</td>
            <td>{row["relay"]}</td>
        </tr>'''
    
    html += '</tbody></table></div>'
    display(HTML(html))
    print(f"\nTotal anomalies: {len(df_table):,}")
else:
    print("No anomalies detected.")
SlotBlobsActual (ms)Expected (ms)Δ (ms)ProposerBuilderRelay
14406369 0 10444 1663 +8781 solo_stakers Local Local
14408899 0 8184 1663 +6521 kraken Local Local
14406368 8 7072 1808 +5264 upbit Local Local
14405792 6 7011 1772 +5239 whale_0x3ffa Local Local
14405360 0 6224 1663 +4561 whale_0xb6de Local Local
14409984 0 5840 1663 +4177 whale_0x1435 Local Local
14410304 0 5701 1663 +4038 whale_0x1435 Local Local
14405544 0 4809 1663 +3146 solo_stakers Local Local
14406068 0 4714 1663 +3051 whale_0x2f38 Local Local
14405164 0 4690 1663 +3027 solo_stakers Local Local
14403990 1 4626 1681 +2945 solo_stakers Local Local
14405440 0 4312 1663 +2649 whale_0xe389 Local Local
14404409 0 4091 1663 +2428 solo_stakers Local Local
14407155 0 3870 1663 +2207 solo_stakers Local Local
14410150 1 3648 1681 +1967 whale_0x2f38 Local Local
14407456 0 3619 1663 +1956 blockdaemon_lido 0x88857150... Ultra Sound
14410400 5 3674 1754 +1920 senseinode_lido Local Local
14410779 2 3609 1700 +1909 0xa03781b9... Aestus
14404192 2 3568 1700 +1868 blockdaemon_lido 0xb26f9666... Ultra Sound
14407672 1 3536 1681 +1855 coinbase 0xb4ce6162... Ultra Sound
14407268 1 3466 1681 +1785 blockdaemon 0x8a850621... Ultra Sound
14408256 6 3554 1772 +1782 gateway.fmas_lido 0x88a53ec4... BloXroute Max Profit
14407041 1 3450 1681 +1769 nethermind_lido 0x853b0078... BloXroute Max Profit
14405872 2 3468 1700 +1768 blockdaemon 0x857b0038... BloXroute Max Profit
14406902 3 3436 1718 +1718 blockdaemon_lido 0xb67eaa5e... BloXroute Max Profit
14404266 4 3445 1736 +1709 blockdaemon 0x8a850621... Titan Relay
14404382 1 3385 1681 +1704 blockdaemon 0x857b0038... BloXroute Max Profit
14405702 0 3356 1663 +1693 blockdaemon 0x8a850621... Ultra Sound
14406983 1 3370 1681 +1689 blockdaemon 0x8db2a99d... Titan Relay
14404843 0 3349 1663 +1686 blockdaemon_lido 0xb26f9666... Titan Relay
14408994 0 3349 1663 +1686 blockdaemon_lido 0x88857150... Ultra Sound
14403648 1 3366 1681 +1685 stakefish 0xb26f9666... Titan Relay
14407306 0 3345 1663 +1682 blockdaemon_lido 0x88857150... Ultra Sound
14407443 1 3358 1681 +1677 0xb26f9666... Titan Relay
14405059 1 3356 1681 +1675 blockdaemon 0x853b0078... BloXroute Max Profit
14405047 1 3351 1681 +1670 blockdaemon_lido 0xb67eaa5e... BloXroute Max Profit
14409003 9 3492 1826 +1666 blockdaemon 0xb26f9666... Ultra Sound
14409598 3 3381 1718 +1663 blockdaemon 0x88857150... Ultra Sound
14408031 1 3331 1681 +1650 whale_0xdc8d 0x8527d16c... Ultra Sound
14407167 6 3421 1772 +1649 csm_operator495_lido 0x8db2a99d... BloXroute Max Profit
14405669 0 3307 1663 +1644 0x8527d16c... Ultra Sound
14408093 3 3361 1718 +1643 Local Local
14403711 7 3433 1790 +1643 revolut 0xb67eaa5e... BloXroute Regulated
14410588 9 3469 1826 +1643 whale_0xdc8d 0xb67eaa5e... BloXroute Max Profit
14409271 9 3467 1826 +1641 whale_0xdc8d 0x8527d16c... Ultra Sound
14407169 6 3408 1772 +1636 revolut Local Local
14404619 1 3313 1681 +1632 revolut 0xb67eaa5e... BloXroute Regulated
14405759 1 3311 1681 +1630 luno 0x8527d16c... Ultra Sound
14406279 0 3291 1663 +1628 blockdaemon_lido 0x88a53ec4... BloXroute Max Profit
14410381 0 3288 1663 +1625 blockdaemon 0xb26f9666... Titan Relay
14409662 5 3378 1754 +1624 whale_0xdc8d 0x8527d16c... Ultra Sound
14407746 6 3393 1772 +1621 luno 0x8527d16c... Ultra Sound
14404173 7 3411 1790 +1621 blockdaemon_lido 0x8527d16c... Ultra Sound
14405765 0 3284 1663 +1621 blockdaemon 0x8527d16c... Ultra Sound
14404925 1 3302 1681 +1621 blockdaemon_lido 0xb67eaa5e... Titan Relay
14406886 0 3280 1663 +1617 luno 0x8527d16c... Ultra Sound
14404913 0 3280 1663 +1617 blockdaemon 0x8527d16c... Ultra Sound
14405585 2 3315 1700 +1615 0x85fb0503... BloXroute Max Profit
14403682 5 3369 1754 +1615 nethermind_lido 0x8db2a99d... BloXroute Max Profit
14410094 0 3278 1663 +1615 blockdaemon 0x8527d16c... Ultra Sound
14405497 3 3332 1718 +1614 blockdaemon 0x8db2a99d... BloXroute Max Profit
14406174 0 3273 1663 +1610 0x8527d16c... Ultra Sound
14408694 0 3269 1663 +1606 0x8527d16c... Ultra Sound
14405002 0 3267 1663 +1604 blockdaemon 0x853b0078... BloXroute Max Profit
14407149 7 3390 1790 +1600 revolut 0x88a53ec4... BloXroute Regulated
14409461 3 3314 1718 +1596 blockdaemon_lido 0x8527d16c... Ultra Sound
14409779 0 3257 1663 +1594 blockdaemon 0x805e28e6... Ultra Sound
14408711 6 3365 1772 +1593 blockdaemon 0x8527d16c... Ultra Sound
14408332 5 3345 1754 +1591 blockdaemon 0x857b0038... BloXroute Max Profit
14404003 0 3253 1663 +1590 blockdaemon 0x805e28e6... Ultra Sound
14403661 0 3251 1663 +1588 gateway.fmas_lido 0xb67eaa5e... BloXroute Max Profit
14403811 0 3250 1663 +1587 whale_0xfd67 0xb67eaa5e... Titan Relay
14410083 1 3266 1681 +1585 blockdaemon 0x856b0004... BloXroute Max Profit
14409833 0 3247 1663 +1584 gateway.fmas_lido 0x851b00b1... Ultra Sound
14405907 0 3247 1663 +1584 blockdaemon_lido 0x99cba505... BloXroute Max Profit
14407445 10 3427 1844 +1583 blockdaemon 0x88a53ec4... BloXroute Regulated
14408016 0 3245 1663 +1582 revolut 0x823e0146... BloXroute Max Profit
14407951 2 3280 1700 +1580 gateway.fmas_lido 0x88a53ec4... BloXroute Max Profit
14405963 5 3334 1754 +1580 revolut 0x8527d16c... Ultra Sound
14406881 4 3310 1736 +1574 gateway.fmas_lido 0x88a53ec4... BloXroute Max Profit
14408438 8 3382 1808 +1574 blockdaemon_lido 0xb67eaa5e... Ultra Sound
14404109 4 3309 1736 +1573 blockdaemon_lido 0x85fb0503... BloXroute Max Profit
14407403 0 3229 1663 +1566 blockdaemon_lido 0xb67eaa5e... Titan Relay
14404687 7 3355 1790 +1565 revolut 0xb67eaa5e... BloXroute Max Profit
14409939 3 3282 1718 +1564 gateway.fmas_lido 0xb67eaa5e... BloXroute Regulated
14410086 7 3352 1790 +1562 blockdaemon_lido 0xb67eaa5e... Titan Relay
14409584 0 3225 1663 +1562 blockdaemon_lido 0x88a53ec4... BloXroute Regulated
14404430 0 3225 1663 +1562 gateway.fmas_lido 0x850b00e0... Flashbots
14404546 0 3224 1663 +1561 gateway.fmas_lido 0xb67eaa5e... BloXroute Max Profit
14410533 0 3222 1663 +1559 blockdaemon 0x8527d16c... Ultra Sound
14409422 8 3366 1808 +1558 whale_0xdc8d 0x8527d16c... Ultra Sound
14407764 0 3221 1663 +1558 gateway.fmas_lido 0x851b00b1... BloXroute Max Profit
14405419 6 3329 1772 +1557 luno 0x853b0078... BloXroute Max Profit
14405558 5 3310 1754 +1556 p2porg_lido 0xb67eaa5e... BloXroute Regulated
14406063 5 3310 1754 +1556 blockdaemon_lido 0x8db2a99d... BloXroute Max Profit
14407166 8 3360 1808 +1552 whale_0xdc8d 0xb26f9666... Titan Relay
14404189 5 3304 1754 +1550 blockdaemon_lido 0x8527d16c... Ultra Sound
14405397 8 3358 1808 +1550 blockdaemon 0x850b00e0... BloXroute Max Profit
14404357 11 3411 1863 +1548 blockdaemon_lido 0xb67eaa5e... Ultra Sound
14405678 6 3320 1772 +1548 blockdaemon 0x8527d16c... Ultra Sound
14404044 1 3228 1681 +1547 gateway.fmas_lido 0xb67eaa5e... BloXroute Max Profit
14408257 0 3206 1663 +1543 blockdaemon 0x82c466b9... BloXroute Regulated
14408167 3 3256 1718 +1538 blockdaemon_lido 0x850b00e0... BloXroute Regulated
14406260 7 3324 1790 +1534 gateway.fmas_lido 0x850b00e0... Flashbots
14409202 0 3197 1663 +1534 gateway.fmas_lido 0x88a53ec4... BloXroute Regulated
14405383 0 3196 1663 +1533 blockdaemon 0x851b00b1... BloXroute Max Profit
14408381 0 3195 1663 +1532 blockdaemon_lido 0x851b00b1... BloXroute Max Profit
14403688 1 3213 1681 +1532 gateway.fmas_lido 0x8db2a99d... BloXroute Max Profit
14409526 0 3194 1663 +1531 blockdaemon Local Local
14403620 0 3192 1663 +1529 whale_0x75ff 0x88857150... Ultra Sound
14404982 6 3298 1772 +1526 blockdaemon 0x85fb0503... BloXroute Max Profit
14404754 0 3186 1663 +1523 revolut 0xb7c5c39a... BloXroute Max Profit
14407125 0 3186 1663 +1523 gateway.fmas_lido 0x851b00b1... BloXroute Max Profit
14408980 8 3328 1808 +1520 luno 0x8527d16c... Ultra Sound
14408141 5 3273 1754 +1519 blockdaemon_lido 0xb67eaa5e... Ultra Sound
14403704 1 3200 1681 +1519 gateway.fmas_lido 0x88a53ec4... BloXroute Regulated
14407766 6 3286 1772 +1514 blockdaemon_lido 0x8527d16c... Ultra Sound
14406026 8 3316 1808 +1508 p2porg_lido 0x850b00e0... Flashbots
14407156 6 3278 1772 +1506 blockdaemon Local Local
14404973 0 3168 1663 +1505 gateway.fmas_lido 0x8db2a99d... BloXroute Max Profit
14410139 0 3167 1663 +1504 blockdaemon 0x8527d16c... Ultra Sound
14405787 13 3399 1899 +1500 revolut 0x88a53ec4... BloXroute Max Profit
14404202 0 3163 1663 +1500 whale_0xfd67 0xb67eaa5e... Titan Relay
14405525 1 3181 1681 +1500 revolut 0x8527d16c... Ultra Sound
14406900 2 3192 1700 +1492 p2porg_lido 0x850b00e0... Flashbots
14407407 0 3155 1663 +1492 gateway.fmas_lido 0x88a53ec4... BloXroute Regulated
14410715 2 3190 1700 +1490 whale_0x4b5e 0x8db2a99d... Ultra Sound
14409861 12 3371 1881 +1490 revolut 0x823e0146... Ultra Sound
14409714 0 3153 1663 +1490 gateway.fmas_lido 0x823e0146... BloXroute Max Profit
14410784 1 3171 1681 +1490 whale_0xedc6 0xac23f8cc... BloXroute Max Profit
14407533 6 3261 1772 +1489 revolut 0xb26f9666... Titan Relay
14404685 0 3151 1663 +1488 kiln 0x8527d16c... Ultra Sound
14405315 1 3169 1681 +1488 revolut 0x856b0004... BloXroute Max Profit
14409439 0 3148 1663 +1485 whale_0x8914 0xb4ce6162... Ultra Sound
14410553 8 3292 1808 +1484 gateway.fmas_lido 0xb67eaa5e... BloXroute Max Profit
14406971 1 3165 1681 +1484 p2porg_lido 0x850b00e0... Flashbots
14410440 8 3290 1808 +1482 blockdaemon 0x850b00e0... BloXroute Max Profit
14407701 1 3163 1681 +1482 whale_0x8ebd 0xb67eaa5e... BloXroute Max Profit
14408865 12 3362 1881 +1481 gateway.fmas_lido 0x8db2a99d... BloXroute Max Profit
14405515 6 3246 1772 +1474 gateway.fmas_lido 0xb67eaa5e... BloXroute Max Profit
14405661 0 3136 1663 +1473 whale_0x4b5e 0x96f44633... Ultra Sound
14408386 0 3134 1663 +1471 whale_0x8914 0x88a53ec4... BloXroute Max Profit
14403924 2 3170 1700 +1470 blockdaemon_lido 0x85fb0503... BloXroute Max Profit
14407969 9 3296 1826 +1470 p2porg_lido Local Local
14404353 1 3149 1681 +1468 p2porg_lido Local Local
14406006 0 3130 1663 +1467 figment 0x8db2a99d... BloXroute Max Profit
14405754 3 3183 1718 +1465 kiln 0x88a53ec4... BloXroute Regulated
14403957 1 3146 1681 +1465 whale_0xedc6 0x857b0038... Flashbots
14410214 4 3199 1736 +1463 p2porg_lido 0x88a53ec4... BloXroute Max Profit
14407665 11 3325 1863 +1462 whale_0xdc8d 0x856b0004... BloXroute Max Profit
14405140 5 3216 1754 +1462 blockdaemon 0xb26f9666... Ultra Sound
14408151 6 3233 1772 +1461 whale_0x8ebd 0xb67eaa5e... BloXroute Regulated
14405493 0 3123 1663 +1460 gateway.fmas_lido 0x823e0146... Flashbots
14406003 0 3122 1663 +1459 p2porg_lido 0x926b7905... BloXroute Max Profit
14406177 0 3119 1663 +1456 blockdaemon_lido 0x851b00b1... Ultra Sound
14408701 10 3300 1844 +1456 coinbase 0xb7c5e609... BloXroute Max Profit
14408140 1 3137 1681 +1456 p2porg 0x853b0078... BloXroute Max Profit
14408478 0 3116 1663 +1453 p2porg_lido 0x851b00b1... BloXroute Max Profit
14406641 1 3134 1681 +1453 Local Local
14405250 1 3134 1681 +1453 blockdaemon_lido 0x856b0004... Ultra Sound
14406945 7 3242 1790 +1452 whale_0x6ddb 0xb67eaa5e... BloXroute Regulated
14406499 5 3204 1754 +1450 p2porg_lido 0x850b00e0... Flashbots
14405526 5 3203 1754 +1449 gateway.fmas_lido 0x853b0078... Flashbots
14408813 0 3112 1663 +1449 blockdaemon_lido 0xb26f9666... Titan Relay
14407869 2 3148 1700 +1448 whale_0xba40 0x8527d16c... Ultra Sound
14405737 0 3111 1663 +1448 p2porg 0xac23f8cc... Titan Relay
14408375 9 3273 1826 +1447 figment 0x850b00e0... BloXroute Max Profit
14405956 3 3164 1718 +1446 whale_0x0000 0x850b00e0... Flashbots
14407880 1 3127 1681 +1446 whale_0xfd67 0xb67eaa5e... BloXroute Max Profit
14409965 0 3107 1663 +1444 whale_0x8ebd 0x8527d16c... Ultra Sound
14409747 2 3143 1700 +1443 whale_0x4b5e 0x88a53ec4... BloXroute Max Profit
14404324 0 3106 1663 +1443 whale_0xedc6 0x851b00b1... BloXroute Max Profit
14409138 7 3231 1790 +1441 blockdaemon_lido 0x88857150... Ultra Sound
14409033 1 3121 1681 +1440 coinbase 0x88a53ec4... BloXroute Regulated
14410652 0 3101 1663 +1438 p2porg_lido 0x851b00b1... BloXroute Max Profit
14408669 5 3189 1754 +1435 gateway.fmas_lido 0x823e0146... BloXroute Max Profit
14409693 2 3133 1700 +1433 p2porg 0x850b00e0... Flashbots
14404312 2 3129 1700 +1429 0xb26f9666... BloXroute Regulated
14409095 3 3147 1718 +1429 p2porg_lido 0x850b00e0... BloXroute Max Profit
14409158 5 3181 1754 +1427 whale_0x8ebd 0xb67eaa5e... BloXroute Max Profit
14409540 10 3264 1844 +1420 p2porg 0x88a53ec4... BloXroute Regulated
14407220 0 3081 1663 +1418 p2porg 0x851b00b1... BloXroute Max Profit
14408504 0 3081 1663 +1418 coinbase 0x8527d16c... Ultra Sound
14406991 5 3171 1754 +1417 p2porg_lido 0x823e0146... BloXroute Max Profit
14407945 0 3078 1663 +1415 p2porg_lido 0xb67eaa5e... BloXroute Max Profit
14408062 4 3150 1736 +1414 p2porg_lido 0x850b00e0... BloXroute Max Profit
14410441 6 3186 1772 +1414 whale_0x8ebd 0xb26f9666... Titan Relay
14405149 10 3258 1844 +1414 blockdaemon_lido 0x823e0146... BloXroute Max Profit
14407000 1 3095 1681 +1414 0x823e0146... BloXroute Max Profit
14403765 0 3076 1663 +1413 p2porg_lido 0x851b00b1... BloXroute Max Profit
14405103 10 3257 1844 +1413 kraken 0x8527d16c... EthGas
14407503 1 3093 1681 +1412 whale_0x6ddb 0x88a53ec4... BloXroute Max Profit
14407342 3 3129 1718 +1411 kiln 0x9129eeb4... Ultra Sound
14404219 1 3092 1681 +1411 0xb26f9666... Titan Relay
14408162 2 3110 1700 +1410 whale_0x8ebd 0xb26f9666... BloXroute Max Profit
14407845 6 3182 1772 +1410 p2porg_lido 0xb67eaa5e... BloXroute Max Profit
14408053 4 3145 1736 +1409 coinbase 0xb67eaa5e... BloXroute Regulated
14409510 1 3089 1681 +1408 p2porg 0xb26f9666... Titan Relay
14405300 0 3069 1663 +1406 whale_0x8ebd 0x8db2a99d... Titan Relay
14406204 1 3087 1681 +1406 whale_0x8914 0xb67eaa5e... BloXroute Regulated
14405477 6 3175 1772 +1403 whale_0x8ebd 0xb67eaa5e... BloXroute Regulated
14405269 0 3065 1663 +1402 whale_0xedc6 0x851b00b1... BloXroute Max Profit
14403925 0 3065 1663 +1402 whale_0x8ebd 0xb26f9666... Titan Relay
14404909 1 3083 1681 +1402 kiln 0xb26f9666... Titan Relay
14406222 0 3064 1663 +1401 figment 0x8db2a99d... Titan Relay
14408374 0 3064 1663 +1401 p2porg_lido 0x88a53ec4... BloXroute Max Profit
14406672 5 3153 1754 +1399 coinbase 0xb26f9666... Titan Relay
14407442 6 3171 1772 +1399 whale_0xba40 0x88857150... Ultra Sound
14408429 1 3080 1681 +1399 coinbase 0x8527d16c... Ultra Sound
14407102 6 3169 1772 +1397 whale_0xfd67 0x8db2a99d... Ultra Sound
14405498 6 3169 1772 +1397 p2porg_lido 0x8db2a99d... BloXroute Max Profit
14405450 0 3059 1663 +1396 p2porg 0x851b00b1... BloXroute Max Profit
14407313 0 3058 1663 +1395 coinbase 0x823e0146... Titan Relay
14407580 1 3075 1681 +1394 coinbase 0x823e0146... Titan Relay
14406120 5 3147 1754 +1393 p2porg 0xb26f9666... Titan Relay
14406025 1 3074 1681 +1393 whale_0x8ebd 0x8db2a99d... BloXroute Max Profit
14403659 0 3055 1663 +1392 kiln 0x823e0146... Titan Relay
14407441 0 3055 1663 +1392 p2porg_lido 0x851b00b1... BloXroute Max Profit
14406812 2 3091 1700 +1391 whale_0x8ebd 0x8db2a99d... BloXroute Max Profit
14405317 6 3163 1772 +1391 whale_0x8ebd 0x8a850621... BloXroute Max Profit
14410534 12 3271 1881 +1390 p2porg_lido 0xb67eaa5e... BloXroute Max Profit
14406483 0 3053 1663 +1390 coinbase 0x8527d16c... Ultra Sound
14409524 0 3053 1663 +1390 whale_0x8914 0x88a53ec4... BloXroute Regulated
14408264 0 3053 1663 +1390 p2porg_lido 0xb67eaa5e... BloXroute Regulated
14410787 1 3071 1681 +1390 p2porg 0x8db2a99d... BloXroute Max Profit
14410733 3 3107 1718 +1389 whale_0x8ebd 0x853b0078... BloXroute Max Profit
14405087 0 3052 1663 +1389 figment 0x8db2a99d... BloXroute Max Profit
14404030 6 3160 1772 +1388 whale_0x8ebd 0xb26f9666... Titan Relay
14409097 10 3231 1844 +1387 p2porg 0xb67eaa5e... BloXroute Max Profit
14407071 1 3067 1681 +1386 p2porg 0x823e0146... BloXroute Max Profit
14405801 0 3048 1663 +1385 p2porg 0x850b00e0... Flashbots
14405127 1 3066 1681 +1385 whale_0x8ebd 0x8db2a99d... Titan Relay
14407341 7 3174 1790 +1384 p2porg 0x850b00e0... BloXroute Regulated
14405977 7 3174 1790 +1384 coinbase 0xb26f9666... BloXroute Max Profit
14406387 1 3065 1681 +1384 whale_0x8ebd 0x8527d16c... Ultra Sound
14408224 3 3100 1718 +1382 p2porg_lido 0x823e0146... BloXroute Max Profit
14404853 0 3045 1663 +1382 coinbase 0xb67eaa5e... BloXroute Regulated
14408363 0 3045 1663 +1382 p2porg_lido 0x823e0146... BloXroute Max Profit
14407023 0 3044 1663 +1381 coinbase 0x94e8a339... BloXroute Max Profit
14406011 0 3044 1663 +1381 whale_0x8ebd 0x853b0078... BloXroute Max Profit
14403884 2 3080 1700 +1380 whale_0x8ebd 0xac09aa45... Flashbots
14409954 5 3134 1754 +1380 coinbase 0x8db2a99d... BloXroute Max Profit
14405726 0 3041 1663 +1378 whale_0x8ebd 0xb67eaa5e... BloXroute Regulated
14403692 10 3222 1844 +1378 p2porg_lido 0xb67eaa5e... BloXroute Max Profit
14405683 1 3059 1681 +1378 0x853b0078... BloXroute Max Profit
14409621 4 3113 1736 +1377 p2porg_lido 0xb67eaa5e... BloXroute Max Profit
14409916 0 3039 1663 +1376 coinbase 0xb26f9666... Titan Relay
14405229 1 3057 1681 +1376 p2porg 0x853b0078... BloXroute Max Profit
14408246 5 3129 1754 +1375 coinbase 0x8527d16c... Ultra Sound
14404942 0 3037 1663 +1374 coinbase 0x8527d16c... Ultra Sound
14409451 5 3127 1754 +1373 whale_0x8ebd 0x8527d16c... Ultra Sound
14409529 7 3162 1790 +1372 0x8db2a99d... BloXroute Max Profit
14405231 0 3035 1663 +1372 figment 0x99cba505... Ultra Sound
14407068 3 3088 1718 +1370 p2porg 0x8db2a99d... BloXroute Max Profit
14408488 1 3051 1681 +1370 coinbase 0x8db2a99d... BloXroute Max Profit
14405684 1 3051 1681 +1370 p2porg 0x823e0146... Ultra Sound
14404209 2 3069 1700 +1369 whale_0x8ebd 0x8527d16c... Ultra Sound
14405889 1 3050 1681 +1369 p2porg 0x8db2a99d... BloXroute Max Profit
14406666 0 3031 1663 +1368 whale_0x8ebd 0xb4ce6162... Ultra Sound
14410277 1 3049 1681 +1368 kiln 0xb67eaa5e... BloXroute Regulated
14410200 12 3248 1881 +1367 whale_0x3878 0x88a53ec4... BloXroute Max Profit
14408603 5 3121 1754 +1367 kiln 0xb26f9666... BloXroute Max Profit
14405310 3 3084 1718 +1366 p2porg 0x8db2a99d... Titan Relay
14407159 0 3029 1663 +1366 kiln 0x851b00b1... BloXroute Max Profit
14408109 1 3046 1681 +1365 coinbase 0x856b0004... BloXroute Max Profit
14405939 12 3245 1881 +1364 whale_0x8914 0x85fb0503... BloXroute Max Profit
14410070 12 3245 1881 +1364 whale_0xfd67 0xb67eaa5e... Titan Relay
14408831 2 3063 1700 +1363 p2porg_lido 0x8db2a99d... BloXroute Max Profit
14409935 12 3244 1881 +1363 whale_0x8ebd 0x88a53ec4... BloXroute Regulated
14408431 1 3044 1681 +1363 coinbase 0xb26f9666... Titan Relay
14406215 1 3043 1681 +1362 0x8db2a99d... BloXroute Max Profit
14410710 0 3024 1663 +1361 0x8527d16c... Ultra Sound
14405283 5 3114 1754 +1360 blockdaemon 0x88a53ec4... BloXroute Max Profit
14409829 0 3023 1663 +1360 coinbase 0xb26f9666... BloXroute Regulated
14406519 2 3059 1700 +1359 p2porg 0x823e0146... BloXroute Max Profit
14403974 0 3022 1663 +1359 whale_0x8ebd 0x8527d16c... Ultra Sound
14409563 0 3022 1663 +1359 whale_0x8ebd 0xb26f9666... BloXroute Max Profit
14404392 1 3040 1681 +1359 kiln 0x88857150... Ultra Sound
14408707 1 3040 1681 +1359 kiln 0xb26f9666... BloXroute Max Profit
14410005 1 3038 1681 +1357 kiln 0x856b0004... BloXroute Max Profit
14404403 0 3018 1663 +1355 whale_0x8ebd 0x8db2a99d... BloXroute Max Profit
14409967 0 3018 1663 +1355 p2porg 0x85fb0503... BloXroute Max Profit
14408228 4 3089 1736 +1353 Local Local
14409076 5 3107 1754 +1353 whale_0x8ebd 0x88857150... Ultra Sound
14407291 1 3034 1681 +1353 coinbase 0xb26f9666... BloXroute Max Profit
14406669 6 3124 1772 +1352 whale_0x8ebd 0x8527d16c... Ultra Sound
14410451 3 3069 1718 +1351 p2porg 0x88a53ec4... BloXroute Max Profit
14410714 14 3268 1917 +1351 whale_0xfd67 0xb67eaa5e... BloXroute Regulated
14410644 5 3103 1754 +1349 blockdaemon 0x8527d16c... Ultra Sound
14407762 1 3030 1681 +1349 coinbase 0x8527d16c... Ultra Sound
14405307 1 3029 1681 +1348 whale_0x8ebd 0x8db2a99d... BloXroute Max Profit
14405663 3 3065 1718 +1347 whale_0x8ebd 0x8527d16c... Ultra Sound
14403646 8 3155 1808 +1347 p2porg 0x850b00e0... Flashbots
14405104 3 3063 1718 +1345 kiln 0xb26f9666... Titan Relay
14404752 5 3099 1754 +1345 p2porg 0xb26f9666... Titan Relay
14404578 1 3026 1681 +1345 kiln 0x8db2a99d... Titan Relay
14405783 11 3207 1863 +1344 0x850b00e0... Flashbots
14410686 0 3007 1663 +1344 whale_0x8ebd 0xb26f9666... BloXroute Regulated
14403963 5 3097 1754 +1343 kiln 0xb67eaa5e... BloXroute Regulated
14405270 0 3006 1663 +1343 p2porg_lido 0x85fb0503... BloXroute Max Profit
14404706 0 3006 1663 +1343 whale_0x8ebd 0x85fb0503... BloXroute Max Profit
14409134 10 3186 1844 +1342 gateway.fmas_lido 0x823e0146... BloXroute Max Profit
14405577 1 3023 1681 +1342 whale_0x8ebd 0xb4ce6162... Ultra Sound
14406642 11 3204 1863 +1341 kiln 0xb67eaa5e... BloXroute Max Profit
14405101 1 3022 1681 +1341 whale_0x8ebd Local Local
14410258 1 3022 1681 +1341 kiln 0x8527d16c... Ultra Sound
14409962 6 3112 1772 +1340 whale_0x8ebd 0xb26f9666... BloXroute Regulated
14410030 1 3021 1681 +1340 coinbase 0x8527d16c... Ultra Sound
14409372 9 3165 1826 +1339 coinbase 0xb26f9666... Titan Relay
14405680 5 3092 1754 +1338 coinbase 0x8527d16c... Ultra Sound
14407648 6 3110 1772 +1338 coinbase 0x8527d16c... Ultra Sound
14409802 3 3054 1718 +1336 coinbase 0x8527d16c... Ultra Sound
14408972 5 3090 1754 +1336 whale_0x8ebd 0xb26f9666... Titan Relay
14407677 5 3090 1754 +1336 coinbase 0xb26f9666... BloXroute Max Profit
14406673 1 3017 1681 +1336 whale_0x8ebd 0xb26f9666... BloXroute Regulated
14404166 5 3089 1754 +1335 p2porg_lido 0x823e0146... BloXroute Max Profit
14404473 6 3107 1772 +1335 whale_0x8ebd 0xb26f9666... Titan Relay
14407641 1 3016 1681 +1335 coinbase 0x853b0078... BloXroute Max Profit
14407474 5 3088 1754 +1334 whale_0xedc6 0x823e0146... Flashbots
14410782 6 3106 1772 +1334 coinbase 0x8db2a99d... BloXroute Max Profit
14404937 11 3196 1863 +1333 kiln 0x88a53ec4... BloXroute Regulated
14403730 0 2996 1663 +1333 coinbase 0x856b0004... BloXroute Max Profit
14409946 5 3086 1754 +1332 whale_0x8ebd 0xb26f9666... Titan Relay
14404314 6 3104 1772 +1332 kiln 0x8527d16c... Ultra Sound
14405190 5 3085 1754 +1331 p2porg_lido 0x856b0004... Ultra Sound
14410580 1 3012 1681 +1331 kiln 0x85fb0503... BloXroute Max Profit
14406963 1 3012 1681 +1331 coinbase 0x88857150... Ultra Sound
14406148 4 3066 1736 +1330 0xb26f9666... BloXroute Max Profit
14405409 6 3101 1772 +1329 whale_0x8ebd 0xb26f9666... BloXroute Regulated
14403959 8 3137 1808 +1329 kiln 0x8db2a99d... Ultra Sound
14406238 6 3100 1772 +1328 p2porg 0x850b00e0... Flashbots
14410154 0 2991 1663 +1328 p2porg 0x85fb0503... BloXroute Max Profit
14408564 0 2991 1663 +1328 bitstamp 0x85fb0503... BloXroute Max Profit
14408939 3 3045 1718 +1327 p2porg 0xb26f9666... BloXroute Max Profit
14410767 5 3081 1754 +1327 kiln 0x8527d16c... Ultra Sound
14409244 6 3099 1772 +1327 whale_0x8ebd 0x8527d16c... Ultra Sound
14409339 7 3117 1790 +1327 p2porg_lido 0x8527d16c... Ultra Sound
14408854 0 2990 1663 +1327 coinbase 0x8527d16c... Ultra Sound
14405555 1 3008 1681 +1327 kiln 0x8527d16c... Ultra Sound
14406695 5 3080 1754 +1326 coinbase 0x88857150... Ultra Sound
14409989 0 2988 1663 +1325 coinbase 0xb26f9666... BloXroute Regulated
14404932 0 2988 1663 +1325 coinbase 0x8527d16c... Ultra Sound
14407124 1 3006 1681 +1325 coinbase 0x8527d16c... Ultra Sound
14409426 5 3078 1754 +1324 p2porg 0xb26f9666... Titan Relay
14405186 7 3114 1790 +1324 p2porg 0x850b00e0... BloXroute Regulated
14410774 1 3004 1681 +1323 kiln 0xa03781b9... Aestus
14410197 11 3185 1863 +1322 whale_0x8914 0xb67eaa5e... Titan Relay
14405589 12 3203 1881 +1322 blockdaemon 0x8527d16c... Ultra Sound
14405992 5 3076 1754 +1322 kiln 0x8527d16c... Ultra Sound
14407438 4 3057 1736 +1321 whale_0x8ebd 0x823e0146... BloXroute Max Profit
14408509 0 2984 1663 +1321 coinbase 0x88857150... Ultra Sound
14408604 1 3002 1681 +1321 kiln 0xb26f9666... BloXroute Regulated
14406457 3 3038 1718 +1320 kiln 0xb26f9666... BloXroute Max Profit
14404605 0 2983 1663 +1320 p2porg 0x9129eeb4... Agnostic Gnosis
14404991 0 2983 1663 +1320 coinbase 0x8db2a99d... BloXroute Max Profit
14404029 1 3000 1681 +1319 coinbase 0x85fb0503... BloXroute Max Profit
14408807 3 3036 1718 +1318 everstake 0x88a53ec4... BloXroute Regulated
14407799 0 2981 1663 +1318 everstake 0x8527d16c... Ultra Sound
14404262 1 2999 1681 +1318 coinbase 0x85fb0503... BloXroute Max Profit
14407108 6 3089 1772 +1317 p2porg 0xb26f9666... Titan Relay
14403877 6 3089 1772 +1317 everstake 0x88a53ec4... BloXroute Regulated
14404250 6 3087 1772 +1315 kiln 0x88a53ec4... BloXroute Regulated
14406671 0 2978 1663 +1315 kiln 0xb67eaa5e... BloXroute Regulated
14405443 9 3140 1826 +1314 coinbase 0xb7c5c39a... BloXroute Max Profit
14403981 5 3067 1754 +1313 coinbase 0x8527d16c... Ultra Sound
14404538 0 2976 1663 +1313 kiln 0xb26f9666... BloXroute Max Profit
14410213 5 3066 1754 +1312 kiln 0xb26f9666... BloXroute Max Profit
14403805 0 2975 1663 +1312 kiln 0x8db2a99d... Ultra Sound
14405220 1 2993 1681 +1312 whale_0x8ebd 0xb26f9666... BloXroute Regulated
14406974 5 3065 1754 +1311 whale_0xedc6 0x8db2a99d... BloXroute Max Profit
14407615 2 3010 1700 +1310 kiln 0xb26f9666... BloXroute Max Profit
14407842 4 3046 1736 +1310 whale_0x8ebd 0x8527d16c... Ultra Sound
14409996 14 3226 1917 +1309 whale_0x8914 0x8db2a99d... Ultra Sound
14410278 5 3063 1754 +1309 kiln 0xb26f9666... BloXroute Regulated
14408623 5 3062 1754 +1308 whale_0x8ebd 0xb26f9666... BloXroute Max Profit
14410163 5 3062 1754 +1308 kiln 0xb26f9666... BloXroute Max Profit
14405576 5 3062 1754 +1308 p2porg_lido 0x85fb0503... BloXroute Max Profit
14409348 0 2971 1663 +1308 bitstamp 0x851b00b1... BloXroute Max Profit
14405964 1 2989 1681 +1308 p2porg 0xb26f9666... BloXroute Max Profit
14407591 4 3043 1736 +1307 kiln Local Local
14405473 2 3005 1700 +1305 whale_0x8ebd 0x88857150... Ultra Sound
14410169 7 3095 1790 +1305 p2porg 0x8db2a99d... BloXroute Max Profit
14405359 4 3040 1736 +1304 p2porg 0x853b0078... BloXroute Max Profit
14405405 7 3094 1790 +1304 kiln 0xb26f9666... BloXroute Max Profit
14405567 5 3057 1754 +1303 p2porg_lido 0x8db2a99d... BloXroute Max Profit
14407402 9 3129 1826 +1303 whale_0x8ebd 0xb26f9666... BloXroute Max Profit
14409766 2 3002 1700 +1302 kiln 0x88857150... Ultra Sound
14406218 3 3020 1718 +1302 whale_0x8ebd 0xb26f9666... BloXroute Regulated
14409835 5 3056 1754 +1302 everstake 0xb26f9666... Titan Relay
14404641 7 3092 1790 +1302 p2porg 0xb26f9666... Titan Relay
14404230 5 3055 1754 +1301 whale_0x8ebd 0x850b00e0... BloXroute Max Profit
14403901 0 2964 1663 +1301 whale_0x5768 0xb26f9666... BloXroute Max Profit
14407381 5 3052 1754 +1298 coinbase 0xb26f9666... BloXroute Max Profit
14406563 5 3052 1754 +1298 bitstamp 0x823e0146... BloXroute Max Profit
14405073 10 3142 1844 +1298 kiln Local Local
14404451 6 3068 1772 +1296 whale_0x8ebd 0xa03781b9... Ultra Sound
14405406 0 2959 1663 +1296 everstake 0x851b00b1... BloXroute Max Profit
14404235 0 2957 1663 +1294 kiln 0x851b00b1... BloXroute Max Profit
14407379 0 2956 1663 +1293 kiln 0x823e0146... Ultra Sound
14405238 0 2955 1663 +1292 kiln 0x88857150... Ultra Sound
14404615 0 2954 1663 +1291 bitstamp 0x851b00b1... BloXroute Max Profit
14409431 0 2954 1663 +1291 everstake 0xb26f9666... Titan Relay
14404693 1 2971 1681 +1290 whale_0x92ee 0x88857150... Ultra Sound
14406066 5 3043 1754 +1289 coinbase 0xb26f9666... Titan Relay
14404952 7 3077 1790 +1287 whale_0x8ebd 0xb26f9666... BloXroute Regulated
14410151 0 2950 1663 +1287 everstake 0xb67eaa5e... BloXroute Regulated
14406725 1 2968 1681 +1287 kiln 0x88857150... Ultra Sound
14403783 6 3058 1772 +1286 kiln 0x8db2a99d... Ultra Sound
14406093 5 3039 1754 +1285 p2porg 0xb26f9666... BloXroute Max Profit
14410087 9 3111 1826 +1285 p2porg 0xb26f9666... Titan Relay
14407163 0 2948 1663 +1285 0x856b0004... BloXroute Max Profit
14410680 4 3019 1736 +1283 p2porg 0xa03781b9... Aestus
14404953 0 2946 1663 +1283 coinbase 0xb26f9666... BloXroute Regulated
14410627 0 2946 1663 +1283 everstake 0x88a53ec4... BloXroute Regulated
14409315 7 3072 1790 +1282 kiln 0x8527d16c... Ultra Sound
14404954 6 3053 1772 +1281 whale_0x8ebd 0x8527d16c... Ultra Sound
14404798 1 2962 1681 +1281 whale_0x8ebd 0xb26f9666... BloXroute Max Profit
14407018 3 2998 1718 +1280 kiln 0xb26f9666... BloXroute Max Profit
14409788 4 3016 1736 +1280 kiln 0x823e0146... BloXroute Max Profit
14410492 0 2942 1663 +1279 everstake 0xb26f9666... Titan Relay
14410180 0 2942 1663 +1279 kiln 0xb26f9666... BloXroute Max Profit
14406403 3 2996 1718 +1278 kiln 0xa03781b9... Aestus
14406100 12 3158 1881 +1277 p2porg_lido 0x8db2a99d... BloXroute Max Profit
14407300 0 2940 1663 +1277 kiln 0xb26f9666... BloXroute Max Profit
14409384 12 3157 1881 +1276 kiln 0x88a53ec4... BloXroute Max Profit
14404763 0 2939 1663 +1276 kiln 0xb26f9666... BloXroute Max Profit
14404723 9 3100 1826 +1274 p2porg 0x856b0004... BloXroute Max Profit
14409998 0 2937 1663 +1274 everstake 0x8527d16c... Ultra Sound
14408626 5 3027 1754 +1273 kiln 0x853b0078... Flashbots
14406539 0 2936 1663 +1273 coinbase 0xb26f9666... BloXroute Max Profit
14407736 1 2954 1681 +1273 everstake 0xb26f9666... Titan Relay
14409312 5 3026 1754 +1272 nethermind_lido 0x88a53ec4... BloXroute Regulated
14406137 5 3026 1754 +1272 coinbase 0x8db2a99d... BloXroute Max Profit
14410758 0 2935 1663 +1272 whale_0x8ebd 0xb26f9666... BloXroute Regulated
14404293 1 2953 1681 +1272 kiln 0x85fb0503... BloXroute Max Profit
14406013 5 3025 1754 +1271 coinbase 0xb26f9666... BloXroute Regulated
14404928 0 2933 1663 +1270 everstake 0x85fb0503... BloXroute Max Profit
14408040 0 2933 1663 +1270 kiln 0xb26f9666... BloXroute Regulated
14407281 5 3023 1754 +1269 kiln 0xb26f9666... BloXroute Max Profit
14403663 15 3204 1935 +1269 whale_0x8914 0x88a53ec4... BloXroute Max Profit
14405997 6 3041 1772 +1269 coinbase 0x8db2a99d... BloXroute Max Profit
14405602 5 3021 1754 +1267 coinbase 0x8db2a99d... BloXroute Max Profit
14408483 6 3039 1772 +1267 kiln 0x823e0146... Flashbots
14407324 9 3092 1826 +1266 coinbase 0x856b0004... BloXroute Max Profit
14406518 0 2929 1663 +1266 kiln 0xb26f9666... BloXroute Regulated
14409758 0 2929 1663 +1266 kiln 0xb26f9666... BloXroute Regulated
14407912 0 2928 1663 +1265 bitstamp 0x823e0146... BloXroute Max Profit
14406334 0 2928 1663 +1265 everstake 0xb26f9666... Titan Relay
14406287 1 2946 1681 +1265 everstake 0x8527d16c... Ultra Sound
14407909 4 3000 1736 +1264 kiln 0x853b0078... BloXroute Max Profit
14406855 11 3125 1863 +1262 whale_0x8ebd 0x8527d16c... Ultra Sound
14407132 9 3088 1826 +1262 whale_0x8ebd 0x823e0146... Flashbots
14408605 1 2943 1681 +1262 kiln 0x8db2a99d... Ultra Sound
14410740 6 3033 1772 +1261 stader 0x823e0146... Ultra Sound
14409489 1 2942 1681 +1261 everstake 0xb67eaa5e... BloXroute Max Profit
14409892 14 3177 1917 +1260 whale_0x8ebd 0xb26f9666... BloXroute Max Profit
14405201 5 3014 1754 +1260 p2porg 0x8db2a99d... BloXroute Max Profit
14405237 5 3014 1754 +1260 kiln 0xb26f9666... Titan Relay
14405337 6 3032 1772 +1260 coinbase 0xb26f9666... BloXroute Regulated
14407201 11 3122 1863 +1259 solo_stakers 0x8527d16c... Ultra Sound
14407722 0 2922 1663 +1259 everstake 0x853b0078... BloXroute Max Profit
14410018 0 2922 1663 +1259 kiln 0xb26f9666... BloXroute Max Profit
14404454 7 3048 1790 +1258 coinbase 0xb26f9666... BloXroute Max Profit
14404082 8 3066 1808 +1258 p2porg_lido 0x8db2a99d... BloXroute Max Profit
14409440 0 2921 1663 +1258 everstake 0x8527d16c... Ultra Sound
14410271 5 3011 1754 +1257 everstake 0x88a53ec4... BloXroute Max Profit
14406327 0 2920 1663 +1257 kiln 0xb26f9666... BloXroute Regulated
14405809 12 3136 1881 +1255 p2porg 0x853b0078... BloXroute Max Profit
14406035 5 3007 1754 +1253 coinbase 0xb26f9666... BloXroute Regulated
14404295 0 2916 1663 +1253 everstake 0x8527d16c... Ultra Sound
14407800 5 3006 1754 +1252 kiln 0xb26f9666... BloXroute Regulated
14404146 5 3006 1754 +1252 kiln 0xb26f9666... Titan Relay
14408294 5 3005 1754 +1251 coinbase 0x88857150... Ultra Sound
14410795 7 3041 1790 +1251 coinbase 0xb26f9666... BloXroute Max Profit
14407292 9 3077 1826 +1251 kiln 0x850b00e0... BloXroute Max Profit
14408970 9 3077 1826 +1251 kiln 0x8527d16c... Ultra Sound
14404106 0 2912 1663 +1249 everstake 0xb26f9666... Titan Relay
14409370 5 3002 1754 +1248 kiln 0x853b0078... BloXroute Max Profit
14404725 5 3001 1754 +1247 0xb26f9666... BloXroute Regulated
14404567 6 3019 1772 +1247 whale_0x8ebd 0xb26f9666... BloXroute Regulated
14407982 6 3019 1772 +1247 kiln 0x88857150... Ultra Sound
14405634 11 3109 1863 +1246 whale_0x8ebd 0x8527d16c... Ultra Sound
14410193 0 2909 1663 +1246 everstake 0x8527d16c... Ultra Sound
14408883 1 2927 1681 +1246 kiln 0xb26f9666... BloXroute Max Profit
14405563 3 2963 1718 +1245 coinbase 0x85fb0503... BloXroute Max Profit
14409648 0 2908 1663 +1245 whale_0x8ebd 0xb26f9666... BloXroute Max Profit
14405485 6 3016 1772 +1244 coinbase 0x88857150... Ultra Sound
14410171 0 2907 1663 +1244 coinbase 0x85fb0503... BloXroute Max Profit
14406286 8 3051 1808 +1243 whale_0x8ebd 0xb26f9666... BloXroute Regulated
14405533 10 3087 1844 +1243 kiln 0x856b0004... BloXroute Max Profit
14408880 11 3104 1863 +1241 whale_0x8ebd 0x823e0146... Titan Relay
14409326 0 2904 1663 +1241 everstake 0x8527d16c... Ultra Sound
14406916 8 3048 1808 +1240 coinbase 0xb26f9666... Titan Relay
14407380 0 2903 1663 +1240 everstake 0xb26f9666... Titan Relay
14404057 2 2939 1700 +1239 whale_0x8ebd 0xb4ce6162... Ultra Sound
14409869 5 2993 1754 +1239 coinbase 0xb26f9666... BloXroute Regulated
14407007 5 2993 1754 +1239 whale_0x8ebd 0xb26f9666... BloXroute Regulated
14405429 9 3065 1826 +1239 everstake 0x823e0146... Ultra Sound
14406928 0 2900 1663 +1237 everstake 0xb26f9666... Titan Relay
14405832 6 3008 1772 +1236 whale_0x8ebd 0xb26f9666... BloXroute Regulated
14409532 6 3008 1772 +1236 coinbase 0xb26f9666... BloXroute Regulated
14406378 13 3134 1899 +1235 kiln 0x8db2a99d... Ultra Sound
14405304 7 3024 1790 +1234 coinbase 0xb26f9666... BloXroute Regulated
14409616 0 2897 1663 +1234 kiln 0xb26f9666... BloXroute Regulated
14408855 5 2987 1754 +1233 solo_stakers 0xa965c911... Ultra Sound
14406165 0 2896 1663 +1233 kiln 0xb26f9666... BloXroute Regulated
14403693 1 2914 1681 +1233 whale_0x93db 0xb26f9666... BloXroute Regulated
Total anomalies: 507

Anomalies by relay

Which relays produce the most propagation anomalies?

Show code
if n_anomalies > 0:
    # Count anomalies by relay
    relay_counts = df_outliers["relay"].value_counts().reset_index()
    relay_counts.columns = ["relay", "anomaly_count"]
    
    # Get total blocks per relay for context
    df_anomaly["relay"] = df_anomaly["winning_relays"].apply(lambda x: x[0] if len(x) > 0 else "Local")
    total_by_relay = df_anomaly.groupby("relay").size().reset_index(name="total_blocks")
    
    relay_counts = relay_counts.merge(total_by_relay, on="relay")
    relay_counts["anomaly_rate"] = relay_counts["anomaly_count"] / relay_counts["total_blocks"] * 100
    relay_counts = relay_counts.sort_values("anomaly_rate", ascending=True)
    
    fig = go.Figure()
    
    fig.add_trace(go.Bar(
        y=relay_counts["relay"],
        x=relay_counts["anomaly_count"],
        orientation="h",
        marker_color="#e74c3c",
        text=relay_counts.apply(lambda r: f"{r['anomaly_count']}/{r['total_blocks']} ({r['anomaly_rate']:.1f}%)", axis=1),
        textposition="outside",
        hovertemplate="<b>%{y}</b><br>Anomalies: %{x}<br>Total blocks: %{customdata[0]:,}<br>Rate: %{customdata[1]:.1f}%<extra></extra>",
        customdata=np.column_stack([relay_counts["total_blocks"], relay_counts["anomaly_rate"]]),
    ))
    
    fig.update_layout(
        margin=dict(l=150, r=80, t=30, b=60),
        xaxis=dict(title="Number of anomalies"),
        yaxis=dict(title=""),
        height=350,
    )
    fig.show(config={"responsive": True})

Anomalies by proposer entity

Which proposer entities produce the most propagation anomalies?

Show code
if n_anomalies > 0:
    # Count anomalies by proposer entity
    proposer_counts = df_outliers["proposer"].value_counts().reset_index()
    proposer_counts.columns = ["proposer", "anomaly_count"]
    
    # Get total blocks per proposer for context
    df_anomaly["proposer"] = df_anomaly["proposer_entity"].fillna("Unknown")
    total_by_proposer = df_anomaly.groupby("proposer").size().reset_index(name="total_blocks")
    
    proposer_counts = proposer_counts.merge(total_by_proposer, on="proposer")
    proposer_counts["anomaly_rate"] = proposer_counts["anomaly_count"] / proposer_counts["total_blocks"] * 100
    
    # Show top 15 by anomaly count
    proposer_counts = proposer_counts.nlargest(15, "anomaly_rate").sort_values("anomaly_rate", ascending=True)
    
    fig = go.Figure()
    
    fig.add_trace(go.Bar(
        y=proposer_counts["proposer"],
        x=proposer_counts["anomaly_count"],
        orientation="h",
        marker_color="#e74c3c",
        text=proposer_counts.apply(lambda r: f"{r['anomaly_count']}/{r['total_blocks']} ({r['anomaly_rate']:.1f}%)", axis=1),
        textposition="outside",
        hovertemplate="<b>%{y}</b><br>Anomalies: %{x}<br>Total blocks: %{customdata[0]:,}<br>Rate: %{customdata[1]:.1f}%<extra></extra>",
        customdata=np.column_stack([proposer_counts["total_blocks"], proposer_counts["anomaly_rate"]]),
    ))
    
    fig.update_layout(
        margin=dict(l=150, r=80, t=30, b=60),
        xaxis=dict(title="Number of anomalies"),
        yaxis=dict(title=""),
        height=450,
    )
    fig.show(config={"responsive": True})

Anomalies by builder

Which builders produce the most propagation anomalies? (Truncated pubkeys shown for MEV blocks)

Show code
if n_anomalies > 0:
    # Count anomalies by builder
    builder_counts = df_outliers["builder"].value_counts().reset_index()
    builder_counts.columns = ["builder", "anomaly_count"]
    
    # Get total blocks per builder for context
    df_anomaly["builder"] = df_anomaly["winning_builder"].apply(
        lambda x: f"{x[:10]}..." if pd.notna(x) and x else "Local"
    )
    total_by_builder = df_anomaly.groupby("builder").size().reset_index(name="total_blocks")
    
    builder_counts = builder_counts.merge(total_by_builder, on="builder")
    builder_counts["anomaly_rate"] = builder_counts["anomaly_count"] / builder_counts["total_blocks"] * 100
    
    # Show top 15 by anomaly count
    builder_counts = builder_counts.nlargest(15, "anomaly_rate").sort_values("anomaly_rate", ascending=True)
    
    fig = go.Figure()
    
    fig.add_trace(go.Bar(
        y=builder_counts["builder"],
        x=builder_counts["anomaly_count"],
        orientation="h",
        marker_color="#e74c3c",
        text=builder_counts.apply(lambda r: f"{r['anomaly_count']}/{r['total_blocks']} ({r['anomaly_rate']:.1f}%)", axis=1),
        textposition="outside",
        hovertemplate="<b>%{y}</b><br>Anomalies: %{x}<br>Total blocks: %{customdata[0]:,}<br>Rate: %{customdata[1]:.1f}%<extra></extra>",
        customdata=np.column_stack([builder_counts["total_blocks"], builder_counts["anomaly_rate"]]),
    ))
    
    fig.update_layout(
        margin=dict(l=150, r=80, t=30, b=60),
        xaxis=dict(title="Number of anomalies"),
        yaxis=dict(title=""),
        height=450,
    )
    fig.show(config={"responsive": True})

Anomalies by blob count

Are anomalies more common at certain blob counts?

Show code
if n_anomalies > 0:
    # Count anomalies by blob count
    blob_anomalies = df_outliers.groupby("blob_count").size().reset_index(name="anomaly_count")
    blob_total = df_anomaly.groupby("blob_count").size().reset_index(name="total_blocks")
    
    blob_stats = blob_total.merge(blob_anomalies, on="blob_count", how="left").fillna(0)
    blob_stats["anomaly_count"] = blob_stats["anomaly_count"].astype(int)
    blob_stats["anomaly_rate"] = blob_stats["anomaly_count"] / blob_stats["total_blocks"] * 100
    
    fig = go.Figure()
    
    fig.add_trace(go.Bar(
        x=blob_stats["blob_count"],
        y=blob_stats["anomaly_count"],
        marker_color="#e74c3c",
        hovertemplate="<b>%{x} blobs</b><br>Anomalies: %{y}<br>Total: %{customdata[0]:,}<br>Rate: %{customdata[1]:.1f}%<extra></extra>",
        customdata=np.column_stack([blob_stats["total_blocks"], blob_stats["anomaly_rate"]]),
    ))
    
    fig.update_layout(
        margin=dict(l=60, r=30, t=30, b=60),
        xaxis=dict(title="Blob count", dtick=1),
        yaxis=dict(title="Number of anomalies"),
        height=350,
    )
    fig.show(config={"responsive": True})