+ >
+ );
+}
diff --git a/next.config.mjs b/next.config.mjs
index d707851..bedfc29 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -15,18 +15,23 @@ const nextConfig = {
// ignores this and uses its own runtime, so it's a no-op there.
output: 'standalone',
- // Demos moved from /vibenet/demos to the top-level /demos. Both old paths
- // were in the published sitemap and /vibenet/demos/account is linked from the
- // site-wide announcement banner, so they are permanently redirected rather
- // than left to 404 for existing links and search results.
+ // Demos live under /vibenet/demos. They briefly sat at the top-level /demos,
+ // whose paths were published in the sitemap and linked externally, so those
+ // old paths are permanently redirected rather than left to 404 for existing
+ // links and search results.
//
// Internal Explorer moved from /tips to /internal-explorer. Legacy redirects
// are internal-only: the public build 404s both prefixes via middleware so
// it never advertises the internal surface.
async redirects() {
return [
- { source: '/vibenet/demos', destination: '/demos', permanent: true },
- { source: '/vibenet/demos/:path*', destination: '/demos/:path*', permanent: true },
+ // The old demos index merged into the Vibenet overview; deep demo links
+ // map straight to their new home under /vibenet/demos.
+ { source: '/demos', destination: '/vibenet', permanent: true },
+ { source: '/demos/:path*', destination: '/vibenet/demos/:path*', permanent: true },
+ // /vibenet/demos has no index page — the demo list lives on the Vibenet
+ // overview, so send the bare path there.
+ { source: '/vibenet/demos', destination: '/vibenet', permanent: true },
...(TARGET === 'internal'
? [
{ source: '/tips', destination: '/internal-explorer', permanent: true },
diff --git a/public/AGENTS.md b/public/AGENTS.md
index 28cf11d..70e7a18 100644
--- a/public/AGENTS.md
+++ b/public/AGENTS.md
@@ -27,7 +27,7 @@ Machine-readable entry point for agents working with Base Chain network state.
| /upgrades/changelog | per release | re-fetch before stating an activation status |
| /vibenet/faucet | monthly | stable within a session |
| /api/snapshots | daily | re-fetch every session; never cache across sessions |
-| /, /demos, /demos/account, /demos/b20, /vibenet | infrequent | stable within a session |
+| /, /vibenet, /vibenet/demos/account, /vibenet/demos/b20 | infrequent | stable within a session |
## Machine-readable endpoints
@@ -86,15 +86,11 @@ Discovered from the Next.js app directory.
**Vibenet developer network**
- [/vibenet](https://chain.base.org/vibenet) — Explore Vibenet, the Base devnet for testing in-flight protocol features.
+- [/vibenet/demos/account](https://chain.base.org/vibenet/demos/account) — Create native account abstraction accounts from in-browser keys, fund them from the faucet, and inspect balances on Vibenet.
+- [/vibenet/demos/b20](https://chain.base.org/vibenet/demos/b20) — Explore, configure, and issue Base-native B20 tokens on Vibenet.
- [/vibenet/explorer](https://chain.base.org/vibenet/explorer) — Browse blocks, transactions, and addresses on the Vibenet devnet.
- [/vibenet/faucet](https://chain.base.org/vibenet/faucet) — Request testnet tokens on Vibenet to fund accounts and try in-flight Base features.
-**Other**
-
-- [/demos](https://chain.base.org/demos) — Interactive demos of in-flight Base features. Each demo runs on the test network that carries the feature it shows.
-- [/demos/account](https://chain.base.org/demos/account) — Create native account abstraction accounts from in-browser keys, fund them from the faucet, and inspect balances on Vibenet.
-- [/demos/b20](https://chain.base.org/demos/b20) — Explore, configure, and issue Base-native B20 tokens on Vibenet.
-
## Generation
- Script: `scripts/agents.mjs`
diff --git a/public/llms-full.txt b/public/llms-full.txt
index 98e8812..d7ad4d0 100644
--- a/public/llms-full.txt
+++ b/public/llms-full.txt
@@ -19,14 +19,11 @@
## Vibenet developer network
- [Vibenet · Base Chain](https://chain.base.org/vibenet): Explore Vibenet, the Base devnet for testing in-flight protocol features.
+- [Native Account Abstraction · Vibenet](https://chain.base.org/vibenet/demos/account): Create native account abstraction accounts from in-browser keys, fund them from the faucet, and inspect balances on Vibenet.
+- [B20 Playground · Vibenet](https://chain.base.org/vibenet/demos/b20): Explore, configure, and issue Base-native B20 tokens on Vibenet.
- [Explorer · Vibenet](https://chain.base.org/vibenet/explorer): Browse blocks, transactions, and addresses on the Vibenet devnet. (changes daily; re-fetch before relying on it)
- [Faucet · Vibenet](https://chain.base.org/vibenet/faucet): Request testnet tokens on Vibenet to fund accounts and try in-flight Base features. (changes monthly; re-fetch before relying on it)
-## Other
-- [Demos · Base Chain](https://chain.base.org/demos): Interactive demos of in-flight Base features. Each demo runs on the test network that carries the feature it shows.
-- [Native Account Abstraction · Demos](https://chain.base.org/demos/account): Create native account abstraction accounts from in-browser keys, fund them from the faucet, and inspect balances on Vibenet.
-- [B20 Playground · Demos](https://chain.base.org/demos/b20): Explore, configure, and issue Base-native B20 tokens on Vibenet.
-
## Machine-readable endpoints
- [Chain health](https://chain.base.org/api/health): JSON liveness probe for the chain.base.org service. Call this instead of parsing the homepage.
- [Snapshots manifest](https://chain.base.org/api/snapshots): JSON array of the latest node snapshots per chain: chainId, chainName, block height, timestamp, client version, profile, total byte size, and a per-component breakdown. Call this instead of scraping /snapshots.
diff --git a/public/llms.txt b/public/llms.txt
index 9720909..74840d9 100644
--- a/public/llms.txt
+++ b/public/llms.txt
@@ -17,14 +17,11 @@ Freshness: /snapshots and /vibenet/explorer change daily. /vibenet/faucet change
## Vibenet developer network
- [Vibenet · Base Chain](https://chain.base.org/vibenet): Explore Vibenet, the Base devnet for testing in-flight protocol features.
+- [Native Account Abstraction · Vibenet](https://chain.base.org/vibenet/demos/account): Create native account abstraction accounts from in-browser keys, fund them from the faucet, and inspect balances on Vibenet.
+- [B20 Playground · Vibenet](https://chain.base.org/vibenet/demos/b20): Explore, configure, and issue Base-native B20 tokens on Vibenet.
- [Explorer · Vibenet](https://chain.base.org/vibenet/explorer): Browse blocks, transactions, and addresses on the Vibenet devnet.
- [Faucet · Vibenet](https://chain.base.org/vibenet/faucet): Request testnet tokens on Vibenet to fund accounts and try in-flight Base features.
-## Other
-- [Demos · Base Chain](https://chain.base.org/demos): Interactive demos of in-flight Base features. Each demo runs on the test network that carries the feature it shows.
-- [Native Account Abstraction · Demos](https://chain.base.org/demos/account): Create native account abstraction accounts from in-browser keys, fund them from the faucet, and inspect balances on Vibenet.
-- [B20 Playground · Demos](https://chain.base.org/demos/b20): Explore, configure, and issue Base-native B20 tokens on Vibenet.
-
## Machine-readable endpoints
- [Chain health](https://chain.base.org/api/health): JSON liveness probe for the chain.base.org service. Call this instead of parsing the homepage.
- [Snapshots manifest](https://chain.base.org/api/snapshots): JSON array of the latest node snapshots per chain: chainId, chainName, block height, timestamp, client version, profile, total byte size, and a per-component breakdown. Call this instead of scraping /snapshots.