Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cardano SPO Tracker

A blue-and-black static dashboard that tracks:

  • Cardano blockchain epochs — live epoch number, countdown to the next epoch, epoch start/end, slot position and progress bar (computed on-device from mainnet genesis, works fully offline).
  • Cardano staking rewards in ADA — per-epoch ADA (₳) rewards for your stake pool (the main staking reward), with USD estimates from the live ADA price, plus any other assets paid in the same epoch.
  • Staking Rewards & Other Assets cards — an ADA card auto-aggregated from the payout table (cumulative rewards, average per epoch, annualized estimate at 73 epochs/year, sparkline), plus a card for each other asset your pool earns (e.g. RealFi (REALFI)).
  • Network snapshot — best-effort live ADA price (Blockchair, CoinGecko fallback) and block/supply stats (Blockchair). Degrades gracefully to offline mode when APIs are unreachable.
  • Donations — your Cardano wallet address with copy button, QR code, and explorer links.
  • X profile — linked throughout: https://x.com/kshot9000

No build step, no backend — it's one index.html file, which makes it perfect for GitHub Pages.

Quick start (local)

  1. Open index.html in any browser. That's it.
  2. Or serve it: npx serve . (or Python: python -m http.server 8000) and visit http://localhost:8000.

Deploy to GitHub Pages

  1. Create a new GitHub repository (e.g. cardano-spo-tracker).
  2. Push this folder to it:
    cd cardano-spo-tracker
    git init
    git add .
    git commit -m "Cardano SPO Tracker"
    git branch -M main
    git remote add origin https://github.com/<YOUR-USERNAME>/cardano-spo-tracker.git
    git push -u origin main
  3. In the repo, go to Settings → Pages → Build and deployment → Source: Deploy from a branch → Branch: main, folder: / (root) → Save.
  4. After ~1 minute your site is live at:
    • https://<YOUR-USERNAME>.github.io/cardano-spo-tracker/
    • …or https://<YOUR-USERNAME>.github.io/ if you name the repo <YOUR-USERNAME>.github.io.

Tip: because everything is one file, you can also just upload index.html (plus this README) via the GitHub website's upload button.

Editing your data

Open index.html and scroll to the CONFIG block near the bottom (clearly marked ████ CONFIG — EDIT YOUR DATA HERE ████). Everything you care about is there:

What Where
Donation address DONATION_ADDRESS (currently your addr1… address)
X profile X_PROFILE / X_HANDLE
Your stake pools POOLS array — add { name, ticker } entries
Per-epoch ADA staking rewards EPOCH_PAYOUTS array — one object per epoch, newest first (the ADA card aggregates these automatically)
Other assets (RealFi, etc.) ASSET_TRACK array — add { id, name, ticker, color, blurb, usdPrice, payouts: [...] }

Rules of thumb:

  • Add one EPOCH_PAYOUTS row per epoch with the epoch number, settlement date, pool ticker, ADA amount, and any other assets paid that epoch.
  • Set sample: false on each row once the numbers are real (removes the "sample" flag).
  • In ASSET_TRACK, set usdPrice to a number (e.g. 0.05) if you want a USD value on the card — leave null to hide it.
  • Payout lists are sorted newest-first; the sparkline shows the last 8 payouts.

No JS logic needs to change — the page renders whatever is in the config.

Where the live data comes from

Data Source Needs key?
Epoch number, countdown, slots, progress Computed on-device from Cardano mainnet genesis (2017-09-23 21:44:51 UTC, 5-day / 432,000-slot epochs at 1-second slots) No — works offline
API epoch cross-check Blockchair best_block_epoch (some explorers count one epoch ahead — the on-device clock is the primary value) No
ADA price (USD) + 24h change Blockchair market_price_usd, with CoinGecko as fallback No
Total blocks / supply / transactions / best block time Blockchair public API No
Your payouts & asset payouts The CONFIG block in index.html (you edit) No

If the network is unavailable or an API rate-limits you, the site drops to OFFLINE MODE (amber pill): the epoch clock keeps ticking and all your payout data stays visible.

Tests

node --test tests/smoke.test.mjs

The smoke suite extracts the page's epoch engine and checks it against Koios ground truth (epoch 659 start/slot anchors), verifies the donation address is the site owner's checksum-valid bech32 address, and guards the explorer-link and 404/og hygiene.

Notes

  • The QR code loads from the cdnjs qrcodejs CDN; if a visitor is fully offline it falls back to a copy-the-address prompt.
  • This is an independent tracker — not affiliated with the Cardano Foundation or Input Output Global.

About

Tracks Epochs and payouts in ADA and CNTs

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages