GLOWTHERY

GLOWTHERY Protocol Documentation

Permanent supply destruction, on a rhythm.

How money becomes destroyed supply, how to read a vault in the browser, and how to pull it from code. Every burn address exists before its token does, and nothing happens behind a dashboard. This is the full technical reference.

Quickstart API reference Read it as a machine

01 — Overview

Overview

Most supply burns are announcements: a team promises to buy back later, a multisig holds the keys, a forum argues about how much. GLOWTHERY cuts the promise out. Every letscash token gets a burn address, and that address exists before anyone deploys the token.

Point money at that address — yours, your fees, or your community's — and it goes straight to work. Half of your share buys the token at market and burns it, so totalSupply falls permanently. The other half is committed as market-making inventory. Both legs run on a rhythm anyone can watch, on Robinhood Chain (chain 4663).

What makes it different

  • Proof, not promises. Every beat is already on-chain by the time you read about it, and you can check totalSupply() yourself.
  • Rug-proof by construction. A vault has no payout function at all, so no team, treasury or multisig can ever drain it — including us.
  • Everything works immediately. No staking, no claiming, no dashboards: every wei is committed the moment it lands, half to the burn and half to the book.
02 — Quickstart

Quickstart

There are two ways in. If you just want to watch supply leave, everything is on the homepage as a live overlay — no install, no SDK, no wallet. If you want data, the read API is one fetch away.

From the browser

  1. 1 · Open a token

    Paste any letscash token address into the Console. Its vault page shows the state, the fuel left, and how much supply is already gone.

  2. 2 · Fund the vault

    Send ETH to the vault address from any wallet on chain 4663. No connection needed — it works straight from the chain.

  3. 3 · Pick prepaid or perpetual

    Prepaid burns down over the schedule you set. Perpetual points the token's own fee stream in, so the vault refills itself.

  4. 4 · Watch the beat

    Open Explorer, pick a recent beat, and run Explain last burn to have the engine narrate what it bought and burned, in plain English.

From code

Read the latest beat over the public REST API. No auth for read endpoints.

curl https://glowthery.xyz/v1/beat/latest
const res = await fetch("https://glowthery.xyz/v1/beat/latest");
const beat = await res.json();
console.log(beat.number, beat.receipt.summary);
import requests
beat = requests.get("https://glowthery.xyz/v1/beat/latest").json()
print(beat["beat"], beat["receipt"]["summary"])

That's the live read API. The full endpoint list is in API Reference.

03 — Mechanics

How it works

The engine runs a single repeating beat. Each pass buys once and burns once. There is no discretion between steps, nobody deciding whether this is a good moment, and no way to skim the middle. The bytecode owns the whole cycle.

  1. 1 · Derive

    Every letscash token has one burn address, derived before the token is deployed. Nobody assigns it and nobody can move it.

  2. 2 · Fund

    ETH arrives, prepaid or perpetual. From here it is fuel, committed to the schedule and spent beat by beat.

  3. 3 · Arm

    A fresh vault reads enough price history before it trades, so the first buy lands at a fair price instead of blind.

  4. 4 · Buy

    On the beat, half of your share buys the token at market. The size comes from the pace and the fuel left, not from anyone's opinion about price.

  5. 5 · Burn

    Everything bought goes to the burn address. Supply is destroyed: totalSupply falls and never recovers.

  6. 6 · Commit

    The other half stays as market-making inventory and works the book from the very first beat, tightening the spread around the token.

Anatomy of a beat

A trimmed trace of one beat, as the Console shows it:

$ ~/glowthery — beat #2,834 · vault 0x0000…0000 state charging · fuel 0.001564 ETH · pace 12/hr split 0.000130 ETH → burn leg · 0.000130 ETH → market-making buy filled at market ...................... OK (0 reverts) burn 41,203 tokens → 0x…dead supply totalSupply −41,203 · 11.1274% destroyed commit inventory committed, not withdrawn receipt "Bought and burned 41,203 tokens. Supply is down permanently; the other half works the book." ✓ on-chain

