Fetch failed: {{ lastError }}

Smart Router v{{ status.version }}

{{ fmtUptime(status.uptime_secs) }} {{ qps }} q/s refresh {{ countdown }}s

Pool Caches

Total Pools{{ fmt(status.pools?.total) }}
{{ name }}
{{ fmt(count) }}

Per-Chain Pools

{{ cd.chain }}{{ fmt(cd.pools.total) }}
{{ k }} {{ v }}
No chain data

Graph Routers

{{ g.chain }} {{ fmt(g.tokens) }} tokens · {{ fmt(g.edges) }} edges

Quote Sources

Total Quotes{{ fmt(status.quote_sources?.total) }}
Avg Latency{{ status.quote_sources?.avg_latency_ms?.toFixed(1) || '0' }}ms
{{ name }}
{{ sourcePct(count) }}%

Knowledge Base

Route Hints{{ fmt(status.knowledge?.hints) }}
Dynamic Intermediates{{ fmt(status.knowledge?.dynamic_intermediates) }}
Agg-Only Pairs{{ fmt(status.knowledge?.agg_only_pairs) }}
Hint Hits{{ fmt(status.knowledge?.hint_total_hits) }}
Hint Misses{{ fmt(status.knowledge?.hint_total_misses) }}
Avg Confidence{{ status.knowledge?.hint_avg_confidence?.toFixed(2) || '-' }}
Hit Rate{{ hintHitRate }}%

Token Discovery

Derived Prices{{ fmt(status.token_discovery?.derived_prices) }}
Discovered Known{{ fmt(status.token_discovery?.discovered_known) }}
Taxed Tokens{{ fmt(status.token_discovery?.taxed_tokens) }}
Intermediates{{ fmt(status.token_discovery?.intermediates) }}

Sync Status

{{ cd.chain }}{{ chainName(cd.chain_id) }}
V2 Block{{ fmt(cd.v2_last_block) }} {{ fmtLag(cd.v2_lag_ms) }}
V3 Block{{ fmt(cd.v3_last_block) }} {{ fmtLag(cd.v3_lag_ms) }}
V2 Block{{ fmt(status.sync?.v2_last_block) }}
V3 Block{{ fmt(status.sync?.v3_last_block) }}

Quote Statistics

Tracked Pairs{{ fmt(status.quote_stats?.tracked_pairs) }}
Total Queries{{ fmt(status.quote_stats?.total_queries) }}
Queries / sec{{ qps }}

Pool Grades

{{ g.chain }}{{ fmt(g.active) }} active / {{ fmt(g.total) }} total
{{ gradeLabels[i] }}
{{ fmt(count) }}

Memory

Jemalloc Alloc{{ status.system?.jemalloc_allocated_mb || 0 }} MB
Jemalloc Resident{{ status.system?.jemalloc_resident_mb || 0 }} MB
RSS Anon (heap){{ status.system?.rss_anon_mb || 0 }} MB
RSS File (cache){{ status.system?.rss_file_mb || 0 }} MB
VmRSS (total){{ status.system?.rss_mb || 0 }} MB
Total Tracked{{ status.memory?.total_tracked_mb || 0 }} MB
Untracked Gap{{ (status.system?.jemalloc_allocated_mb || 0) - (status.memory?.total_tracked_mb || 0) }} MB
V3 Cache{{ status.memory?.v3_estimated_mb || 0 }} MB
V4 Cache{{ status.memory?.v4_estimated_mb || 0 }} MB
V2 Cache{{ fmtKb(status.memory?.v2_estimated_kb) }}
Exotic Caches{{ fmtKb(status.memory?.exotic_estimated_kb) }}
Wrapper Cache{{ fmtKb(status.memory?.wrapper_estimated_kb) }}
Tax Cache{{ fmtKb(status.memory?.tax_estimated_kb) }}
Grader{{ fmtKb(status.memory?.grader_estimated_kb) }}
Knowledge Base{{ fmtKb(status.memory?.kb_estimated_kb) }}
Quote Stats{{ fmtKb(status.memory?.stats_estimated_kb) }}
Tax Tokens{{ fmt(status.memory?.tax_tokens) }}
Quote Slots{{ status.system?.semaphore_available || 0 }}/{{ status.system?.semaphore_total || 0 }}

RPC Usage

