
It's been a while since the last update — the platform crossed its first quarter in production, so this one leads with the numbers. The dev theme of the cycle was correctness: making the charts, prices, and points you see on screen match what's actually happening on chain.
Hive-Swap launched in beta on May 11. Here's the full lifetime picture from the stats page, all derived on-chain from hive-swap-fees fee events:

| Volume | Actions | Swaps | Bridges | Unique accounts | |
|---|---|---|---|---|---|
| All time | $5.84K | 6,600 | 5,540 | 1,060 | 78 |
| Last 30 days | $1.17K | 1,510 | 1,270 | 239 | 31 |
| Last 7 days | $136.98 | 274 | 222 | 52 | 16 |
A few things worth pulling out of the charts:


USD volume is estimated from observed fee events at 0.25%; LP add/remove activity isn't included, so real money flow through the platform is higher than the headline number.
Two fixes this cycle were about the same root problem: what the UI showed didn't match what a swap would actually execute at.
The big swap chart clamped every candle to an IQR band computed over the full 365-day window. For a token that genuinely trended ~10x (FLUX went ~1 → ~9 HIVE), the clamp crushed the real run-up — the chart's last price read 4.65 while the pool traded at ~9. The outlier filter now works in log space, so a legitimate multi-x trend is no longer treated as an outlier, and absurd isolated prints are dropped instead of clamped. The chart header also now shows a live AMM pool spot price pulled from the deepest SWAP.HIVE pool — the number you see is the number a swap executes against.
Separately, the HIVE/USD price on the swap page was being derived by inverting the last SWAP.USDT order-book trade. That market is nearly dead — sparse stale fills produced prices like $0.38 (+365%) against a real ~$0.05. HIVE/USD now comes from CoinGecko's market chart, bucketed into daily OHLC, with a 10-minute cache. Display-only change: quotes, slippage, and the public API were never affected.
The Node Status widget used to be read-only — nodes were auto-selected by fastest ping. It's now a per-row picker (Hive L1, HE RPC, HE History) that lets you pin a specific node. Pins are soft: a pinned node is preferred while healthy, but if it goes down the app fails over to the fastest working node and retries your pin on the next 30-minute refresh. Pins persist in localStorage and apply before the first request.
While building it we found the HE account-history fallback was silently dead — he.dtools.dev returns an HTML landing page at /accountHistory, so it failed every JSON health check. Replaced with the verified history.hive-engine.com, plus atexoras.com:8443 added as a third failover (its history service runs on a separate port the PeakD beacon never scores, so it had to be added manually).
Two fixes for the wallet layer:
isKeychainInstalled() only resolves when Keychain's handshake callback fires — no timeout. A conflicting wallet extension that throws during page injection breaks that callback, so connect() never opened the modal and the button did nothing. Detection is now raced against a 1.5s timeout with a synchronous presence-check fallback, and the modal opens before detection runs, so a flaky extension can never no-op the button again.Verification failed: [object Object]. Every Keychain throw site now unwraps the human-readable message first.If you watched the points leaderboard in June: points silently stopped being awarded on June 8. The award loop takes the oldest 25 unawarded fee events and defers any it can't resolve — and two classes of rows deferred forever, clogging the head of the queue: pre-fix rows whose tx id kept a -0 op-index suffix (Hive Engine's getTransactionInfo returns a different shape for suffixed ids, so route resolution always failed), and rows with no USD price that were skipped in JS but still consumed the batch limit. Both are fixed and the backlog has been processed — points and the leaderboard are current again.
Some of you saw MetaMask/Brave flag hive-swap.com in July, and a few ISPs blocked it outright. The domain was added to an automated crypto-phishing blocklist on July 6 — a false positive, almost certainly triggered by "new domain containing the word swap." Nothing on the site asks for a seed phrase or private key; signing happens exclusively through Hive Keychain. A formal removal request is filed with MetaMask and downstream warnings (Brave, ISP filters) will clear as their feeds refresh after delisting. The "invalid certificate" some users saw was their ISP's block page, not our cert — the site's TLS certificate is valid.
getQuoteFresh() added to the SDK — bypasses the pool cache when you need a quote against real-time reservesTry it: hive-swap.com
Public API docs: hive-swap.com/docs/api
Follow: @hive-swap.com