{% extends "base_miner.html" %}
{% block title %}Dashboard — {{ coin.display_name }} Pool{% endblock %}
{% set page = 'dashboard' %}
{# Auto-refresh ~20s — a plain polled meta refresh, no SPA #}
{% block head_extra %}{% endblock %}
{% block content %}
Your mining
{{ current_user.mining_name }}{% if current_user.payout_address %} · {{ current_user.payout_address | truncate_mid }}{% else %} · no payout address set{% endif %}
Live · refreshes 20s
{# ── Empty: no payout address ── #}
{% if not current_user.payout_address %}
Set a payout address to receive {% if POOL_MODE == 'demo' %}test {% endif %}rewards
We're recording your shares already — but we can't send {% if POOL_MODE == 'demo' %}test {% endif %}rewards until you add a wallet address.
Add address →
{% endif %}
{# ── Balance trio ── #}
{% if POOL_MODE == 'demo' %}Confirmed · payable{% else %}Available{% endif %}
{{ balance.confirmed | coin_amount }} {{ coin.ticker }}
Next payout when ≥ {{ current_user.payout_threshold | coin_amount }} {{ coin.ticker }} threshold
Maturing
{{ balance.pending | coin_amount }} {{ coin.ticker }}
From immature blocks · maturing
Paid · lifetime
{{ balance.paid | coin_amount }} {{ coin.ticker }}
across {{ payment_count }} payouts
{# ── Live mining strip ── #}
Your hashrate
{{ stats.hashrate | hashrate }}
estimated · 10-min share weight
Active workers
{{ stats.active_workers }}
of {{ stats.total_workers }} configured
Valid shares · 1h
{{ stats.shares_1h }}
{{ stats.rejected_1h }} rejected
Last share
{% if stats.last_share %}{{ stats.last_share | ago }}{% else %}—{% endif %}
{{ stats.last_worker | default('—') }}
{# ── No shares yet ── #}
{% if stats.shares_1h == 0 and stats.last_share is none %}
Waiting for your first share…
Your account is ready. Point a miner at the pool and shares will appear here within a few seconds.
minerd -o {{ coin.stratum_url }}:{{ coin.stratum_port }} -u {{ current_user.mining_name }}.rig-01 -p x
Copy
{% else %}
{# ── Workers + payments ── #}
| Worker | Hashrate | Last share | Status |
{% for w in workers[:4] %}
| {{ w.worker_name }} |
{{ w.hashrate | hashrate }} |
{{ w.last_share | ago }} |
{% if w.is_active %}active{% else %}stale{% endif %} |
{% endfor %}
| Date | Amount | Txid | Status |
{% for p in payments[:3] %}
| {{ p.time | date_short }} |
{{ p.amount | coin_amount }} {{ coin.ticker }} |
{{ p.txid | truncate_mid }} ↗ |
{% if p.status == 'confirmed' %}confirmed{% elif p.status == 'sent' %}sent{% else %}failed{% endif %} |
{% else %}
| No payments yet |
{% endfor %}
{% endif %}
{% endblock %}
{% block scripts %}
{% endblock %}