Interface Overview
mackinac connects to 13 venues simultaneously — CLOB perps, oracle perps, AMMs, and yield markets — and delivers every trade, quote, and funding event through a single WebSocket feed in a normalized format. The widgets are reference implementations of what that feed enables.
Venue Coverage
| Venue | Class | What it trades | Chain |
|---|---|---|---|
hl | CLOB perp | 230+ perps: crypto, FX, equities, commodities | HyperEVM |
dydx | CLOB perp | ~121 crypto perps | dYdX Chain (Cosmos) |
gmx | Oracle perp | ~25 crypto perps | Arbitrum |
ostium | Oracle perp (RWA) | ~70 pairs: FX, equity indices, commodities, crypto | Arbitrum |
vertex | Oracle perp | ~20 crypto perps | Arbitrum |
uni | AMM V3 | ERC-20 token pairs | Arbitrum |
univ4 | AMM V4 | ERC-20 + native ETH pairs | Arbitrum |
univ4chain | AMM V4 | ERC-20 + native ETH pairs | Unichain |
sushi | AMM V3-fork | ERC-20 token pairs | Arbitrum |
pancake | AMM V3-fork | ERC-20 token pairs | Arbitrum |
balancer | Weighted AMM | WETH/USDC weighted pool | Arbitrum |
pendle | Yield-rate | PT/YT markets for liquid staking + RWA yield | Arb, Base, ETH |
spectra | Yield-rate | PT/YT markets for stablecoin + LST yield | Arb, Base, ETH |
Workspace Organization
Everything in the workspace is built around products — a (venue, symbol) pair such as hl:ETH or uni:WETH/USDC. Add products via the sidebar and enable whichever widgets you want for each one. Multiple widgets on the same product share the same live feed; opening more widgets for the same product costs nothing extra.
There are two layers:
- Per-product widgets — attached to a specific (venue, symbol). DOM, T&S, Vitals, Trend, Basis, AMM Widget, and Rate Depth all live here.
- Cross-product panels — opened from the header. Alerts, Correlation, Perp Quote, LP Position Tracker, LP Optimizer, and the Rate Widget scanner work across multiple products simultaneously.
Header Bar
mackinac | [DOM] [T&S] [Vitals] [Corr] [LPO] [Rate] [PQ] | [+] | username ▾ | 🔔 | LIVE| Element | Function |
|---|---|
DOM / T&S / Vitals | Opens that widget for the last-selected product |
Corr | Correlation panel — multi-symbol metric comparison and compound alerts |
LPO | LP Optimizer and LP Position Tracker |
Rate | Rate Widget — Pendle/Spectra market scanner |
PQ | Perp Quote — cross-venue cost of carry calculator |
+ | Add a new product |
username ▾ | Account, Admin (admin only), Logout |
🔔 | Alert Manager; badge shows unread price/basis/correlation alerts |
LIVE | Green = WebSocket feed connected; orange = reconnecting |
Per-Product Sidebar Buttons
Each product row in the sidebar has a row of widget toggles:
| Button | Widget | Available on |
|---|---|---|
D | DOM — Depth of Market | All venues |
T | T&S — Time & Sales | All venues except GMX |
V | Vitals — Microstructure Metrics | HL, dYdX, Ostium, AMM venues, Pendle |
TR | Trend Chart | HL, dYdX, AMM venues |
Bs | Basis | All venues |
LP | AMM Widget (fee tier analysis, TWAP, tick depth) | AMM venues |
RD | Rate Depth | Pendle, Spectra |
CD | Consolidated Depth | AMM venues |
× | Remove product | — |
Per-Product Widgets
| Widget | Description |
|---|---|
| DOM | Live bid/ask ladder. For CLOB perps: actual resting orders. For oracle perps: oracle mid ± venue fee. For AMMs: reconstructed book from pool reserves by fee tier. Gross/Net mode toggle. |
| T&S | Scrolling trade tape with microstructure annotations per print: Hawkes intensity, LOB imbalance, volume imbalance, trade rate. |
| Vitals | Rolling microstructure stats: price velocity, Hawkes λ, arrival ratio, LOB imbalance, volume imbalance, CVD, Kyle’s λ. 8 toggleable charts with configurable lookback and rewind. |
| Trend | Live candlestick chart with linear regression bands, EMA overlays, and saved price levels. |
| Basis | Cross-venue spread in basis points net of round-trip fees. Compare any two products from your workspace. Rolling time-series chart, distribution histogram, and configurable alert. |
| AMM Widget | Three panels: fee tier comparison table, TWAP oracle chart, tick depth histogram. |
| Rate Depth | Per-market yield depth table: buy and sell APY at each size level, spread in bps, time to expiry. |
| Consolidated Depth | Cross-venue best bid/offer across all AMM venues for the same pair. Cross-venue gap detection with configurable alert. |
Cross-Product Panels
| Panel | Description |
|---|---|
| Alerts | Price, basis, and correlation alerts. Browser notification + audible chime. Requires a free account to persist across sessions. |
| Correlation | Rolling metrics from up to 3 symbols on a shared time axis. Compound multi-clause alerts (AND logic across metrics and venues). |
| Perp Quote | Cost of carry calculator across HL, GMX V2, and Vertex simultaneously — open fee + projected funding over your intended hold duration. |
| LP Position Tracker | Reads Uniswap V3-style LP positions from on-chain data by wallet address. Current value, uncollected fees, impermanent loss, APR, in/out-of-range status. |
| LP Optimizer | Pool comparison by fee tier and venue, range optimizer with capital efficiency and fee APR estimates, live mint/burn feed. |
| Rate Widget | Pendle/Spectra market scanner — every active PT market with live implied APY, bid/ask spread, and days to expiry. |
Adding Products
Click + in the header or sidebar to open the product adder. Select the venue and enter the symbol:
| Venue | Symbol format | Examples |
|---|---|---|
| HL | Token ticker | ETH, BTC, kPEPE, xyz:CL |
| dYdX | BASE-USD (or bare ticker, auto-normalized) | ETH-USD, BTC-USD, SOL-USD |
| GMX | Token ticker | ETH, BTC |
| Ostium | TOKEN/USD or token alone | XAU/USD, SPX, EUR/USD |
| Vertex | Token ticker | ETH, BTC |
| Uni V3 / V4, Sushi, Pancake | BASE/QUOTE | WETH/USDC, ARB/USDC |
| Balancer | BASE/QUOTE | WETH/USDC |
| Pendle | PT name or 0x address | PT-weETH-25JUN2026 |
| Spectra | PT address | 0x... |
The free tier enforces a 3-symbol cap per IP. A paid API key raises the cap to 100.
Click × on a product row to remove it. The WebSocket subscription is released immediately.
Data Access
| Free | Paid (API key) | |
|---|---|---|
| Live WebSocket feed | ✓ — 3 concurrent symbols | ✓ — 100 symbols |
| All venues and message types | ✓ | ✓ |
| Historical trade/quote data | 1 day lookback | Full retention |
| API key issuance | — | ✓ (up to 3 keys) |
| Alerts | ✓ with free account | ✓ |
Connection Status
The LIVE badge in the header shows WebSocket feed health. Orange means the feed has disconnected and is reconnecting automatically. On reconnect, the backend replays up to 1,000 recent trade prints per symbol so T&S and Vitals charts populate immediately rather than starting blank.