Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions benchmarks/cross-chain-messaging-latency.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,11 @@ methodology:
- "No canary transactions: every value on this page is a real user message. No wallet is funded, no gas is paid. Total observation cost is API polling."
- "Circle CCTP not included: Circle's Iris API does not expose a list-recent endpoint, so passive polling is not feasible without maintaining nonce state via chain-scan on all ~10 CCTP source chains plus Solana. A CCTP bench is on the roadmap."

disclaimer: "These four protocols make different security tradeoffs that directly affect their delivery time. LayerZero and Hyperlane sign messages before source-chain finality, so they deliver in seconds. Chainlink CCIP and Axelar wait for source-chain finality before signing (12-20 min on Ethereum-source lanes). A lower p50 here does not mean a protocol is technically superior, it may mean it accepts more re-org risk. Use the per-corridor bench for each protocol to compare like-for-like lanes."

findings:
- "{{best_name}} currently leads end-to-end cross-chain delivery at {{best_p50}} (p50 aggregate across all corridors, 24h) across the four measured protocols."
- "Pre-finality signers (LayerZero, Hyperlane) deliver in the seconds-to-tens-of-seconds range. Chainlink CCIP and Axelar both add source-chain finality wait on Ethereum-source lanes (CCIP waits for Casper FFG epoch, Axelar waits for ~96 confirmations), so their aggregate p50 sits higher when Ethereum-source volume dominates their footprint. That is a security tradeoff visible directly in the data."
- "The numbers on this page reflect a security tradeoff, not just engineering speed. LayerZero and Hyperlane sign pre-finality and deliver in seconds. Chainlink CCIP and Axelar wait for source-chain finality (12-20 min on Ethereum-source lanes) before signing. A lower p50 here can mean faster delivery or less re-org protection, read both together."
- "{{best_name}} currently leads end-to-end cross-chain delivery at {{best_p50}} (p50 aggregate across all corridors, 24h). Pre-finality signers structurally dominate this aggregate on high-Ethereum-volume days."
- "Per-corridor variance is large. The aggregate here is a headline; the individual bench for each protocol shows the per-source-chain breakdown that answers what you would feel in production."

faq:
Expand Down
30 changes: 4 additions & 26 deletions benchmarks/rwa-yield-accuracy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,32 +83,10 @@ prometheus:
expected_freshness_seconds: 3600

providers:
- slug: buidl
name: BUIDL
tag: "BlackRock, Ethereum, monthly USDC dividend"
formula: "Sum of USDC Transfer events from the BUIDL treasury wallet to holders over 30d, divided by average BUIDL supply (share price fixed at 1 USD by design), annualized. Compared to BlackRock's stated APY."
queries:
p50: rwa_yield_deviation_bps_30d{token="buidl"}
p90: rwa_yield_deviation_bps_7d{token="buidl"}
p99: rwa_yield_deviation_bps_lifetime{token="buidl"}
mean: rwa_yield_delivered_bps_30d{token="buidl"}
success: rwa_yield_probe_ok{token="buidl"}
sample_size: rwa_yield_aum_usd{token="buidl"}
series: rwa_yield_delivered_bps_30d{token="buidl"}

- slug: benji
name: BENJI
tag: "Franklin Templeton, Stellar + Ethereum, NAV appreciation"
formula: "NAV growth of the Franklin OnChain U.S. Government Money Fund share, NAV(t=now) vs NAV(t=30d ago), annualized. NAV published daily by Franklin, cross-checked against the on-chain price oracle. Compared to the stated 7-day SEC yield."
queries:
p50: rwa_yield_deviation_bps_30d{token="benji"}
p90: rwa_yield_deviation_bps_7d{token="benji"}
p99: rwa_yield_deviation_bps_lifetime{token="benji"}
mean: rwa_yield_delivered_bps_30d{token="benji"}
success: rwa_yield_probe_ok{token="benji"}
sample_size: rwa_yield_aum_usd{token="benji"}
series: rwa_yield_delivered_bps_30d{token="benji"}

# BUIDL + BENJI dormant per the spec comment above (distributor mints
# conflate yield with new subscriptions on BUIDL, no on-chain NAV on
# BENJI). Removed from the public providers list until the harness
# can emit a defensible number; kept in methodology text as context.
- slug: usdy
name: USDY
tag: "Ondo, Ethereum + Solana + Aptos + Sui, daily rebase"
Expand Down
31 changes: 5 additions & 26 deletions benchmarks/token-quote-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,32 +165,11 @@ providers:
sample_size: sum(increase(token_quote_coverage_attempts_total{provider="jupiter"}[24h]))
series: sum(rate(token_quote_coverage_success_total{provider="jupiter"}[1h])) / sum(rate(token_quote_coverage_attempts_total{provider="jupiter"}[1h])) * 100

