From 28064c513166018143de575a532d6fdc1451dd01 Mon Sep 17 00:00:00 2001 From: RogueWave Date: Sun, 31 May 2026 06:48:11 +0000 Subject: [PATCH] test+docs: live mainnet burn e2e verified; treasury rent-exempt requirement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- .env.example | 3 +++ docs/PYRE_MVP_DESIGN.md | 4 ++++ infra/status/index.html | 14 +++++++------- infra/status/status.json | 4 ++-- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/.env.example b/.env.example index 89b6642..e41f39d 100644 --- a/.env.example +++ b/.env.example @@ -45,6 +45,9 @@ QUOTE_MAX_AGE_MS=15000 # skip stale quotes older than this # ---- Protocol fee (§3.1) — transparent, in-tx, non-custodial --------------- # The treasury receives ONLY the fee SOL (never user funds). Swap it for a # multisig before real volume. The fee is shown in the preview before signing. +# IMPORTANT: fund the treasury once to rent-exemption (>= ~0.0009 SOL) BEFORE it +# collects fees — a fee transfer that would leave a 0-balance account below the +# rent-exempt minimum fails the whole tx ("insufficient funds for rent"). PYRE_TREASURY_WALLET=122CNV5ZLu6fqZFpEMUdUSQwDv2zs23pkYQhkNtSQk5k PYRE_FEE_BPS=500 # 5% of reclaimed rent PYRE_SWAP_FEE_BPS=100 # 1% on swaps (proceeds still go to user) diff --git a/docs/PYRE_MVP_DESIGN.md b/docs/PYRE_MVP_DESIGN.md index c2fa310..73d7241 100644 --- a/docs/PYRE_MVP_DESIGN.md +++ b/docs/PYRE_MVP_DESIGN.md @@ -120,6 +120,10 @@ fee is deliberately in the fair band: Spawn+claim+rounds = the differentiation. - Trust is the moat: always display net SOL + the exact fee before signing; never inject undisclosed instructions; never keep swap proceeds. +- **Ops:** the treasury must be funded to rent-exemption (~0.0009 SOL) before it + collects fees, or the first fee transfer into a 0-balance account fails the tx + ("insufficient funds for rent"). Verified end-to-end on mainnet 2026-05-31 + (burn→close→5% fee→Essence; tx 5ddbmLRz…). --- diff --git a/infra/status/index.html b/infra/status/index.html index f2ac45c..d940a24 100644 --- a/infra/status/index.html +++ b/infra/status/index.html @@ -147,10 +147,10 @@

Overall MVP Progress

- 58% + 60%
-
-

31 of 53 phase deliverables complete

+
+

32 of 53 phase deliverables complete

Development Phases

@@ -204,19 +204,19 @@
  • Live signed close verified e2e (needs an empty ATA)
  • -
    +

    Phase 3 Burn Junk

    - IN PROGRESS + DONE
    -

    5 / 6 complete

    +

    6 / 6 complete

    • Incinerate-only classification
    • Burn transaction builder (server re-validated, value-gated)
    • Burn-then-close flow (+ transparent 5% fee)
    • Stronger confirmations (destructive confirm + decode-match)
    • Receipt update (on-chain verified)
    • -
    • Live signed burn verified e2e
    • +
    • Live signed burn verified e2e (mainnet)
    diff --git a/infra/status/status.json b/infra/status/status.json index 76c4ad1..38a9feb 100644 --- a/infra/status/status.json +++ b/infra/status/status.json @@ -51,14 +51,14 @@ { "id": 3, "name": "Burn Junk", - "state": "in_progress", + "state": "done", "items": [ { "label": "Incinerate-only classification", "done": true }, { "label": "Burn transaction builder (server re-validated, value-gated)", "done": true }, { "label": "Burn-then-close flow (+ transparent 5% fee)", "done": true }, { "label": "Stronger confirmations (destructive confirm + decode-match)", "done": true }, { "label": "Receipt update (on-chain verified)", "done": true }, - { "label": "Live signed burn verified e2e", "done": false } + { "label": "Live signed burn verified e2e (mainnet)", "done": true } ] }, {