The same stream is visible live on the homepage Console — this is not a render of stored logs, it is the engine working.

04 — Architecture

The Split

GLOWTHERY is five cooperating layers. The vault holds the money that can't leave; everything below it exists to spend it on the beat, record what left supply, and show it to anyone.

L5 Vault The burn address, derived before the token exists. Money goes in and is committed on arrival.
L4 Rhythm The beat: every 1 min, 5 min, 15 min, hour or 6 hours, sized against the fuel that is left.
L3 Split Half burned, half market-making. Fixed in bytecode, so it is not a policy anyone can change later.
L2 Explorer / API Read surface over the vaults — inspect beats, trace destroyed supply, and serve it as structured JSON.
L1 Console The live window into the engine — the burn feed, streaming as supply leaves.

The Console and Explorer ship on the homepage as live overlays. The same data that powers the Explorer is exposed over REST — see API Reference.

05 — Economy

The Economy

Every path through the engine takes a house cut: 10% on tokens with a 1% tax, 33% above that. Of what the house takes, 5% buys this project's token and burns it. The rest of your share is yours: half burned, half market-making inventory. The cut is capped in bytecode and lowerable only — check it yourself.

Where it goes

Half burned, half book

Half of your share buys the token and destroys it. Half is committed as market-making inventory. The two numbers are shown apart and are never added together.

Chain

4663 · Robinhood Chain

Every wei is committed to the burn and the book from the first beat. What the cap can do is tracked in Governance.

Contract address

SOON

Verify on-chain ↗

The contract address goes here at launch. Always confirm the CA matches before you interact — ignore any other address claiming to be GLOWTHERY.

The split and the cap live in the bytecode, not in a policy doc. The cut can be lowered and never raised, and you can read the limit on-chain instead of trusting this page.

06 — Ledger

Receipts & proof

Every beat leaves a receipt: what was bought, what was burned, and what stayed as inventory. The interesting part is that you do not have to believe it. Supply destroyed is visible in totalSupply(), which only ever goes down.

Burned supply and market-making inventory are two different things, so they are reported separately. Each number stands on its own, exactly as the chain recorded it.

Anatomy of a receipt

tx
Transaction hash of the beat the receipt describes.
beat
Beat number — receipts share the vault's monotonic index.
summary
One-line plain-English statement of what left supply.
burned
Tokens bought and sent to the burn address on this beat.
mm_volume
ETH committed as market-making inventory. Never added to burned.
total_supply
Supply after the beat — the number you can verify yourself.

Pull recent receipts from GET /v1/receipts — see API Reference. The destruction is permanent. It can't drift from the numbers, because the chain holds both.

07 — API

API Reference

GLOWTHERY exposes a small REST surface over the vaults. Read endpoints need no auth. All responses are JSON; addresses are hex; beats are integers. The base URL is https://glowthery.xyz.

Method Path Description
GET /v1/stats Headline metrics: burns, tokens burned, MM volume, chain.
GET /v1/beat/latest The most recent closed beat, with its receipt inline.
GET /v1/beats Recent closed beats, newest first.
GET /v1/engine Live vault state: ARMING / CHARGING / BURNING / STALLED / SPENT.
GET /v1/receipts Recent burn receipts, in plain English.
GET /v1/updates Changes to the engine, and when they shipped.
GET /v1/logs The raw beat stream the Console renders.
POST /v1/explain Ask the engine to narrate a beat in plain English.

GET /v1/beat/latest

Returns the newest closed beat. The receipt is embedded so a single round-trip gives you both the numbers and the wording.

