Evidence / Data kit / Native bridges

Native bridgesCalibrated · 2026-04-22

Full pipeline to reproduce the native bridge state classification (BS1 / BS2) served by Invarians for Arbitrum, Base and Optimism. Calibrated using a P97 over 30 days of collector signals with deterministic, published guard rails.

Source

Capture
Live RPC reads on each L2, persisted to Supabase table ans_bridge_signals.
Signal per sample
last_batch_age_seconds, elapsed time since the last L1 commitment of an L2 batch.
Sampling cadence
600 s polling by the Rust collector.
Calibration window
30 days rolling, P97 per chain.

Files

MD
README.md
Full reproduction instructions, guard rails, and two reproduction paths (live collector or SQL replay).
SQL
migration_bridge_thresholds.sql
Postgres schema for the bridge_thresholds table, one row per physical bridge.
SQL
calibrate_native_p97_30d.sql
Atomic calibration transaction. Reads ans_bridge_signals, computes P97 per chain, applies guard rails, updates thresholds.
MD
expected_thresholds.md
The thresholds expected after a successful calibration run.

Reproduction paths

Path A · Live collector

  1. Clone the collector sources at github.com/agentnorthstar/calibration.
  2. Apply migration_bridge_thresholds.sql to a Postgres instance.
  3. Run the collector for at least 25 days against Arbitrum, Base and Optimism RPC.
  4. Execute calibrate_native_p97_30d.sql as a transaction.
  5. Read the AFTER audit, confront to expected_thresholds.md.

Path B · SQL replay on exported samples

  1. Load the CSV into a Postgres ans_bridge_signals table with the declared schema.
  2. Execute calibrate_native_p97_30d.sql.
  3. Read the AFTER audit, confront to expected_thresholds.md.

Guard rails

Guard rails are public, deterministic and runnable by the reproducer. Any claim that the calibration ran but does not satisfy them is falsifiable by re-executing the SELECTs in the PRE-FLIGHT section of the script. The calibration transaction ROLLBACKS if any chain fails any guard rail.