End-to-end burn proven on mainnet (test wallet): build → sign → broadcast → confirm → receipt → Essence. tx 5ddbmLRz… burned a dust token, closed the account, returned 0.00197 SOL to the user, sent the 5% (103704 lamports) to the treasury, recorded as Essence (Round #1 = 103704). Re-scan confirms the account is gone; treasury credited; DB row written. Discovered + documented: the treasury must be funded to rent-exemption before collecting fees (a fee transfer into a 0-balance account fails "insufficient funds for rent"). Noted in .env.example + design §3.1. Tracker: Phase 3 done. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PYRE Status Dashboard
A static, self-contained dark "ember"-themed page the team uses to track PYRE MVP progress. It is a snapshot, not live telemetry.
Files
status.json— the single source of truth. All content on the page (phases, checklists, infra, dates, links) comes from here.index.html— the prebuilt rendered page. Committed so the page works even before anyone runs the generator. Self-contained: inline CSS, no external requests, no JS.README.md— this file.
Editing & regenerating
-
Edit
status.json— flip an item's"done"totrue, update a phase"state"(todo/in_progress/done), or bump"updated". -
Regenerate the page from the repo root:
node scripts/gen-status.mjsThe generator is dependency-free (plain Node ESM, no npm install). It reads
infra/status/status.jsonand rewritesinfra/status/index.html, recomputing the overall % complete from the item done-counts. It prints the output path when finished. -
Commit the regenerated
index.htmlalongside thestatus.jsonchange so the prebuilt page stays consistent with the data.
Deployment
The provision script deploys infra/status/* to /var/www/feedthepyre/status,
and nginx serves it as the site root (feedthepyre.com) until the real PYRE app
ships. Because index.html is prebuilt and self-contained, deployment is a plain
file copy — no build step or generator run is required on the server.