curl -s https://glowthery.xyz/v1/beat/latest | jq .
const r = await fetch("https://glowthery.xyz/v1/beat/latest");
if (!r.ok) throw new Error(`glowthery ${r.status}`);
const beat = await r.json();
import requests
r = requests.get("https://glowthery.xyz/v1/beat/latest", timeout=10)
r.raise_for_status()
beat = r.json()
200 · application/json
{
  "beat": 2834,
  "vault": "0x0000000000000000000000000000000000000000",
  "tx": "0x9eK2bB4cT7vQ1mNqR8sWfYxZ3dGhJ5pLnV6uA2cE9rD",
  "burned": 41203,
  "mm_volume": 0.000130,
  "state": "charging",
  "receipt": {
    "summary": "Bought and burned 41,203 tokens. Supply is down permanently.",
    "total_supply": 888726000,
    "supply_destroyed": "11.1274%"
  }
}

POST /v1/explain

Hand the engine a beat reference and get back a narration — the same thing the Explorer's Explain last burn runs.

curl -X POST https://glowthery.xyz/v1/explain \
  -H "content-type: application/json" \
  -d '{"beat":"latest"}'
const r = await fetch("https://glowthery.xyz/v1/explain", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({ beat: "latest" }),
});
const { narration } = await r.json();
import requests
r = requests.post(
    "https://glowthery.xyz/v1/explain",
    json={"beat": "latest"},
)
print(r.json()["narration"])
200 · application/json
{
  "beat": 2834,
  "narration": "The engine bought 41,203 tokens at market and sent them"
              "to the burn address. Supply is down 11.1274% and does not"
              "recover. The other half was committed as inventory.",
  "total_supply": 888726000
}

These endpoints are live and open, no auth for reads. The burn address never changes either — it is derived, not assigned.

08 — Machines

Machines

GLOWTHERY is meant to be read by machines first. Anything a human sees on screen has a JSON twin a bot can parse. You check destroyed supply as data, never as a screenshot.

Machine-native by design

  • JSON, not pixels. Beats, receipts, and vault state come back as typed JSON over the REST API.
  • Receipts are machine-readable. A bot can parse burned, mm_volume, and total_supply directly — no scraping.
  • /llms.txt. A markdown brief at the site root tells any LLM what GLOWTHERY is and how to read it.
  • Descriptor file. /.well-known/glowthery.json is a machine-readable manifest of endpoints and capabilities.

So a bot can…

  • Poll /v1/engine to know whether a vault is BURNING or STALLED before acting.
  • Pull /v1/beat/latest on an interval and react to each burn deterministically.
  • Call /v1/explain to fold the engine's own wording into its context window.
  • Discover the whole surface from /.well-known/glowthery.json with zero prior knowledge.

Discover the engine from one file

A bot bootstraps by reading the descriptor, then follows the endpoints it advertises:

# 1. read the machine-readable descriptor
curl -s https://glowthery.xyz/.well-known/glowthery.json
# 2. read the LLM brief
curl -s https://glowthery.xyz/llms.txt
// bootstrap: descriptor → endpoints → latest state
const desc = await (
  await fetch("https://glowthery.xyz/.well-known/glowthery.json")
).json();
const latest = await (await fetch(desc.endpoints.latestBeat)).json();
console.log(latest.receipt.summary);
import requests
desc = requests.get(
    "https://glowthery.xyz/.well-known/glowthery.json"
).json()
latest = requests.get(desc["endpoints"]["latestBeat"]).json()
print(latest["receipt"]["summary"])

The machine-native files (/llms.txt, /.well-known/glowthery.json) ship alongside the site so any model can find its way around the engine on its own.

09 — Examples

Examples

Copy-paste recipes for the three things people do most: read the latest beat, ask the engine to explain a burn, and check what a vault is doing right now.

Fetch the latest beat

async function tip() {
  const r = await fetch("https://glowthery.xyz/v1/beat/latest");
  const b = await r.json();
  return `#${b.beat} — ${b.receipt.summary}`;
}
tip().then(console.log);
import requests
b = requests.get("https://glowthery.xyz/v1/beat/latest").json()
print(f"#{b['slot']} — {b['receipt']['summary']}")
curl -s https://glowthery.xyz/v1/beat/latest \
  | jq -r '"#\(.slot) — \(.receipt.summary)"'

