diff --git a/answers/drpc-vs-publicnode-vs-1rpc.yml b/answers/drpc-vs-publicnode-vs-1rpc.yml index a2636e94..33555c65 100644 --- a/answers/drpc-vs-publicnode-vs-1rpc.yml +++ b/answers/drpc-vs-publicnode-vs-1rpc.yml @@ -1,7 +1,7 @@ slug: drpc-vs-publicnode-vs-1rpc question: "dRPC vs PublicNode vs 1RPC, which no-key public RPC is fastest?" short_answer: | - OpenChainBench ranks dRPC, PublicNode and 1RPC alongside 12 other no-key public RPCs on identical eth_getBlockByNumber probes from three regions across 10 EVM chains. Aggregate leaders on the full 15-provider board are often chain-official gateways (Binance, Base, Avalanche) rather than the multi-chain trio, and 1RPC was delisted from the leaderboard 2026-07-09 for a sustained sub-13 percent success rate. Live per chain and per region ranking at openchainbench.com/benchmarks/rpc-capabilities. + Between the three providers, dRPC and PublicNode trade the top two spots by chain and region; 1RPC was delisted 2026-07-09 for a sustained sub-13% success rate and is pinned below the ranked table. On the wider 15-provider board, chain-official gateways (Binance, Base, Avalanche) often post faster aggregate p50. Live per-chain and per-region ranking at openchainbench.com/benchmarks/rpc-capabilities. benchmark: rpc-capabilities diff --git a/answers/which-prediction-market-data-api-is-the-freshest.yml b/answers/which-prediction-market-data-api-is-the-freshest.yml index b985e0d4..9e88be14 100644 --- a/answers/which-prediction-market-data-api-is-the-freshest.yml +++ b/answers/which-prediction-market-data-api-is-the-freshest.yml @@ -1,7 +1,7 @@ slug: which-prediction-market-data-api-is-the-freshest question: "Which prediction market data API publishes the freshest Polymarket data?" short_answer: | - {{best_name}} currently relays Polymarket trades the fastest at {{best_p50}} (p50, 24h) versus Polymarket's own CLOB WebSocket gateway, measured by cross correlating trade events on Polymarket and Codex on the same rotating basket of top 20 markets by 24 hour volume. + Polymarket's own CLOB WebSocket gateway is the canonical fastest source by definition (T0, sub-50ms from EU West) and is not a competing data provider. Among third-party data providers, Codex currently leads at {{p50:codex}} (p50, 24h) on the Polymarket tab, measured as lag from venue publish to provider relay; Codex indexes the onchain Polygon confirmation so its structural floor is roughly 2 seconds of block time. Live per-venue ranking at openchainbench.com/benchmarks/pm-data-freshness. benchmark: pm-data-freshness @@ -38,5 +38,5 @@ related: - which-crypto-price-api-is-the-fastest seo_title: "Which prediction market data API is the freshest in 2026?" -seo_description: "{{best_name}} leads at {{best_p50}} (p50, 24h) versus Polymarket's CLOB gateway, with Codex measured live by OpenChainBench on the top 20 Polymarket markets by volume." +seo_description: "Polymarket's own CLOB gateway is the canonical T0 (fastest by definition). Among third-party providers, Codex leads freshness delta live, measured by OpenChainBench on the top 20 Polymarket and Kalshi markets by volume." status: live diff --git a/answers/which-prediction-market-has-the-strictest-rate-limits.yml b/answers/which-prediction-market-has-the-strictest-rate-limits.yml index 6a08c8ef..62a39ca9 100644 --- a/answers/which-prediction-market-has-the-strictest-rate-limits.yml +++ b/answers/which-prediction-market-has-the-strictest-rate-limits.yml @@ -1,7 +1,7 @@ slug: which-prediction-market-has-the-strictest-rate-limits question: "Which prediction market API has the strictest rate limits?" short_answer: | - {{best_name}} currently posts the lowest warm book endpoint latency at {{best_p50}} (p50, 24h) across Polymarket, Kalshi, Limitless, Manifold and Myriad, measured live by OpenChainBench with a daily throttle ramp from 3 regions. + Myriad documents the tightest published rate limit in the cohort at 30 requests per 10 seconds. Polymarket has no hard 429 threshold at polite rates — its Cloudflare front queues bursts and adds latency instead of returning errors. Kalshi runs a documented token bucket per access tier. Live warm-book p50 latency and daily throttle-ramp results for all five venues at openchainbench.com/benchmarks/pm-rate-limits. benchmark: pm-rate-limits @@ -40,5 +40,5 @@ related: - which-perp-dex-has-the-lowest-fees seo_title: "Which prediction market API has the strictest rate limits in 2026?" -seo_description: "{{best_name}} posts the lowest warm book endpoint latency at {{best_p50}} (p50, 24h) across Polymarket, Kalshi, Limitless, Manifold and Myriad. Daily throttle ramp from 3 regions." +seo_description: "Myriad has the strictest documented rate limit in the cohort (30 req/10s). Polymarket queues via Cloudflare, Kalshi uses a token bucket per tier. Live throttle ramp and warm-book latency for all five venues at OpenChainBench." status: live diff --git a/src/app/api/internal/revalidate-aggregate/route.ts b/src/app/api/internal/revalidate-aggregate/route.ts index 4f2172ee..d42da225 100644 --- a/src/app/api/internal/revalidate-aggregate/route.ts +++ b/src/app/api/internal/revalidate-aggregate/route.ts @@ -36,5 +36,12 @@ export async function POST(req: Request): Promise { // "default" applies the standard purge semantics for the CDN + ISR // cache layers this route is meant to invalidate. revalidateTag("bench-aggregate", "default"); - return NextResponse.json({ revalidated: true, tag: "bench-aggregate" }); + // Also invalidate per-bench caches so answer detail pages (/answers/[slug]) + // and benchmark pages refresh from the same generation as the aggregate + // surfaces (llms.txt, /api/citable, /answers hub). Without this, per-bench + // caches run on their 300s TTL clock independently and answer detail pages + // can serve different values than the hub for up to 5 minutes after a + // worker publish. + revalidateTag("benchmarks", "default"); + return NextResponse.json({ revalidated: true, tags: ["bench-aggregate", "benchmarks"] }); } diff --git a/src/app/llms.txt/route.ts b/src/app/llms.txt/route.ts index 3069ec6e..653845cd 100644 --- a/src/app/llms.txt/route.ts +++ b/src/app/llms.txt/route.ts @@ -1,7 +1,7 @@ import { getBenchmarks } from "@/data/benchmarks"; import { SITE } from "@/data/site"; import { AllBenchmarksDraftError } from "@/lib/spec"; -import { headlineSentence } from "@/lib/citation"; +import { groundingTraceLine } from "@/lib/citation"; export const runtime = "nodejs"; export const revalidate = 300; @@ -56,7 +56,7 @@ export async function GET() { lines.push(`- JSON: ${SITE.url}/api/stat/${b.slug}`); lines.push(`- Category: ${b.category}`); lines.push(`- Metric: ${b.metric} (${b.unit})`); - lines.push(`- Headline: ${headlineSentence(b)}`); + lines.push(`- Headline: ${groundingTraceLine(b, SITE.url)}`); lines.push(""); }