Skip to content
Open
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
2 changes: 1 addition & 1 deletion answers/drpc-vs-publicnode-vs-1rpc.yml
Original file line number Diff line number Diff line change
@@ -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

Expand Down
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -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
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -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
9 changes: 8 additions & 1 deletion src/app/api/internal/revalidate-aggregate/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,12 @@ export async function POST(req: Request): Promise<NextResponse> {
// "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"] });
}
4 changes: 2 additions & 2 deletions src/app/llms.txt/route.ts
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -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("");
}

Expand Down
Loading