Total Calls{{ fmt(status.rpc_usage?.total_calls) }}
Sub-calls (multicall items){{ fmt(status.rpc_usage?.total_sub_calls) }}
Errors{{ fmt(status.rpc_usage?.total_errors) }}
Calls/min{{ rpcCallsPerMin }}
By Chain
{{ chainName(c.chain_id) }}
{{ fmt(c.sub_calls) }} ({{ c.errors }}err)
By Module
{{ m.module }}
{{ fmt(m.sub_calls) }} ({{ fmt(m.last_hour_calls) }}/h)

Startup Benchmark {{ fmtTime(status.benchmark.timestamp) }}

Total{{ status.benchmark.summary?.total }}
Wins{{ status.benchmark.summary?.wins }}
Losses{{ status.benchmark.summary?.losses }}
Severe (>5%){{ status.benchmark.summary?.severe }}
Avg vs Best{{ status.benchmark.summary?.avg_vs_best_pct?.toFixed(2) }}%
Accuracy{{ status.benchmark.summary?.accuracy_ok }}/{{ status.benchmark.summary?.accuracy_count }}
Avg Deviation{{ status.benchmark.summary?.avg_accuracy_pct?.toFixed(3) }}%
ChainPairSR OutputSrcBest Aggvs BestOn-chainAccuracyms
{{ r.chain_id === 8453 ? 'Base' : 'Arb' }} {{ r.label }} {{ r.sr_output ? fmtBig(r.sr_output) : '—' }} {{ r.sr_source }} {{ r.best_agg ? fmtBig(r.best_agg) : '—' }} {{ r.vs_best_pct != null ? (r.vs_best_pct >= 0 ? '+' : '') + r.vs_best_pct.toFixed(2) + '%' : '—' }} {{ r.onchain_output ? fmtBig(r.onchain_output) : '—' }} {{ r.vs_onchain_pct != null ? (r.vs_onchain_pct >= 0 ? '+' : '') + r.vs_onchain_pct.toFixed(3) + '%' : '—' }} {{ r.sr_latency_ms }}

Startup Benchmark

Benchmark runs ~90s after startup...

System Metrics

CPU{{ ndFmt('cpu') }}%
RAM Used{{ ndFmt('ram') }} MiB
Load (1m) {{ loadVal(0) }} / {{ status.system?.num_cpus || '-' }} CPU
Network in {{ ndFmt('netIn') }} out {{ ndFmt('netOut') }} kbit/s
SR CPU{{ ndFmt('srCpu') }}%
SR Memory{{ ndFmt('srMem') }} MiB
ChainPair TotalLast Hour LocalHint RPCN/F LatencyHit Rate Last Seen
{{ chainName(p.chain_id) }} {{ tokenLabel(p.token_in) }} {{ tokenLabel(p.token_out) }} {{ fmt(p.total) }} {{ fmt(p.last_hour) }} {{ fmt(p.local) }} {{ fmt(p.path_hint) }} {{ fmt(p.rpc) }} {{ fmt(p.not_found) }} {{ fmtLatency(p.avg_latency_ms) }} {{ hitRate(p) }}% {{ fmtAgo(p.last_seen_ts) }}
No data yet
ChainPair TotalNon-Local Local %Latency
{{ chainName(p.chain_id) }} {{ tokenLabel(p.token_in) }} {{ tokenLabel(p.token_out) }} {{ fmt(p.total) }} {{ fmt(p.rpc + p.path_hint + p.not_found) }} {{ p.total > 0 ? ((p.local/p.total)*100).toFixed(0) : 0 }}% {{ fmtLatency(p.avg_latency_ms) }}
No warming candidates
Load {{ loadVal(0) }} {{ loadVal(1) }} {{ loadVal(2) }} / {{ status.system?.num_cpus || '-' }} CPU
RSS {{ status.system?.rss_mb || 0 }}MB
Alloc {{ status.system?.jemalloc_allocated_mb || 0 }}MB / Res {{ status.system?.jemalloc_resident_mb || 0 }}MB
Slots {{ status.system?.semaphore_available || 0 }}/{{ status.system?.semaphore_total || 0 }}
Pools {{ fmt(status.pools?.total) }}
Hints {{ fmt(status.knowledge?.hints) }}
Local {{ sourcePct(status.quote_sources?.local) }}%
Up {{ fmtUptime(status.uptime_secs) }}