diff --git a/benchmarks/hyperliquid-frontends.yml b/benchmarks/hyperliquid-frontends.yml
index 9abd733d..5b968851 100644
--- a/benchmarks/hyperliquid-frontends.yml
+++ b/benchmarks/hyperliquid-frontends.yml
@@ -61,11 +61,14 @@ abstract: |
Taker share is `crossed_fills / total_fills`. Top three assets
by routed notional per builder reveals routing strategy and
surfaces HIP-3 perps. The harness keeps a curated `builders.json`
- mapping of EVM addresses to frontend slugs (Phantom Perps, Axiom,
- pvp.trade, Insilico, DefiApp, MetaMask, Dexari, Okto). Builder
- addresses with valid fills outside this registry route through
- the same `builder` field but stay invisible to this leaderboard
- until added by a public PR. The bench does not place trades,
+ mapping of EVM addresses to frontend slugs, currently 60 entries
+ covering wallets, terminals, social trading apps, bots, and
+ HIP-3 perps deployers, seeded from the public DefiLlama
+ dimension adapter registry plus behavioral cross reference of
+ the top unidentified addresses. Builder addresses with valid
+ fills outside this registry route through the same `builder`
+ field but stay invisible to this leaderboard until added by a
+ public PR. The bench does not place trades,
does not touch private keys, and does not depend on any internal
Mobula service.
@@ -77,8 +80,8 @@ methodology:
- "Price deviation, slippage proxy. For each new fill on asset A by builder B: `dev_bps = abs(fill_px - last_seen_px_on_A) / last_seen_px * 10000`, where `last_seen_px` is the most recent fill price on that asset across the whole cohort. Averaged per builder over the rolling 24h. Proxy for execution quality. A frontend that routes to less liquid venues or slower order paths shows higher deviation, a direct user cost on top of the fee column."
- "Outage detector. `last_fill_age_seconds = now - max(fill.time for fills in window)` per builder. During active hours the cohort baseline runs under one minute, so anything above a few minutes is a real anomaly. Catches frontends whose routing pipeline is down and frontends that quietly stopped operating but still have their builder code in circulation."
- "Taker share. Each fill has a boolean `crossed` field, true when the fill crossed the spread (taker), false when it rested in the book (maker). `taker_pct = crossed_fills / total_fills` per builder over the window. Separates aggressive instant execution UIs from pro maker heavy terminals."
- - "Per asset top three. For each builder, the three assets with the highest notional volume in the rolling 24h. Cardinality bounded at 8 builders times 3 ranks. The `asset` label rotates as concentration shifts. Reveals routing strategy and surfaces HIP-3 perps (xyz: prefix) that the older Hyperliquid frontends do not list."
- - "Builder registry. `miniapps/hyperliquid-frontends-local/builders.json` is a hand curated `[{slug, name, address, valid_from, notes}]` array. Currently tracks Phantom Perps, Axiom, pvp.trade, Insilico, DefiApp, MetaMask, Dexari, Okto, accounting for roughly half of attributed Hyperliquid volume. The remaining attributed volume routes through several hundred smaller builder addresses, expansion planned via public PR."
+ - "Per asset top three. For each builder, the three assets with the highest notional volume in the rolling 24h. Cardinality bounded at the cohort size times 3 ranks (currently 60 builders × 3 = 180 series). The `asset` label rotates as concentration shifts. Reveals routing strategy and surfaces HIP-3 perps (xyz:, km:, cash: prefixes) that the older Hyperliquid frontends do not list."
+ - "Builder registry. `miniapps/hyperliquid-frontends-local/builders.json` is a hand curated `[{slug, name, address, valid_from, notes}]` array, currently 60 entries seeded from DefiLlama's open source dimension adapter registry plus a behavioral cross reference pass on the top unidentified addresses. Covers wallets (Phantom, MetaMask, Rabby, OneKey, Trust Wallet, Gem Wallet, Rainbow, Coin98), pro terminals (Insilico, Dexari, Axiom, Pear, Lit Trade, Nautilus Trader), social and PvP UIs (pvp.trade, Senpi, FOMO, SuperX), bots and signal apps (FlowBot, Tread.fi, Moonbot, Hyperdash, Metascalp), and HIP-3 deployers, accounting for the bulk of attributed Hyperliquid volume. New addresses ship via public PR."
- "Excluded by design. Native HL UI orders carry no builder code so they are not user attributable by this method. Roughly 95 percent of Hyperliquid fills land without a builder field. The 5 percent that do are the frontend ecosystem this bench measures."
- "Reproducibility. Harness source at `miniapps/hyperliquid-frontends-local/` in the mobula-api repo (Go). Anyone running their own hl-node can clone, point the `-data` flag at their `node_fills_by_block/hourly` root, run the binary against a Prometheus scraper, and reproduce these metrics. No private API keys, no internal Mobula service dependency."
- "Methodology versioning. Any change (registry additions, formula tweaks, exclusion thresholds, window sizes) ships as a public PR. Major changes run a parallel period publishing old and new metric series side by side under a `_v2` suffix until cutover."
diff --git a/public/logos/apexliquid.png b/public/logos/apexliquid.png
new file mode 100644
index 00000000..cb141c3a
Binary files /dev/null and b/public/logos/apexliquid.png differ
diff --git a/public/logos/arena.png b/public/logos/arena.png
new file mode 100644
index 00000000..86f113ed
Binary files /dev/null and b/public/logos/arena.png differ
diff --git a/public/logos/based-app.png b/public/logos/based-app.png
new file mode 100644
index 00000000..2a561786
Binary files /dev/null and b/public/logos/based-app.png differ
diff --git a/public/logos/bullpen.svg b/public/logos/bullpen.svg
new file mode 100644
index 00000000..31151bb6
--- /dev/null
+++ b/public/logos/bullpen.svg
@@ -0,0 +1,12 @@
+
diff --git a/public/logos/coin98.png b/public/logos/coin98.png
new file mode 100644
index 00000000..c1b73f55
Binary files /dev/null and b/public/logos/coin98.png differ
diff --git a/public/logos/coinpilot.png b/public/logos/coinpilot.png
new file mode 100644
index 00000000..0458d808
Binary files /dev/null and b/public/logos/coinpilot.png differ
diff --git a/public/logos/dexly-trade.svg b/public/logos/dexly-trade.svg
new file mode 100644
index 00000000..2459ff6e
--- /dev/null
+++ b/public/logos/dexly-trade.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/public/logos/dreamcash.png b/public/logos/dreamcash.png
new file mode 100644
index 00000000..c291da34
Binary files /dev/null and b/public/logos/dreamcash.png differ
diff --git a/public/logos/echosync.png b/public/logos/echosync.png
new file mode 100644
index 00000000..6786ce97
Binary files /dev/null and b/public/logos/echosync.png differ
diff --git a/public/logos/flowbot.jpg b/public/logos/flowbot.jpg
new file mode 100644
index 00000000..e3e7510c
Binary files /dev/null and b/public/logos/flowbot.jpg differ
diff --git a/public/logos/fomo.png b/public/logos/fomo.png
new file mode 100644
index 00000000..75e342f1
Binary files /dev/null and b/public/logos/fomo.png differ
diff --git a/public/logos/gemwallet.svg b/public/logos/gemwallet.svg
new file mode 100644
index 00000000..8f9c1b5b
--- /dev/null
+++ b/public/logos/gemwallet.svg
@@ -0,0 +1,25 @@
+
diff --git a/public/logos/grider.jpg b/public/logos/grider.jpg
new file mode 100644
index 00000000..8c34b28c
Binary files /dev/null and b/public/logos/grider.jpg differ
diff --git a/public/logos/gtr-trade.png b/public/logos/gtr-trade.png
new file mode 100644
index 00000000..25118385
Binary files /dev/null and b/public/logos/gtr-trade.png differ
diff --git a/public/logos/hyperdash.jpg b/public/logos/hyperdash.jpg
new file mode 100644
index 00000000..0a09ee6a
Binary files /dev/null and b/public/logos/hyperdash.jpg differ
diff --git a/public/logos/hyprearn.png b/public/logos/hyprearn.png
new file mode 100644
index 00000000..7a185931
Binary files /dev/null and b/public/logos/hyprearn.png differ
diff --git a/public/logos/infinex.jpg b/public/logos/infinex.jpg
new file mode 100644
index 00000000..0212a691
Binary files /dev/null and b/public/logos/infinex.jpg differ
diff --git a/public/logos/katoshi.svg b/public/logos/katoshi.svg
new file mode 100644
index 00000000..51080e82
--- /dev/null
+++ b/public/logos/katoshi.svg
@@ -0,0 +1,37 @@
+
+
+
diff --git a/public/logos/legend-trade.png b/public/logos/legend-trade.png
new file mode 100644
index 00000000..8aa18106
Binary files /dev/null and b/public/logos/legend-trade.png differ
diff --git a/public/logos/liminal.jpg b/public/logos/liminal.jpg
new file mode 100644
index 00000000..894c7778
Binary files /dev/null and b/public/logos/liminal.jpg differ
diff --git a/public/logos/liquid-perps.jpg b/public/logos/liquid-perps.jpg
new file mode 100644
index 00000000..5ad297bd
Binary files /dev/null and b/public/logos/liquid-perps.jpg differ
diff --git a/public/logos/lit-trade.png b/public/logos/lit-trade.png
new file mode 100644
index 00000000..cf60cc4e
Binary files /dev/null and b/public/logos/lit-trade.png differ
diff --git a/public/logos/lootbase.png b/public/logos/lootbase.png
new file mode 100644
index 00000000..41257e3b
Binary files /dev/null and b/public/logos/lootbase.png differ
diff --git a/public/logos/mass-dot-money.svg b/public/logos/mass-dot-money.svg
new file mode 100644
index 00000000..84f41524
--- /dev/null
+++ b/public/logos/mass-dot-money.svg
@@ -0,0 +1,6 @@
+
diff --git a/public/logos/metascalp.svg b/public/logos/metascalp.svg
new file mode 100644
index 00000000..6f7ad8a1
--- /dev/null
+++ b/public/logos/metascalp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/logos/minaraai.png b/public/logos/minaraai.png
new file mode 100644
index 00000000..5c2d6c53
Binary files /dev/null and b/public/logos/minaraai.png differ
diff --git a/public/logos/moonbot.png b/public/logos/moonbot.png
new file mode 100644
index 00000000..fa1280ab
Binary files /dev/null and b/public/logos/moonbot.png differ
diff --git a/public/logos/moontrader.svg b/public/logos/moontrader.svg
new file mode 100644
index 00000000..9e15fdaa
--- /dev/null
+++ b/public/logos/moontrader.svg
@@ -0,0 +1,22 @@
+
+
\ No newline at end of file
diff --git a/public/logos/nautilus-trader.png b/public/logos/nautilus-trader.png
new file mode 100644
index 00000000..8bf97ab9
Binary files /dev/null and b/public/logos/nautilus-trader.png differ
diff --git a/public/logos/onekey.png b/public/logos/onekey.png
new file mode 100644
index 00000000..4b0e1833
Binary files /dev/null and b/public/logos/onekey.png differ
diff --git a/public/logos/pear.svg b/public/logos/pear.svg
new file mode 100644
index 00000000..8ef27a6d
--- /dev/null
+++ b/public/logos/pear.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/logos/perpmate.png b/public/logos/perpmate.png
new file mode 100644
index 00000000..37e19753
Binary files /dev/null and b/public/logos/perpmate.png differ
diff --git a/public/logos/rabby.png b/public/logos/rabby.png
new file mode 100644
index 00000000..5304e332
Binary files /dev/null and b/public/logos/rabby.png differ
diff --git a/public/logos/rainbow.png b/public/logos/rainbow.png
new file mode 100644
index 00000000..77303683
Binary files /dev/null and b/public/logos/rainbow.png differ
diff --git a/public/logos/ranger-finance.svg b/public/logos/ranger-finance.svg
new file mode 100644
index 00000000..dee508e0
--- /dev/null
+++ b/public/logos/ranger-finance.svg
@@ -0,0 +1,20 @@
+
diff --git a/public/logos/senpi.png b/public/logos/senpi.png
new file mode 100644
index 00000000..73139847
Binary files /dev/null and b/public/logos/senpi.png differ
diff --git a/public/logos/silhouette.jpg b/public/logos/silhouette.jpg
new file mode 100644
index 00000000..2a330726
Binary files /dev/null and b/public/logos/silhouette.jpg differ
diff --git a/public/logos/supercexy.svg b/public/logos/supercexy.svg
new file mode 100644
index 00000000..e233e20b
--- /dev/null
+++ b/public/logos/supercexy.svg
@@ -0,0 +1,12 @@
+
diff --git a/public/logos/superstack.jpg b/public/logos/superstack.jpg
new file mode 100644
index 00000000..6c7a15e2
Binary files /dev/null and b/public/logos/superstack.jpg differ
diff --git a/public/logos/superx.avif b/public/logos/superx.avif
new file mode 100644
index 00000000..13091e19
Binary files /dev/null and b/public/logos/superx.avif differ
diff --git a/public/logos/supurr.svg b/public/logos/supurr.svg
new file mode 100644
index 00000000..6d3be61d
--- /dev/null
+++ b/public/logos/supurr.svg
@@ -0,0 +1,6 @@
+
diff --git a/public/logos/sushi.png b/public/logos/sushi.png
new file mode 100644
index 00000000..8c9f1d93
Binary files /dev/null and b/public/logos/sushi.png differ
diff --git a/public/logos/taco-trade.jpg b/public/logos/taco-trade.jpg
new file mode 100644
index 00000000..273dffe3
Binary files /dev/null and b/public/logos/taco-trade.jpg differ
diff --git a/public/logos/tradoor.svg b/public/logos/tradoor.svg
new file mode 100644
index 00000000..d9dddbf4
--- /dev/null
+++ b/public/logos/tradoor.svg
@@ -0,0 +1,25 @@
+
diff --git a/public/logos/tread-fi.jpg b/public/logos/tread-fi.jpg
new file mode 100644
index 00000000..d1e799ad
Binary files /dev/null and b/public/logos/tread-fi.jpg differ
diff --git a/public/logos/trust-wallet.png b/public/logos/trust-wallet.png
new file mode 100644
index 00000000..2ec45a57
Binary files /dev/null and b/public/logos/trust-wallet.png differ
diff --git a/public/logos/unigox.svg b/public/logos/unigox.svg
new file mode 100644
index 00000000..72cbb67c
--- /dev/null
+++ b/public/logos/unigox.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/public/logos/uxuy.svg b/public/logos/uxuy.svg
new file mode 100644
index 00000000..020ac2b9
--- /dev/null
+++ b/public/logos/uxuy.svg
@@ -0,0 +1,10 @@
+
diff --git a/public/logos/wallet-v.png b/public/logos/wallet-v.png
new file mode 100644
index 00000000..06827306
Binary files /dev/null and b/public/logos/wallet-v.png differ
diff --git a/public/logos/wunder.png b/public/logos/wunder.png
new file mode 100644
index 00000000..478b08fe
Binary files /dev/null and b/public/logos/wunder.png differ
diff --git a/public/logos/xtrade-protocol.jpg b/public/logos/xtrade-protocol.jpg
new file mode 100644
index 00000000..75a5d179
Binary files /dev/null and b/public/logos/xtrade-protocol.jpg differ
diff --git a/src/data/provider-registry.ts b/src/data/provider-registry.ts
index 59ca4b48..fda3c1d5 100644
--- a/src/data/provider-registry.ts
+++ b/src/data/provider-registry.ts
@@ -651,6 +651,314 @@ export const PROVIDER_REGISTRY: Record = {
"Okto is a self-custody multi-chain wallet by Coinswitch with a Hyperliquid perps integration that routes orders through a registered builder code.",
twitter: "@okto_web3",
},
+
+ // ─── Hyperliquid frontends registry expansion 8 → 60 (DefiLlama sync) ───
+ "trust-wallet": {
+ url: "https://trustwallet.com",
+ description:
+ "Trust Wallet is a 220M user self custody mobile wallet that ships a native Hyperliquid perps tab routing orders with a registered builder code from inside the app.",
+ twitter: "@TrustWallet",
+ },
+ sushi: {
+ url: "https://www.sushi.com",
+ description:
+ "Sushi is a multichain DEX whose Sushi Perps v2 frontend routes orders into the Hyperliquid orderbook via a builder code, layering Sushi points incentives on top.",
+ twitter: "@SushiSwap",
+ },
+ dreamcash: {
+ url: "https://dreamcash.xyz",
+ description:
+ "Dreamcash is a mobile trading app for crypto, perps and HIP 3 RWAs that fronts Hyperliquid execution with a registered builder code and points rewards.",
+ twitter: "@Dreamcash",
+ },
+ "based-app": {
+ url: "https://basedapp.io",
+ description:
+ "Based is a Hyperliquid super app combining perps, prediction markets and a Visa card; one of the top builders by perp volume on Hyperliquid, running its own Builder on Builder program.",
+ twitter: "@basedappHQ",
+ },
+ perpmate: {
+ url: "https://perpmate.com",
+ description:
+ "Perpmate is an AI Telegram bot and web dashboard for one tap cross chain Hyperliquid perp trading, parsing natural language orders and executing via a registered builder code.",
+ twitter: "@perpmate",
+ },
+ arena: {
+ url: "https://arena.social",
+ description:
+ "The Arena is an Avalanche based SocialFi app whose Arena perps feature routes orders to Hyperliquid and exposes copy trading of those positions, using a registered builder code.",
+ twitter: "@TheArenaApp",
+ },
+ minaraai: {
+ url: "https://minara.ai",
+ description:
+ "Minara is an AI agent for trading that executes Hyperliquid perps via Copilot signal assisted or Autopilot automated modes, routing orders with a registered builder code.",
+ twitter: "@minara__ai",
+ },
+ apexliquid: {
+ url: "https://apexliquid.io",
+ description:
+ "ApexLiquid is a Telegram bot and smart wallet that auto copies on chain smart money traders on Hyperliquid in roughly one second, routing mirrored fills via a registered builder code.",
+ twitter: "@Apexliquid_bot",
+ },
+ coin98: {
+ url: "https://coin98.com",
+ description:
+ "Coin98 is a multi chain wallet super app whose perpetuals interface aggregates Hyperliquid alongside GMX and other venues, routing Hyperliquid fills via a registered builder code.",
+ twitter: "@coin98_wallet",
+ },
+ coinpilot: {
+ url: "https://www.trycoinpilot.com",
+ description:
+ "Coinpilot is a non custodial mobile copy trading app that mirrors top Hyperliquid traders' perp positions in real time using a registered builder code.",
+ twitter: "@trycoinpilot",
+ },
+ echosync: {
+ url: "https://www.echosync.io",
+ description:
+ "EchoSync is a copy trading platform for Hyperliquid and Aster that replicates top traders' perp positions with configurable ratios, executing via a registered builder code.",
+ twitter: "@echosync",
+ },
+ fomo: {
+ url: "https://fomo.family",
+ description:
+ "FOMO is a social trading app on Telegram, iOS and Android that surfaces signals from consistently profitable Hyperliquid traders and routes perp orders via a registered builder code.",
+ twitter: "@tryfomo",
+ },
+ gemwallet: {
+ url: "https://gemwallet.com",
+ description:
+ "Gem Wallet is a multichain self custody mobile wallet with a built in Trade Perpetuals section that routes orders directly into Hyperliquid via a registered builder code.",
+ twitter: "@GemWalletApp",
+ },
+ "gtr-trade": {
+ url: "https://gtr.trade",
+ description:
+ "GTR.Trade is a self custodial mobile perps trading terminal for crypto, memecoins and RWA perps that routes orders into Hyperliquid using a registered builder code.",
+ twitter: "@GTRTrade",
+ },
+ hyprearn: {
+ url: "https://hyprearn.com",
+ description:
+ "HyprEarn is an AI assistant for Hyperliquid perps that generates one click trade setups across HL pairs and HIP 3 markets, executed via a registered builder code.",
+ twitter: "@HyprEarn",
+ },
+ "legend-trade": {
+ url: "https://www.legend.trade",
+ description:
+ "Legend is a social and gamified perp trading platform that lets users discover and copy top Hyperliquid traders, routing fills via a registered builder code.",
+ twitter: "@legendtrade",
+ },
+ katoshi: {
+ url: "https://katoshi.ai",
+ description:
+ "Trading automation engine for Hyperliquid offering bots, scripting, MCP and API tooling with 19 endpoints for strategy execution.",
+ twitter: "@KatoshiAI",
+ },
+ metascalp: {
+ url: "https://metascalp.io",
+ description:
+ "Free Windows desktop scalping terminal aggregating 14+ exchanges including Hyperliquid with order book, cluster, and tape analysis.",
+ twitter: "@metascalp",
+ },
+ moontrader: {
+ url: "https://www.moontrader.com",
+ description:
+ "Pro crypto trading terminal for HFT, scalping, and algo strategies across Binance, Bybit, OKX, and Hyperliquid.",
+ twitter: "@MoonTrader_io",
+ },
+ onekey: {
+ url: "https://onekey.so",
+ description:
+ "Open source hardware and software wallet with native OneKey Perps integration for trading Hyperliquid perpetuals from any device.",
+ twitter: "@OneKeyHQ",
+ },
+ pear: {
+ url: "https://www.pear.garden",
+ description:
+ "DeFi native pair trading terminal enabling one click long short ratio trades on top of Hyperliquid, GMX, and SYMMIO.",
+ twitter: "@pear_protocol",
+ },
+ rabby: {
+ url: "https://rabby.io",
+ description:
+ "Open source EVM browser wallet with built in Rabby Perps powered by Hyperliquid for in wallet perpetual futures trading.",
+ twitter: "@Rabby_io",
+ },
+ "ranger-finance": {
+ url: "https://ranger.finance",
+ description:
+ "Solana's first perps DEX aggregator with smart order routing across Drift, Jupiter, Flash, and Hyperliquid via cross chain relayers.",
+ twitter: "@ranger_finance",
+ },
+ senpi: {
+ url: "https://www.senpi.ai",
+ description:
+ "Personal AI trading agent platform for Hyperliquid letting users deploy non custodial autonomous bots controlled via Telegram chat.",
+ twitter: "@senpi_ai",
+ },
+ superx: {
+ url: "https://trysuper.co",
+ description:
+ "Hyperliquid trading dashboard and Telegram bot offering discretionary perps trading and copy trading from curated vaults and wallets.",
+ twitter: "@trysuper_",
+ },
+ supurr: {
+ url: "https://supurr.app",
+ description:
+ "Short dated options protocol on Hyperliquid offering Up Down binary contracts with fixed max loss.",
+ twitter: "@supurr_app",
+ },
+ unigox: {
+ url: "https://www.unigox.com",
+ description:
+ "Fiat to crypto P2P onramp covering 40+ local payment rails with a gasless non custodial wallet and Hyperliquid perps integration.",
+ twitter: "@Unigox_global",
+ },
+ uxuy: {
+ url: "https://www.uxuy.com",
+ description:
+ "Multi chain self custody wallet and AI stablecoin trading protocol for gasless cross chain swaps backed by Binance Labs.",
+ twitter: "@uxuycom",
+ },
+ wunder: {
+ url: "https://wundertrading.com",
+ description:
+ "Automated crypto trading platform with grid, DCA, signal, and TradingView bots integrated with Hyperliquid via WalletConnect.",
+ twitter: "@wunder_bit",
+ },
+ grider: {
+ url: "https://app.grider.xyz",
+ description:
+ "Non custodial grid trading tool for Hyperliquid that automates order placement across predefined price ranges with 24/7 execution.",
+ twitter: "@griderxyz",
+ },
+ tradoor: {
+ url: "https://tradoor0.xyz",
+ description:
+ "Automated market making platform for deploying one click delta neutral strategies across Hyperliquid, Extended, and HIP 3 perp DEXes.",
+ twitter: "@tradoor0",
+ },
+ bullpenfi: {
+ url: "https://bullpen.fi",
+ description:
+ "Non custodial multi platform trading terminal unifying Hyperliquid perps, Polymarket prediction markets, and Solana spot in one app.",
+ twitter: "@BullpenFi",
+ },
+ "dexly-trade": {
+ url: "https://dexly.trade",
+ description:
+ "Wallet first non custodial trading interface for Hyperliquid perps with copy trading, vaults, leaderboards, and wallet explorer.",
+ twitter: "@dexlytrade",
+ },
+ hyperdash: {
+ url: "https://hyperdash.com",
+ description:
+ "Advanced trading terminal for Hyperliquid offering real time analytics, portfolio tracking, and copytrading vaults.",
+ twitter: "@hypurrdash",
+ },
+ infinex: {
+ url: "https://infinex.xyz",
+ description:
+ "Passkey secured, non custodial crypto wallet and DeFi superapp with perpetual futures trading powered by Hyperliquid.",
+ twitter: "@infinex",
+ },
+ liminal: {
+ url: "https://liminal.money",
+ description:
+ "Delta neutral yield protocol on Hyperliquid that captures funding rate yield by pairing spot and perp positions on USDC deposits.",
+ twitter: "@liminalmoney",
+ },
+ "liquid-perps": {
+ url: "https://tryliquid.xyz",
+ description:
+ "Non custodial leveraged trading app on Hyperliquid offering perps on BTC, ETH and trending tokens with up to 150x leverage.",
+ twitter: "@liquidtrading",
+ },
+ "lit-trade": {
+ url: "https://lit.trade",
+ description:
+ "No KYC spot and perpetual trading frontend on Hyperliquid with on chart orders, trailing stops, and modular multi chart UI.",
+ twitter: "@lit_trade",
+ },
+ lootbase: {
+ url: "https://lootbase.com",
+ description:
+ "Mobile first Hyperliquid trading app rebranded as Stack offering perps up to 40x leverage with fiat ramps via MoonPay.",
+ twitter: "@LootbaseX",
+ },
+ "mass-dot-money": {
+ url: "https://mass.money",
+ description:
+ "Mobile first DeFi aggregator using account abstraction to unify spot, perps and tokenized stock trading across chains including Hyperliquid.",
+ twitter: "@massdotmoney",
+ },
+ moonbot: {
+ url: "https://moon-bot.com",
+ description:
+ "Advanced manual and automated trading terminal supporting CEXs and Hyperliquid with on chart order placement and strategy automation.",
+ twitter: "@moonboteth",
+ },
+ rainbow: {
+ url: "https://rainbow.me",
+ description:
+ "Self custodial Ethereum wallet whose iOS and Android apps integrate Rainbow Perps powered by Hyperliquid for up to 40x leverage trading.",
+ twitter: "@rainbowdotme",
+ },
+ supercexy: {
+ url: "https://supercexy.com",
+ description:
+ "Gasless mobile first frontend on Hyperliquid offering perpetual and spot trading with up to 50x leverage and a CEX style UX.",
+ twitter: "@try_supercexy",
+ },
+ superstack: {
+ url: "https://superstack.xyz",
+ description:
+ "Custom built trading platform on Hyperliquid bringing institutional grade tools and capital efficiency to retail traders.",
+ twitter: "@superstackxyz",
+ },
+ "wallet-v": {
+ url: "https://walletv.io",
+ description:
+ "Self custodial mobile wallet that connects AI agents to automate trading on Hyperliquid and Aster.",
+ twitter: "@WalletV_io",
+ },
+ "xtrade-protocol": {
+ url: "https://xtrade.gg",
+ description:
+ "All in one DeFi trading terminal supporting Solana spot and Hyperliquid perpetuals with pro grade tooling for retail traders.",
+ twitter: "@xtrade_gg",
+ },
+ "taco-trade": {
+ url: "https://app.taco.trade",
+ description:
+ "Hyperliquid perpetuals trading interface earning builder code revenue on Hyperliquid Perps fills.",
+ twitter: "@TacoTradeX",
+ },
+ silhouette: {
+ url: "https://silhouette.exchange",
+ description:
+ "Privacy enforcement layer on Hyperliquid that shields order details using TEEs and encrypted relays for confidential perp trading.",
+ twitter: "@silhouette_ex",
+ },
+ "tread-fi": {
+ url: "https://tread.fi",
+ description:
+ "Institutional grade algorithmic trading terminal and OEMS for retail and pro traders, integrated with Hyperliquid and major CEXs.",
+ twitter: "@tread_fi",
+ },
+ flowbot: {
+ url: "https://flowbot.pro",
+ description:
+ "Automated volume trading bot built to help traders earn perp DEX points and rewards on Hyperliquid without manual market making.",
+ twitter: "@T0nyCrypt0",
+ },
+ "nautilus-trader": {
+ url: "https://nautilustrader.io",
+ description:
+ "Open source Rust native production grade trading engine with a Hyperliquid integration for live perpetual futures execution.",
+ twitter: "@NautilusTrader",
+ },
};
/**
diff --git a/src/lib/logo-manifest.ts b/src/lib/logo-manifest.ts
index a7bcc1cb..6576a1ac 100644
--- a/src/lib/logo-manifest.ts
+++ b/src/lib/logo-manifest.ts
@@ -141,6 +141,59 @@ const RAW: Record = {
metamask: "/logos/metamask.svg",
dexari: "/logos/dexari.png",
okto: "/logos/okto.png",
+
+ // ─── Hyperliquid frontends registry expansion (8 → 60) ───
+ "trust-wallet": "/logos/trust-wallet.png",
+ sushi: "/logos/sushi.png",
+ dreamcash: "/logos/dreamcash.png",
+ "based-app": "/logos/based-app.png",
+ perpmate: "/logos/perpmate.png",
+ arena: "/logos/arena.png",
+ minaraai: "/logos/minaraai.png",
+ apexliquid: "/logos/apexliquid.png",
+ coin98: "/logos/coin98.png",
+ coinpilot: "/logos/coinpilot.png",
+ echosync: "/logos/echosync.png",
+ fomo: "/logos/fomo.png",
+ gemwallet: "/logos/gemwallet.svg",
+ "gtr-trade": "/logos/gtr-trade.png",
+ hyprearn: "/logos/hyprearn.png",
+ "legend-trade": "/logos/legend-trade.png",
+ katoshi: "/logos/katoshi.svg",
+ metascalp: "/logos/metascalp.svg",
+ moontrader: "/logos/moontrader.svg",
+ onekey: "/logos/onekey.png",
+ pear: "/logos/pear.svg",
+ rabby: "/logos/rabby.png",
+ "ranger-finance": "/logos/ranger-finance.svg",
+ senpi: "/logos/senpi.png",
+ superx: "/logos/superx.avif",
+ supurr: "/logos/supurr.svg",
+ unigox: "/logos/unigox.svg",
+ uxuy: "/logos/uxuy.svg",
+ wunder: "/logos/wunder.png",
+ grider: "/logos/grider.jpg",
+ tradoor: "/logos/tradoor.svg",
+ bullpenfi: "/logos/bullpen.svg",
+ "dexly-trade": "/logos/dexly-trade.svg",
+ hyperdash: "/logos/hyperdash.jpg",
+ infinex: "/logos/infinex.jpg",
+ liminal: "/logos/liminal.jpg",
+ "liquid-perps": "/logos/liquid-perps.jpg",
+ "lit-trade": "/logos/lit-trade.png",
+ lootbase: "/logos/lootbase.png",
+ "mass-dot-money": "/logos/mass-dot-money.svg",
+ moonbot: "/logos/moonbot.png",
+ rainbow: "/logos/rainbow.png",
+ supercexy: "/logos/supercexy.svg",
+ superstack: "/logos/superstack.jpg",
+ "wallet-v": "/logos/wallet-v.png",
+ "xtrade-protocol": "/logos/xtrade-protocol.jpg",
+ "taco-trade": "/logos/taco-trade.jpg",
+ silhouette: "/logos/silhouette.jpg",
+ "tread-fi": "/logos/tread-fi.jpg",
+ flowbot: "/logos/flowbot.jpg",
+ "nautilus-trader": "/logos/nautilus-trader.png",
};
// Asset-symbol aliases used by perp-fees as chain dimension values.
diff --git a/src/lib/spec.ts b/src/lib/spec.ts
index 0a432eb1..33ca2784 100644
--- a/src/lib/spec.ts
+++ b/src/lib/spec.ts
@@ -361,6 +361,35 @@ async function specToBenchmark(
formula: p.formula,
});
}
+
+ // Companion-metric backstop. The augmentation above marks any
+ // provider whose headline `p50` query returned nothing as
+ // "unavailable". On benches like hl-frontends where the headline
+ // metric (effective fee bps) is legitimately empty for a builder
+ // that had no fees in the rolling window but still routed real
+ // volume, the same builder shows up live on the companion
+ // panels (volume, fills/min, last fill age, taker share). Marking
+ // it "unavailable" then is misleading: the reader switches to
+ // the Volume panel, sees the line, then looks at the table and
+ // reads "Currently unavailable" against a row that clearly has
+ // data. Reclassify those to "live" so the row renders as a
+ // first-class entry; the ledger still sorts it last because
+ // ms.p50=0, but it stops claiming the provider is down.
+ if (live.metricPanels && live.metricPanels.length > 0) {
+ for (const r of live.results) {
+ if (r.availability !== "unavailable") continue;
+ const slug = r.slug.toLowerCase();
+ const hasPanelData = live.metricPanels.some((panel) => {
+ const v = panel.values?.[r.slug] ?? panel.values?.[slug];
+ if (v != null && Number.isFinite(v)) return true;
+ const series =
+ panel.seriesByProvider?.[r.slug] ??
+ panel.seriesByProvider?.[slug];
+ return Array.isArray(series) && series.length > 0;
+ });
+ if (hasPanelData) r.availability = "live";
+ }
+ }
}
// Per-chain leaders/trailers: computed only on the unfiltered "All"
// view of benches that declare `dimensions.chain`. Fan out one extra