diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
index 548fd532..8a8a7e75 100644
--- a/.github/CODE_OF_CONDUCT.md
+++ b/.github/CODE_OF_CONDUCT.md
@@ -28,7 +28,7 @@ Decisions are recorded in the affected thread.
## Reporting
-For private reports — including suspected manipulation, harassment, or undisclosed conflicts of interest — email **conduct@openchainbench.com** or open a [private security advisory](https://github.com/OpenChainBench/OpenChainBench/security/advisories/new) (the same channel works for non-security disclosures).
+For private reports — including suspected manipulation, harassment, or undisclosed conflicts of interest — email **conduct@openchainbench.xyz** or open a [private security advisory](https://github.com/OpenChainBench/OpenChainBench/security/advisories/new) (the same channel works for non-security disclosures).
We treat reporters' identities as confidential by default.
diff --git a/.github/SECURITY.md b/.github/SECURITY.md
index a26a94a7..b0f8bfb6 100644
--- a/.github/SECURITY.md
+++ b/.github/SECURITY.md
@@ -4,7 +4,7 @@
Open a [private security advisory](https://github.com/OpenChainBench/OpenChainBench/security/advisories/new) on this repository. Do **not** open a public issue for a security report — the advisory mechanism keeps the disclosure private until a fix is in place.
-If GitHub is not an option, email **security@openchainbench.com** with:
+If GitHub is not an option, email **security@openchainbench.xyz** with:
- A description of the vulnerability and the affected component (site, harness, infrastructure).
- A reproducer or proof of concept.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index add57897..df16bbfa 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,6 +1,6 @@
# Contributing
-OpenChainBench is community-run. Anyone can submit a benchmark, fix a number, propose a methodology change. The web tutorial at [`/contribute`](https://openchainbench.com/contribute) walks through the steps; this file is the long-form reference. For a concrete end-to-end worked example, see [`docs/walkthrough.md`](./docs/walkthrough.md).
+OpenChainBench is community-run. Anyone can submit a benchmark, fix a number, propose a methodology change. The web tutorial at [`/contribute`](https://openchainbench.xyz/contribute) walks through the steps; this file is the long-form reference. For a concrete end-to-end worked example, see [`docs/walkthrough.md`](./docs/walkthrough.md).
## What lives where
diff --git a/README.md b/README.md
index 0f923210..cd2f8781 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# OpenChainBench
-> Open, reproducible benchmarks for crypto infrastructure — aggregators, bridges, RPCs, price feeds. Same metric, same conditions, every provider. Live at [openchainbench.com](https://openchainbench.com).
+> Open, reproducible benchmarks for crypto infrastructure — aggregators, bridges, RPCs, price feeds. Same metric, same conditions, every provider. Live at [openchainbench.xyz](https://openchainbench.xyz).
OpenChainBench publishes one benchmark at a time, each one shipping with the script that produces its data. The goal is to make performance an observable property of crypto infra — measured in the open, by anyone who wants to add a provider or a metric.
@@ -53,7 +53,7 @@ OpenChainBench is a federation of independently-hosted harnesses connected by a
│ HTTPS
│ /api/v1/query
▼
- openchainbench.com
+ openchainbench.xyz
(Next.js site on Vercel, ISR 60s)
```
@@ -139,7 +139,7 @@ You never share API keys or wallet keys with the project. Your harness runs with
## Links
-- Site — [openchainbench.com](https://openchainbench.com)
+- Site — [openchainbench.xyz](https://openchainbench.xyz)
- Twitter — [@openchainbench](https://twitter.com/openchainbench)
- GitHub — [OpenChainBench/OpenChainBench](https://github.com/OpenChainBench/OpenChainBench)
diff --git a/docs/walkthrough.md b/docs/walkthrough.md
index 177b8ba0..cb291782 100644
--- a/docs/walkthrough.md
+++ b/docs/walkthrough.md
@@ -2,7 +2,7 @@
A concrete, end-to-end example of how a new benchmark gets onto the site. Written from the contributor's perspective, with the maintainer + automation actions called out so you can see what is yours to do and what happens around you.
-For the formal step-by-step reference, see [`/CONTRIBUTING.md`](../CONTRIBUTING.md) and the [`/contribute`](https://openchainbench.com/contribute) page. This document is the "what does a real contribution look like in practice" version.
+For the formal step-by-step reference, see [`/CONTRIBUTING.md`](../CONTRIBUTING.md) and the [`/contribute`](https://openchainbench.xyz/contribute) page. This document is the "what does a real contribution look like in practice" version.
## The scenario
@@ -59,7 +59,7 @@ methodology:
source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/wallet-portfolio-latency
prometheus:
- url: https://prom.openchainbench.com
+ url: https://prom.openchainbench.xyz
window: 24h
providers:
@@ -202,14 +202,14 @@ A maintainer pulls up the PR. They check four things:
The maintainer comments "looks good", merges to `main`. The PR is auto-linked to the original issue, which moves to `In progress` on the roadmap.
-**Vercel rebuilds the site automatically.** The benchmark page appears at `https://openchainbench.com/benchmarks/wallet-portfolio-latency` immediately, but it's empty — the central Prometheus has not been told to scrape Alex's URL yet.
+**Vercel rebuilds the site automatically.** The benchmark page appears at `https://openchainbench.xyz/benchmarks/wallet-portfolio-latency` immediately, but it's empty — the central Prometheus has not been told to scrape Alex's URL yet.
## Phase 7 — Apply the scrape (Day 3, ~30 s)
The maintainer triggers a Prometheus reload:
```bash
-curl -X POST https://prom.openchainbench.com/-/reload
+curl -X POST https://prom.openchainbench.xyz/-/reload
```
Prometheus reloads its config file (which now has Alex's new scrape job), starts hitting `https://alex-portfolio-bench.fly.dev/metrics` every 15 s, and stores the data with `benchmark: wallet-portfolio-latency, host: alex` labels.
@@ -220,7 +220,7 @@ The site's ISR cache for `/benchmarks/wallet-portfolio-latency` expires (default
Alex's benchmark is live. The roadmap card moves to `Live`. The maintainer pings the original issue:
-> "Live at https://openchainbench.com/benchmarks/wallet-portfolio-latency. Initial 24-hour run will smooth out — the page may look noisy until then."
+> "Live at https://openchainbench.xyz/benchmarks/wallet-portfolio-latency. Initial 24-hour run will smooth out — the page may look noisy until then."
## What Alex did vs what Alex didn't have to do
diff --git a/infrastructure/README.md b/infrastructure/README.md
index 79565163..6bc37c1e 100644
--- a/infrastructure/README.md
+++ b/infrastructure/README.md
@@ -28,7 +28,7 @@ OpenChainBench is a federation. **Each harness is hosted by whoever wrote it**
└────────────────┬───────────────────┘
│ HTTPS, /api/v1/query
▼
- openchainbench.com
+ openchainbench.xyz
(Next.js site on Vercel)
```
diff --git a/src/app/benchmarks/[slug]/share-card/route.tsx b/src/app/benchmarks/[slug]/share-card/route.tsx
index e4a0d1b5..61b3f9bb 100644
--- a/src/app/benchmarks/[slug]/share-card/route.tsx
+++ b/src/app/benchmarks/[slug]/share-card/route.tsx
@@ -182,7 +182,7 @@ function CardFooter({
}}
>
- openchainbench.com · № {benchmark.number} · {benchmark.category}
+ openchainbench.xyz · № {benchmark.number} · {benchmark.category}
- openchainbench.com
+ openchainbench.xyz
@openchainbench
diff --git a/src/app/twitter-image.tsx b/src/app/twitter-image.tsx
index 17375f3a..3eacd4d0 100644
--- a/src/app/twitter-image.tsx
+++ b/src/app/twitter-image.tsx
@@ -71,7 +71,7 @@ export default function TwitterImage() {
color: "#1c1a17",
}}
>
- openchainbench.com
+ openchainbench.xyz
@openchainbench
diff --git a/src/data/site.ts b/src/data/site.ts
index 97732e69..1705be08 100644
--- a/src/data/site.ts
+++ b/src/data/site.ts
@@ -1,6 +1,6 @@
export const SITE = {
name: "OpenChainBench",
- url: "https://openchainbench.com",
+ url: "https://openchainbench.xyz",
twitter: "@openchainbench",
github: "https://github.com/OpenChainBench/OpenChainBench",
description: