From 51858fe791dba7a5f56ee1463fedc85e49408198 Mon Sep 17 00:00:00 2001 From: Florent Tapponnier <160007691+Flotapponnier@users.noreply.github.com> Date: Fri, 11 Sep 2026 16:57:50 +0200 Subject: [PATCH] revert: keep bridge-execution-latency + bridge-quote-latency-solana benches on dev only (remove from prod) --- benchmarks/bridge-execution-latency.yml | 159 -------------------- benchmarks/bridge-quote-latency-solana.yml | 167 --------------------- 2 files changed, 326 deletions(-) delete mode 100644 benchmarks/bridge-execution-latency.yml delete mode 100644 benchmarks/bridge-quote-latency-solana.yml diff --git a/benchmarks/bridge-execution-latency.yml b/benchmarks/bridge-execution-latency.yml deleted file mode 100644 index c51e77e9b..000000000 --- a/benchmarks/bridge-execution-latency.yml +++ /dev/null @@ -1,159 +0,0 @@ -# OpenChainBench. Bench № 261 - -slug: bridge-execution-latency -number: "261" -title: "Fastest on-chain bridge execution: real settlement latency, Mobula vs Relay vs LI.FI" -seo_title: "Fastest bridge execution 2026: real on-chain settlement latency and success rate" -seo_description: "Live on-chain bridge execution, not quotes: real broadcast-to-settlement latency, success rate and realized fees for Mobula, Relay and LI.FI on a self-conserving USDC triangle across Solana, Base and Arbitrum." -subtitle: Real broadcast-to-funds-received latency, success rate and realized fees for executed bridge transactions on a self-conserving USDC triangle (Solana, Base, Arbitrum), at $3 and $30, measured from EU-West. -category: Bridges -status: live -metric: Execution latency -unit: ms -higher_is_better: false - -# Per-corridor breakdown. The chain label carries route.ToChain, so each tab -# isolates one leg of the triangle: Sol to Base, Base to Arb, Arb to Sol. The -# amount tab isolates the $3 and $30 ticket sizes. Every figure is a REAL -# executed transaction (broadcast to on-chain settlement), never a quote. -dimensions: - chain: - - { value: Base, label: Sol to Base } - - { value: Arbitrum, label: Base to Arb } - - { value: Solana, label: Arb to Sol } - amount_usd: - - { value: "3", label: "$3" } - - { value: "30", label: "$30" } - -seo_intro: | - Every other bridge comparison on the internet measures quotes. This one - measures the transaction. We run a self-conserving USDC triangle (Solana - to Base to Arbitrum and back) with real capital, broadcasting real - transfers through Mobula, Relay and LI.FI, and we time each one from - broadcast to the moment the funds actually land on the destination chain. - Quotes are a promise; settlement is the truth, and the gap between them is - where slippage, failed fills and refunds live. This benchmark reports the - real broadcast-to-settlement latency, the success rate (fills versus - reverts and refunds) and the realized fee (amount sent minus amount - received) for two ticket sizes, $3 and $30, per corridor, measured from - EU-West. Inventory is conserved across the cycle, so only fees burn. - -abstract: | - We execute real cross-chain transfers on a conserving USDC triangle - (Solana to Base, Base to Arbitrum, Arbitrum to Solana) through Mobula, - Relay and LI.FI, at $3 and $30. For each executed transaction we record - the on-chain execution latency (broadcast to funds received), the - end-to-end latency (quote to funds received), the realized fee, and - whether it settled, reverted or was refunded. p50, p90 and p99 latency are - derived over a rolling 24-hour window; success rate is fills over fills - plus reverts and refunds. Reverted and refunded transactions are excluded - from the latency distribution and counted against the success rate. - -methodology: - - "Route: a self-conserving all-USDC triangle. Solana USDC to Base USDC, Base USDC to Arbitrum USDC, Arbitrum USDC to Solana USDC. Each executing bridge completes the full triangle before the next starts, so inventory returns to its origin and only fees burn." - - "Ticket sizes: $3 daily and $30 twice weekly, on fixed UTC schedules. Amounts are deliberately small: this measures settlement reliability, not large-ticket cost." - - "Latency: execution latency is wall-clock from broadcast to the destination credit; end-to-end latency adds the quote round-trip. p50, p90 and p99 are quantile_over_time over the exact observed latencies of the last 24h (a per-execution gauge), not a histogram-bucket interpolation, so the figures are the real values rather than a bucket midpoint." - - "Outcome classification: settled (funds received), reverted or refunded (capital returned to source), or errored (never broadcast). Only settled transactions contribute to the latency distribution; reverts and refunds count against the success rate." - - "Region: EU-West only at present. The execution node runs a single wallet, so a second origin would race the same inventory; additional origins are not planned for the execution loop." - - "Cohort: Mobula, Relay, LI.FI and Near Intents (Near Intents runs its own conserving USDC triangle via the 1Click flow). deBridge is quote-only in this loop. Providers without a symmetric route on all three legs are excluded so the triangle conserves." - - "Cost metrics captured per real execution (beyond latency and success): realized output on-chain, execution slippage vs the quote (realized fee minus quote-projected fee), our own on-chain gas paid (approve + deposit, measured as source-chain native balance delta), and the refund rate split from hard-fail rate. These surface the true all-in cost and the gap between a quote and what actually settles." - - "Reliability tail: cross-chain settlement is asynchronous, so a broadcast can end three ways beyond a clean fill. We split them: refunded (capital returned, with a refund-latency histogram for how fast it came back), reverted (on-chain failure), and stuck (a deposit whose status never resolved to a fill or refund in the poll window). The stuck rate is the share of swaps a user would have to chase manually: the honest measure of what is not automatically handled." - -findings: - - "{{name:mobula}} settles at {{p50:mobula}} (p50, broadcast to funds received) with a {{success:mobula}} success rate over the last 24 hours." - - "{{name:relay}} settles at {{p50:relay}} with a {{success:relay}} success rate." - - "{{name:lifi}} settles at {{p50:lifi}} with a {{success:lifi}} success rate." - - "{{name:near-intents}} settles at {{p50:near-intents}} with a {{success:near-intents}} success rate; intent settlement runs longer than lock-mint fills, so its latency sits above the others while staying reliable." - -faq: - - q: "How is this different from the bridge quote and bridge fee benchmarks?" - a: "Those measure the API response: how fast a quote comes back and what it claims the cost will be. This benchmark broadcasts and settles a real transaction, then measures how long the funds actually took to arrive and what the realized cost was. A provider can quote fast and cheap yet settle slowly or fail, and only an execution benchmark surfaces that." - - q: "What does the triangle conserve, and why does it matter?" - a: "The route returns every unit of capital to its origin over a full cycle (Solana to Base to Arbitrum to Solana), so the loop can run indefinitely on a fixed float with only fees burning. That is what makes continuous real execution affordable to benchmark." - - q: "Why only $3 and $30?" - a: "The goal is settlement reliability and latency, which do not require large notionals. Small tickets keep the standing capital and the burned fees low while still exercising the full broadcast, settle and accounting path on every provider." - - q: "How is the success rate computed?" - a: "Settled transactions divided by settled plus reverted and refunded. A transaction that never broadcast (a pre-flight or quote failure) is not counted against a provider; a broadcast that reverts or is refunded is." - - q: "Where does this run from?" - a: "EU-West. The execution node holds a single wallet and signs every broadcast, so running a second origin would race the same inventory. The latency therefore reflects an EU-West vantage; the quote-latency benchmark on this site covers multi-region read latency separately." - -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/bridge-monitor - -# Companion panels beside the latency headline. Both are single-selector -# gauges so the per-provider label injection stays exact. Slippage-vs-quote -# and our all-in gas are the two cost signals a quote can never show; the -# refund rate, stuck rate and refund latency live as raw metrics -# (bridge_refunds_total, bridge_stuck_total, bridge_refund_latency_ms) and -# are documented in the methodology until they accrue enough samples to panel. -metric_panels: - - id: slippage - label: Slippage vs quote - metric: avg by (bridge) (ocb:bridge_quote_slippage_usd:mean_24h{region="eu-west"}) - label_key: bridge - unit: usd - higher_is_better: false - description: "Realized fee minus quote-projected fee, in USD. The gap between what the quote promised and what actually settled." - - id: gas - label: All-in gas we paid - metric: avg by (bridge) (ocb:bridge_exec_gas_usd:avg_24h{region="eu-west"}) - label_key: bridge - unit: usd - higher_is_better: false - description: "Our own on-chain gas (approve plus deposit), measured as the source-chain native balance delta. The cost the user bears on top of the bridge fee." - -prometheus: - window: 24h - freshness_metric: bridge_execution_latency_ms - -providers: - - slug: mobula - name: Mobula - tag: Aggregator + intent layer - formula: "p50 over 24h of on-chain execution latency (broadcast to funds received, ms) for real USDC-triangle transfers executed through Mobula from EU-West, at the selected ticket size and corridor." - queries: - p50: avg(ocb:bridge_exec_latency_ms:p50_24h{bridge="mobula", region="eu-west"}) - p90: avg(ocb:bridge_exec_latency_ms:p90_24h{bridge="mobula", region="eu-west"}) - p99: avg(ocb:bridge_exec_latency_ms:p99_24h{bridge="mobula", region="eu-west"}) - mean: avg(ocb:bridge_exec_latency_ms:mean_24h{bridge="mobula", region="eu-west"}) - success: sum(increase(bridge_success_total{bridge="mobula", region="eu-west"}[24h])) / clamp_min(sum(increase(bridge_success_total{bridge="mobula", region="eu-west"}[24h])) + sum(increase(bridge_reverts_total{bridge="mobula", region="eu-west"}[24h])), 1) - sample_size: sum(increase(bridge_success_total{bridge="mobula", region="eu-west"}[24h])) + sum(increase(bridge_reverts_total{bridge="mobula", region="eu-west"}[24h])) - series: ocb:bridge_exec_latency_ms:p50_24h{bridge="mobula", region="eu-west"} - - - slug: relay - name: Relay - tag: Cross-chain relay - formula: "p50 over 24h of on-chain execution latency (broadcast to funds received, ms) for real USDC-triangle transfers executed through Relay from EU-West, at the selected ticket size and corridor." - queries: - p50: avg(ocb:bridge_exec_latency_ms:p50_24h{bridge="relay", region="eu-west"}) - p90: avg(ocb:bridge_exec_latency_ms:p90_24h{bridge="relay", region="eu-west"}) - p99: avg(ocb:bridge_exec_latency_ms:p99_24h{bridge="relay", region="eu-west"}) - mean: avg(ocb:bridge_exec_latency_ms:mean_24h{bridge="relay", region="eu-west"}) - success: sum(increase(bridge_success_total{bridge="relay", region="eu-west"}[24h])) / clamp_min(sum(increase(bridge_success_total{bridge="relay", region="eu-west"}[24h])) + sum(increase(bridge_reverts_total{bridge="relay", region="eu-west"}[24h])), 1) - sample_size: sum(increase(bridge_success_total{bridge="relay", region="eu-west"}[24h])) + sum(increase(bridge_reverts_total{bridge="relay", region="eu-west"}[24h])) - series: ocb:bridge_exec_latency_ms:p50_24h{bridge="relay", region="eu-west"} - - - slug: lifi - name: LI.FI - tag: Aggregator - formula: "p50 over 24h of on-chain execution latency (broadcast to funds received, ms) for real USDC-triangle transfers executed through LI.FI from EU-West, at the selected ticket size and corridor." - queries: - p50: avg(ocb:bridge_exec_latency_ms:p50_24h{bridge="lifi", region="eu-west"}) - p90: avg(ocb:bridge_exec_latency_ms:p90_24h{bridge="lifi", region="eu-west"}) - p99: avg(ocb:bridge_exec_latency_ms:p99_24h{bridge="lifi", region="eu-west"}) - mean: avg(ocb:bridge_exec_latency_ms:mean_24h{bridge="lifi", region="eu-west"}) - success: sum(increase(bridge_success_total{bridge="lifi", region="eu-west"}[24h])) / clamp_min(sum(increase(bridge_success_total{bridge="lifi", region="eu-west"}[24h])) + sum(increase(bridge_reverts_total{bridge="lifi", region="eu-west"}[24h])), 1) - sample_size: sum(increase(bridge_success_total{bridge="lifi", region="eu-west"}[24h])) + sum(increase(bridge_reverts_total{bridge="lifi", region="eu-west"}[24h])) - series: ocb:bridge_exec_latency_ms:p50_24h{bridge="lifi", region="eu-west"} - - - slug: near-intents - name: Near Intents - tag: Intent layer (NEAR) - formula: "p50 over 24h of exact on-chain execution latency (broadcast to funds received, ms) for real USDC-triangle transfers executed through the Near Intents 1Click flow from EU-West, at the selected ticket size and corridor." - queries: - p50: avg(ocb:bridge_exec_latency_ms:p50_24h{bridge="near-intents", region="eu-west"}) - p90: avg(ocb:bridge_exec_latency_ms:p90_24h{bridge="near-intents", region="eu-west"}) - p99: avg(ocb:bridge_exec_latency_ms:p99_24h{bridge="near-intents", region="eu-west"}) - mean: avg(ocb:bridge_exec_latency_ms:mean_24h{bridge="near-intents", region="eu-west"}) - success: sum(increase(bridge_success_total{bridge="near-intents", region="eu-west"}[24h])) / clamp_min(sum(increase(bridge_success_total{bridge="near-intents", region="eu-west"}[24h])) + sum(increase(bridge_reverts_total{bridge="near-intents", region="eu-west"}[24h])), 1) - sample_size: sum(increase(bridge_success_total{bridge="near-intents", region="eu-west"}[24h])) + sum(increase(bridge_reverts_total{bridge="near-intents", region="eu-west"}[24h])) - series: ocb:bridge_exec_latency_ms:p50_24h{bridge="near-intents", region="eu-west"} diff --git a/benchmarks/bridge-quote-latency-solana.yml b/benchmarks/bridge-quote-latency-solana.yml deleted file mode 100644 index 7284a2b97..000000000 --- a/benchmarks/bridge-quote-latency-solana.yml +++ /dev/null @@ -1,167 +0,0 @@ -# OpenChainBench. Bench № 264 - -slug: bridge-quote-latency-solana -number: "264" -title: "Fastest Solana cross-chain bridge quote API, live ms ranking" -seo_title: "Fastest Solana bridge quote API 2026: SOL to Base, Arbitrum, BNB, Ethereum" -seo_description: "Live p50 quote latency for cross-chain bridges leaving Solana. Mobula, Relay, LI.FI, deBridge, Across and Near Intents ranked on SOL to Base, Arbitrum, BNB and Ethereum, measured every five minutes." -subtitle: Time to receive a usable cross-chain quote when the source is Solana, in milliseconds. Identical notional, measured every five minutes on SOL to Base, Arbitrum, BNB and Ethereum across Mobula, Relay, LI.FI, deBridge, Across and Near Intents. -category: Bridges -status: live -metric: Quote latency -unit: ms - -# Solana-source only. The general bridge-quote-latency bench aggregates every -# corridor; this one isolates Solana as the origin, which is the leg with the -# most demanding quote path (Solana address + SPL token resolution on top of -# the destination route search). Each tab is a destination chain. -dimensions: - chain: - - { value: Base, label: SOL to Base } - - { value: Arbitrum, label: SOL to Arbitrum } - - { value: BNB, label: SOL to BNB } - - { value: Ethereum, label: SOL to Ethereum } - - { value: Robinhood, label: SOL to Robinhood } - # EU-West only at present (us-east / sgp probes paused, single origin). - region: - - { value: eu-west, label: EU-West } - amount_usd: - - { value: "300", label: "$300" } - - { value: "50", label: "$50" } - - { value: "5", label: "$5" } - -seo_intro: | - This benchmark measures how fast each cross-chain bridge returns a usable - quote when the transfer starts on Solana. Solana-origin quotes are the - hardest case: the API has to resolve an SPL token account and a Solana - address alongside the destination route search, so it is the corridor that - most separates a thin price-discovery call from a heavy route-search graph. - We ask every bridge for the same SOL to Base, Arbitrum, BNB and Ethereum - quotes at $5, $50 and $300 every five minutes from EU-West, and rank them by - p50 latency over the last 24 hours. The general cross-chain quote benchmark - aggregates every origin; this one isolates Solana so the SOL to X story is - legible on its own. - -abstract: | - Per-provider p50, p90 and p99 quote latency for Solana-origin corridors - (SOL to Base, Arbitrum, BNB, Ethereum) at $5, $50 and $300, sampled every - five minutes from EU-West and aggregated over a rolling 24-hour window from - a recording rule scoped to from_chain=Solana. Success rate is the share of - probes that returned a usable quote. Providers without a Solana-source route - (EVM-only aggregators) are excluded. - -methodology: - - "Origin: Solana only. Every corridor in this bench starts from Solana USDC; the destination is the per-tab chain." - - "Destinations: Base, Arbitrum, BNB, Ethereum and Robinhood Chain. A provider that does not quote a given destination simply does not appear on that tab." - - "Robinhood Chain (Arbitrum Orbit, chainId 4663) has no native USDC, so it is a cross-asset USDC to USDG (Global Dollar) corridor. On the live probe only Mobula returns a usable SOL to Robinhood quote; Relay, LI.FI and deBridge reject the USDC-to-USDG pair on this chain (invalid input/output currency), so they do not appear on the Robinhood tab." - - "Latency: wall-clock from request to a usable quote, in milliseconds. p50, p90 and p99 over a rolling 24h window via histogram_quantile on a from_chain=Solana-scoped recording rule." - - "Cadence: every five minutes, at $5, $50 and $300 notional." - - "Region: EU-West only at present. The us-east and sgp probes are paused, so the figures reflect the EU-West (Paris) origin." - - "Cohort: Mobula, Relay, LI.FI, deBridge, Across and Near Intents. Squid and Socket are EVM-only aggregators with no Solana-source route and are excluded here (they remain in the general bridge-quote-latency bench)." - -findings: - - "{{best_name}} returns the fastest Solana-origin quote at {{best_p50}} (p50, 24 h) across {{count}} providers, on the destinations it covers." - - "{{name:mobula}} returns {{p50:mobula}} (p50, 24 h). A thin price-discovery call against pre-quoted solvers keeps Solana-origin latency low even though the SPL resolution adds work the EVM-only corridors avoid." - - "{{name:relay}} sits at {{p50:relay}} (p50, 24 h)." - - "{{name:near-intents}} clocks {{p50:near-intents}} (p50, 24 h); its 1Click flow is bimodal, sub-100ms on solver-cached corridors and up to the full auction window otherwise." - - "{{worst_name}} trails at {{worst_p50}} (p50, 24 h), the cost of a heavier route search on the Solana-origin path." - -faq: - - q: "What is the fastest bridge to leave Solana?" - a: "{{best_name}} currently returns the fastest Solana-origin quote at {{best_p50}} (p50, 24 h), across the destinations it covers. The leaderboard re-sorts every five minutes against fresh samples, so it reflects the last 24 hours of live data rather than a static claim." - - q: "How is this different from the general bridge quote latency benchmark?" - a: "The general bench aggregates every origin chain. This one isolates Solana as the source, because Solana-origin quotes carry extra work (SPL token account and Solana address resolution) and because SOL to X is a corridor worth ranking on its own." - - q: "Why are some bridges missing from a destination tab?" - a: "Because they do not quote that Solana-origin corridor. Squid and Socket are EVM-only aggregators with no Solana-source route, so they are excluded entirely; other providers appear only on the destinations they actually return a quote for." - - q: "Does a fast quote mean a fast transfer?" - a: "No. This measures the quote API response only. The end-to-end execution benchmark measures the real broadcast-to-settlement time on executed transfers separately." - -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/bridge-monitor - -prometheus: - window: 24h - expected_freshness_seconds: 1800 - -# rank_matrix_query required when dimensions.region is declared. label_replace -# maps bridge= -> provider= so badge scoping works per region, over the -# Solana-scoped recording rule. -rank_matrix_query: histogram_quantile(0.50, label_replace(ocb:bridge_quote_latency_ms_bucket:sol_rate24h, "provider", "$1", "bridge", "(.+)")) - -providers: - - slug: mobula - name: Mobula - tag: Aggregator + intent layer - formula: "p50 over 24h of Solana-origin quote latency (ms) from Mobula, at the selected destination and notional, sampled every 5 minutes from EU-West." - queries: - p50: histogram_quantile(0.50, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="mobula"}) - p90: histogram_quantile(0.90, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="mobula"}) - p99: histogram_quantile(0.99, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="mobula"}) - mean: ocb:bridge_quote_latency_ms_sum:sol_rate24h{bridge="mobula"} / clamp_min(ocb:bridge_quote_latency_ms_count:sol_rate24h{bridge="mobula"}, 1) - success: ocb:bridge_quote_success:sol_avg24h{bridge="mobula"} - sample_size: ocb:bridge_quote_latency_ms_count:sol_increase24h{bridge="mobula"} - series: histogram_quantile(0.50, sum by (le) (rate(bridge_quote_latency_ms_bucket{bridge="mobula", from_chain="Solana"}[1h]))) - - - slug: relay - name: Relay - tag: Cross-chain relay - formula: "p50 over 24h of Solana-origin quote latency (ms) from Relay, at the selected destination and notional, sampled every 5 minutes from EU-West." - queries: - p50: histogram_quantile(0.50, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="relay"}) - p90: histogram_quantile(0.90, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="relay"}) - p99: histogram_quantile(0.99, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="relay"}) - mean: ocb:bridge_quote_latency_ms_sum:sol_rate24h{bridge="relay"} / clamp_min(ocb:bridge_quote_latency_ms_count:sol_rate24h{bridge="relay"}, 1) - success: ocb:bridge_quote_success:sol_avg24h{bridge="relay"} - sample_size: ocb:bridge_quote_latency_ms_count:sol_increase24h{bridge="relay"} - series: histogram_quantile(0.50, sum by (le) (rate(bridge_quote_latency_ms_bucket{bridge="relay", from_chain="Solana"}[1h]))) - - - slug: lifi - name: LI.FI - tag: Aggregator - formula: "p50 over 24h of Solana-origin quote latency (ms) from LI.FI, at the selected destination and notional, sampled every 5 minutes from EU-West." - queries: - p50: histogram_quantile(0.50, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="lifi"}) - p90: histogram_quantile(0.90, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="lifi"}) - p99: histogram_quantile(0.99, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="lifi"}) - mean: ocb:bridge_quote_latency_ms_sum:sol_rate24h{bridge="lifi"} / clamp_min(ocb:bridge_quote_latency_ms_count:sol_rate24h{bridge="lifi"}, 1) - success: ocb:bridge_quote_success:sol_avg24h{bridge="lifi"} - sample_size: ocb:bridge_quote_latency_ms_count:sol_increase24h{bridge="lifi"} - series: histogram_quantile(0.50, sum by (le) (rate(bridge_quote_latency_ms_bucket{bridge="lifi", from_chain="Solana"}[1h]))) - - - slug: debridge - name: deBridge - tag: Native-token fees - formula: "p50 over 24h of Solana-origin quote latency (ms) from deBridge, at the selected destination and notional, sampled every 5 minutes from EU-West." - queries: - p50: histogram_quantile(0.50, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="debridge"}) - p90: histogram_quantile(0.90, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="debridge"}) - p99: histogram_quantile(0.99, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="debridge"}) - mean: ocb:bridge_quote_latency_ms_sum:sol_rate24h{bridge="debridge"} / clamp_min(ocb:bridge_quote_latency_ms_count:sol_rate24h{bridge="debridge"}, 1) - success: ocb:bridge_quote_success:sol_avg24h{bridge="debridge"} - sample_size: ocb:bridge_quote_latency_ms_count:sol_increase24h{bridge="debridge"} - series: histogram_quantile(0.50, sum by (le) (rate(bridge_quote_latency_ms_bucket{bridge="debridge", from_chain="Solana"}[1h]))) - - - slug: across - name: Across - tag: Optimistic relay - formula: "p50 over 24h of Solana-origin quote latency (ms) from Across, at the selected destination and notional, sampled every 5 minutes from EU-West." - queries: - p50: histogram_quantile(0.50, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="across"}) - p90: histogram_quantile(0.90, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="across"}) - p99: histogram_quantile(0.99, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="across"}) - mean: ocb:bridge_quote_latency_ms_sum:sol_rate24h{bridge="across"} / clamp_min(ocb:bridge_quote_latency_ms_count:sol_rate24h{bridge="across"}, 1) - success: ocb:bridge_quote_success:sol_avg24h{bridge="across"} - sample_size: ocb:bridge_quote_latency_ms_count:sol_increase24h{bridge="across"} - series: histogram_quantile(0.50, sum by (le) (rate(bridge_quote_latency_ms_bucket{bridge="across", from_chain="Solana"}[1h]))) - - - slug: near-intents - name: Near Intents - tag: Intent layer (NEAR) - formula: "p50 over 24h of Solana-origin quote latency (ms) from the Near Intents 1Click API, at the selected destination and notional, sampled every 5 minutes from EU-West." - queries: - p50: histogram_quantile(0.50, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="near-intents"}) - p90: histogram_quantile(0.90, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="near-intents"}) - p99: histogram_quantile(0.99, ocb:bridge_quote_latency_ms_bucket:sol_rate24h{bridge="near-intents"}) - mean: ocb:bridge_quote_latency_ms_sum:sol_rate24h{bridge="near-intents"} / clamp_min(ocb:bridge_quote_latency_ms_count:sol_rate24h{bridge="near-intents"}, 1) - success: ocb:bridge_quote_success:sol_avg24h{bridge="near-intents"} - sample_size: ocb:bridge_quote_latency_ms_count:sol_increase24h{bridge="near-intents"} - series: histogram_quantile(0.50, sum by (le) (rate(bridge_quote_latency_ms_bucket{bridge="near-intents", from_chain="Solana"}[1h])))