- slug: kyberswap
name: KyberSwap
tag: EVM multi-chain, Base + BNB + Robinhood
formula: "Rolling 24h ratio for provider=kyberswap. EVM launchpads only (Virtuals, Four.meme). Solana cells null."
queries:
p50: sum(increase(token_quote_coverage_success_total{provider="kyberswap"}[24h])) / sum(increase(token_quote_coverage_attempts_total{provider="kyberswap"}[24h])) * 100
p90: sum(increase(token_quote_coverage_attempts_total{provider="kyberswap"}[24h]))
p99: sum(increase(token_quote_coverage_success_total{provider="kyberswap"}[24h])) / sum(increase(token_quote_coverage_attempts_total{provider="kyberswap"}[24h])) * 100
mean: sum(increase(token_quote_coverage_success_total{provider="kyberswap"}[24h])) / sum(increase(token_quote_coverage_attempts_total{provider="kyberswap"}[24h])) * 100
success: clamp_max(sum(increase(token_quote_coverage_success_total{provider="kyberswap"}[24h])) / sum(increase(token_quote_coverage_attempts_total{provider="kyberswap"}[24h])), 1)
sample_size: sum(increase(token_quote_coverage_attempts_total{provider="kyberswap"}[24h]))
series: sum(rate(token_quote_coverage_success_total{provider="kyberswap"}[1h])) / sum(rate(token_quote_coverage_attempts_total{provider="kyberswap"}[1h])) * 100

- slug: paraswap
name: ParaSwap
tag: EVM multi-chain, Base + BNB + Robinhood
formula: "Rolling 24h ratio for provider=paraswap. EVM launchpads only (Base, BNB, Robinhood). Solana cells null."
queries:
p50: sum(increase(token_quote_coverage_success_total{provider="paraswap"}[24h])) / sum(increase(token_quote_coverage_attempts_total{provider="paraswap"}[24h])) * 100
p90: sum(increase(token_quote_coverage_attempts_total{provider="paraswap"}[24h]))
p99: sum(increase(token_quote_coverage_success_total{provider="paraswap"}[24h])) / sum(increase(token_quote_coverage_attempts_total{provider="paraswap"}[24h])) * 100
mean: sum(increase(token_quote_coverage_success_total{provider="paraswap"}[24h])) / sum(increase(token_quote_coverage_attempts_total{provider="paraswap"}[24h])) * 100
success: clamp_max(sum(increase(token_quote_coverage_success_total{provider="paraswap"}[24h])) / sum(increase(token_quote_coverage_attempts_total{provider="paraswap"}[24h])), 1)
sample_size: sum(increase(token_quote_coverage_attempts_total{provider="paraswap"}[24h]))
series: sum(rate(token_quote_coverage_success_total{provider="paraswap"}[1h])) / sum(rate(token_quote_coverage_attempts_total{provider="paraswap"}[1h])) * 100

# KyberSwap + ParaSwap declared in earlier revisions of this spec are
# currently not emitting on the harness (no token_quote_coverage_*
# metric with those provider labels in Prom). Removed from the public
# providers list until the harness ships probes for them, to avoid
# readers seeing a 5-provider claim that renders as 3.
- slug: relay
name: Relay
tag: Multi-chain, Solana + Base + BNB + Robinhood, no key
Expand Down
18 changes: 18 additions & 0 deletions harnesses/chain-kpis/cmd/script/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,4 +98,22 @@ var Registry = []Chain{
// asset (Mobula symbol HYPE resolves to the correct market data,
// ~$58 spot / ~$13.9B mcap verified live 2026-07-25).
{Slug: "hyperliquid", DefiLlama: "Hyperliquid L1", Mobula: "HyperEVM", NativeSymbol: "HYPE"},
// Sei EVM (chain 1329). Cosmos SDK L1 with parallel-execution EVM
// layer. DefiLlama tracks it as "Sei" (verified /v2/chains 2026-07-26).
// Mobula left empty until the free-tier blockchains endpoint is
// re-accessible with a key; the KPI page renders fine with just
// DefiLlama fees/TVL/stables. Native SEI serves as gas for both
// the Cosmos and EVM sides.
{Slug: "sei", DefiLlama: "Sei", Mobula: "", NativeSymbol: "SEI"},
// Mode (chain 34443). OP Stack L2 in the Base ecosystem, DeFi + AI
// positioning. DefiLlama slug "Mode" verified.
{Slug: "mode", DefiLlama: "Mode", Mobula: "", NativeSymbol: "ETH"},
// Ronin (chain 2020). Sky Mavis' EVM gaming L1, home of Axie /
// Pixels and a broader gaming stack. DefiLlama slug "Ronin" verified.
// RON native token.
{Slug: "ronin", DefiLlama: "Ronin", Mobula: "", NativeSymbol: "RON"},
// Immutable zkEVM (chain 13371). Polygon CDK zkEVM L2 dedicated to
// Web3 gaming, operated by Immutable. DefiLlama slug "Immutable zkEVM"
// verified — the space is intentional and matches /v2/chains casing.
{Slug: "immutable", DefiLlama: "Immutable zkEVM", Mobula: "", NativeSymbol: "IMX"},
}
9 changes: 7 additions & 2 deletions src/app/products/[slug]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -568,14 +568,19 @@ export default async function ProviderPage({
jump from a venue/data provider product page to the
PM coverage hub. Hard-coded slug list, same shape
as the HL companion treatment elsewhere. */}
{/* Prediction-market venues only. Mobula + Codex were
previously in this list because they surface PM
pricing feeds inside their APIs, but their /products
pages read primarily as data-API profiles and the
"View on /prediction-markets" pill looked misleading
alongside their DEX / aggregator / RPC benches.
Removed 2026-07-26. */}
{(
p.slug === "polymarket" ||
p.slug === "kalshi" ||
p.slug === "limitless" ||
p.slug === "manifold" ||
p.slug === "myriad" ||
p.slug === "mobula" ||
p.slug === "codex" ||
p.slug === "predexon"
) && (
<>
Expand Down
Loading