Skip to content
Merged
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
Binary file added public/logos/vntl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logos/xyz.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 13 additions & 6 deletions src/app/sitemap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
{ url: `${SITE.url}/contribute`, lastModified: pageMtime("contribute/page.tsx"), changeFrequency: "monthly", priority: 0.7 },
{ url: `${SITE.url}/about`, lastModified: pageMtime("about/page.tsx"), changeFrequency: "monthly", priority: 0.5 },
{ url: `${SITE.url}/press`, lastModified: pageMtime("press/page.tsx"), changeFrequency: "monthly", priority: 0.4 },
{ url: `${SITE.url}/compare`, lastModified: pageMtime("compare/page.tsx"), changeFrequency: "weekly", priority: 0.6 },
];

// Bench routes. The hub URL is the canonical entry and ranks highest.
Expand Down Expand Up @@ -138,12 +139,18 @@ export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
priority: 0.85,
}));

const alternativeRoutes: MetadataRoute.Sitemap = alternatives.map((alt) => ({
url: `${SITE.url}/alternatives/${alt.slug}`,
lastModified: alternativeLastRun.get(alt.slug) ?? catalogLastRun,
changeFrequency: "daily",
priority: 0.85,
}));
// Only list alternatives whose parent bench exists on this branch. Some
// benches are deliberately held out of main (deleted YAMLs, 410 route),
// and /alternatives/<slug> 404s when its bench is missing — emitting the
// URL anyway feeds Google a sitemap entry that dead-ends.
const alternativeRoutes: MetadataRoute.Sitemap = alternatives
.filter((alt) => benchBySlug.has(alt.benchmark))
.map((alt) => ({
url: `${SITE.url}/alternatives/${alt.slug}`,
lastModified: alternativeLastRun.get(alt.slug) ?? catalogLastRun,
changeFrequency: "daily",
priority: 0.85,
}));

// Head-to-head compare pages. Each pair pins one or more parent benches;
// we take the most recent lastRunAt across pinned benches as the lastmod.
Expand Down
26 changes: 26 additions & 0 deletions src/data/provider-registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1019,6 +1019,32 @@ export const PROVIDER_REGISTRY: Record<string, ProviderRegistryEntry> = {
"High-performance spot and perpetuals exchange with colocated low-latency fiber and independently verifiable sequencing. Routes Hyperliquid perp orders via a registered builder code.",
twitter: "@Blink_Exchange",
},

// ─── Hyperliquid HIP-3 deployers (bench № 035) ─────────────────────
xyz: {
url: "https://trade.xyz",
description:
"trade.xyz operates the largest HIP-3 builder-deployed dex on Hyperliquid: 70+ tokenized US equity, index, and commodity perp markets under the xyz namespace, collecting a deployer fee on every fill.",
chains: ["hyperliquid"],
features: [
"Tokenized US equity perps (AAPL, TSLA, NVDA and 70+ markets)",
"Index and commodity perpetuals",
"HIP-3 namespace xyz on HyperCore",
"Deployer fee collected via the on-chain deployerFee field",
],
},
vntl: {
url: "https://ventuals.com",
description:
"Ventuals runs pre-IPO valuation perpetuals on Hyperliquid under the vntl HIP-3 namespace: traders price private company valuations (MAG7-style baskets and single names) rather than listed stock.",
twitter: "@ventuals",
chains: ["hyperliquid"],
features: [
"Pre-IPO valuation perpetual markets",
"HIP-3 namespace vntl on HyperCore",
"Deployer fee collected via the on-chain deployerFee field",
],
},
};

/**
Expand Down
4 changes: 4 additions & 0 deletions src/lib/logo-manifest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,10 @@ const RAW: Record<string, string> = {
dexari: "/logos/dexari.png",
okto: "/logos/okto.png",

// ─── Hyperliquid HIP-3 deployers (bench № 035) ───
xyz: "/logos/xyz.png",
vntl: "/logos/vntl.png",

// ─── Hyperliquid frontends registry expansion (8 → 60) ───
"trust-wallet": "/logos/trust-wallet.png",
sushi: "/logos/sushi.png",
Expand Down
Loading