Explain a burn

const r = await fetch("https://glowthery.xyz/v1/explain", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({ beat: 2834 }),
});
console.log((await r.json()).narration);
import requests
r = requests.post(
    "https://glowthery.xyz/v1/explain",
    json={"beat": 2834},
)
print(r.json()["narration"])
curl -s -X POST https://glowthery.xyz/v1/explain \
  -H "content-type: application/json" \
  -d '{"beat":2834}' | jq -r .narration

Check a vault

// is this vault BURNING or STALLED right now?
const r = await fetch("https://glowthery.xyz/v1/engine");
const { state, task } = await r.json();
console.log(state, task);
import requests
a = requests.get("https://glowthery.xyz/v1/engine").json()
print(a["state"], a["task"])
curl -s https://glowthery.xyz/v1/engine \
  | jq -r '"\(.state) — \(.task)"'

The Console, Explorer, and funding panel also open as overlays on the homepage — bookmark it and you have the whole engine in one tab.

10 — Security

Security

The security model is the design: every guarantee lives in the bytecode, where it holds on its own instead of resting on anyone's word.

  • Rug-proof by construction. A vault has no payout function, so there is no path for anyone — team, treasury or us — to drain it. That is not a policy, it is the shape of the code.
  • Fixed split. Half burned, half market-making is set in bytecode. Nobody can retune it mid-flight to send more of your money somewhere else.
  • Cap lowerable only. The house cut can be reduced and never raised. The ceiling is in the contract, so you do not have to trust this page for it.
  • Supply is checkable. Destroyed supply shows up in totalSupply(), which only moves down. You can verify every claim on this site against the token itself.
  • Runs on the chain itself. The vault address takes ETH from any wallet on chain 4663 and keeps burning on schedule, entirely on-chain.
Committed on arrival. Everything sent to a vault goes to work the moment it lands — burned outright or committed as inventory — and follows the schedule the launcher set.
11 — Governance

Governance

Almost everything a governance page usually argues about is already settled in bytecode: the split, the burn address and the cap ceiling. What is left is small, and it is stated plainly.

  • The pace is yours. Whoever launched the token sets how often it burns and for how long, right from the vault page.
  • The cut can only fall. 10% on 1%-tax tokens, 33% above. It is capped in bytecode and lowerable only.
  • Every beat leaves a receipt. What was bought, what was burned and what stayed as inventory — each reported on its own, straight from the chain.
  • Audit it against the token. Anyone can compare the numbers here to totalSupply() and see them line up, beat for beat.

As more vaults come online the surface grows — and the rule stays the same: every wei moves through the burn or the book.

12 — FAQ

FAQ & disclaimer

Where does my ETH go?
Straight to work, on the next beat. Half buys the token at market and sends it to the burn address, half is committed as market-making inventory that tightens the spread.
What does "permanent supply destruction, on a rhythm" actually mean?
Tokens are bought at market and sent to a burn address, so totalSupply falls and never recovers. "On a rhythm" means it happens on a fixed beat — every minute, every hour, or whatever pace the launcher set — not in one announcement.
What is the market-making half for?
It works the book as inventory, tightening the spread around the token. Inventory and burned supply are different things, so both numbers are shown on their own. More on the cut in Governance.
Is the Console real or a replay?
Real. The fund → arm → buy → burn → commit beat you see is the engine running as you watch, not a recording.
Is there an API I can build on?
Yes, a small REST surface over the vaults. See API Reference for endpoints and Machines for the machine-readable descriptor and /llms.txt. Everything a human sees on screen has a JSON twin.
Where is the token contract?
It appears in The Economy and in the top bar across the site the moment it goes live — that is the one to trust.
Note. Nothing on this page is financial, investment, legal or tax advice. Always confirm the contract address from the official channels above before you interact.