diff --git a/src/app/speedtest-rpc/page.tsx b/src/app/speedtest-rpc/page.tsx index ae1291cb..65672c1f 100644 --- a/src/app/speedtest-rpc/page.tsx +++ b/src/app/speedtest-rpc/page.tsx @@ -7,9 +7,9 @@ import { SITE } from "@/data/site"; export const metadata: Metadata = pageMetadata({ path: "/speedtest-rpc", - title: "RPC Speed Test — benchmark your endpoints from your browser", + title: "RPC Speed Test: benchmark your endpoints from your browser", description: - "Paste any RPC URLs and measure their real latency from your own connection. Same anti-cache methodology as our public benchmarks. No install, no signup — your URLs and API keys never leave your browser.", + "Paste any RPC URLs and measure their real latency from your own connection. Same anti-cache methodology as our public benchmarks. No install, no signup, and your URLs and API keys never leave your browser.", }); export const revalidate = 3600; @@ -51,8 +51,8 @@ export default function SpeedtestRpcPage() { Benchmark your RPC endpoints, from your connection

- Paste any JSON-RPC URLs — public gateways or your own keyed endpoints — - pick a duration, and watch them race. Every probe fires directly from + Paste any JSON-RPC URLs, public gateways or your own keyed endpoints, + then pick a duration, and watch them race. Every probe fires directly from your browser with the same anti-cache payload as our{" "} public RPC benchmarks @@ -61,7 +61,7 @@ export default function SpeedtestRpcPage() {

No install, no signup. Your URLs and API keys never leave this browser - tab — requests go straight from you to the provider. + tab. Requests go straight from you to the provider.

@@ -78,7 +78,7 @@ export default function SpeedtestRpcPage() { POST with a rotating request id, so no edge cache can answer without touching a real node. One warmup request absorbs the TCP + TLS handshake, then all endpoints are probed once per second in - staggered, randomized rounds until the clock runs out — request + staggered, randomized rounds until the clock runs out, so request bursts never align and network wake-ups hit every endpoint evenly. Responses are classified ok / http_err / jsonrpc_err / timeout, and an endpoint reporting a block more than 20 behind the @@ -87,7 +87,7 @@ export default function SpeedtestRpcPage() { public benchmark methodology - . Results reflect your device, network and location — that is the + . Results reflect your device, network and location. That is the point: it is the latency your application would actually see.

diff --git a/src/components/speedtest/speedtest-rpc-client.tsx b/src/components/speedtest/speedtest-rpc-client.tsx index 16607bb3..234c26d8 100644 --- a/src/components/speedtest/speedtest-rpc-client.tsx +++ b/src/components/speedtest/speedtest-rpc-client.tsx @@ -515,7 +515,7 @@ export function SpeedtestRpcClient() { patch(ep.id, { status: "cors_blocked", error: - "This endpoint does not answer browser requests (no CORS headers on preflight) — dapps cannot call it from a browser either. It may still be fast server-side: measure it from a terminal with the curl below.", + "This endpoint does not answer browser requests (no CORS headers on preflight). Dapps cannot call it from a browser either. It may still be fast server-side: measure it from a terminal with the curl below.", }); } } @@ -651,7 +651,7 @@ export function SpeedtestRpcClient() { continuously (90 EVM chains, 291 endpoints). */}

- Prefill with the endpoints we already benchmark — pick a chain: + Prefill with the endpoints we already benchmark. Pick a chain:

{FEATURED_CHAINS.map((slug) => { @@ -708,13 +708,13 @@ export function SpeedtestRpcClient() { {pickedChain && (

{prefillState === "validating" - ? `⏳ ${RPC_DIRECTORY.find((c) => c.slug === pickedChain)?.name} — checking ${inputs.length} benchmarked endpoints from your browser…` - : `✓ ${RPC_DIRECTORY.find((c) => c.slug === pickedChain)?.name} — ${inputs.filter(Boolean).length} endpoints ready. Add your own keyed URLs below to race them.`} + ? `⏳ ${RPC_DIRECTORY.find((c) => c.slug === pickedChain)?.name}: checking ${inputs.length} benchmarked endpoints from your browser…` + : `✓ ${RPC_DIRECTORY.find((c) => c.slug === pickedChain)?.name}: ${inputs.filter(Boolean).length} endpoints ready. Add your own keyed URLs below to race them.`}

)} {skippedProviders.length > 0 && (

- Skipped {skippedProviders.join(", ")} — no browser (CORS) support; the public bench probes it server-side. + Skipped {skippedProviders.join(", ")}: no browser (CORS) support. The public bench probes it server-side.

)}
@@ -959,7 +959,7 @@ export function SpeedtestRpcClient() { if (blockedDir.length === 0) return null; return (

- Not testable from a browser (skipped): {blockedDir.map((e) => epLabel(e)).join(", ")} — the public bench covers {blockedDir.length > 1 ? "them" : "it"} server-side. + Not testable from a browser (skipped): {blockedDir.map((e) => epLabel(e)).join(", ")}. The public bench covers {blockedDir.length > 1 ? "them" : "it"} server-side.

); })()}