docs(guides): token and treasury mechanics FAQ #13
Labels
No labels
agent:implement
agent:research
docs
feature
ready
research
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-docs#13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
https://docs.cl8y.comhas no crawlable first-party FAQ that explains token and treasury mechanics in plain English. Start Here (code/cl8y-docs#9) is allowed purpose lines only and explicitly forbids collateral ratios, circulating supply, and APY. Users and marketers still confuse USTC vs USTR vs UST1, conversion windows, what backs each asset, what burning cLUNC actually does on-chain, and how treasury ratio accounting avoids wrap double counting.Ship one prerendered Token and treasury FAQ on the architecture-reserved UST1 path so support can paste a stable URL instead of rewriting the same answers in chat.
Bundle (do not split into ticker / window / wrap / CR tickets):
uluna, cLUNC, cUSTC). Native USTC (uusd) is Terra Classic, not a CMM-issued CW20.Keep
/as Start Here (code/cl8y-docs#9). Do not put this manuscript on/guides/first-use(#10),/guides/bridge(#11), or/guides/dex(#12). DEX/wrapremains #12.v0 platform work (#3) already shipped crawl files, unique titles, and stub routes. Full manuscripts were out of scope there. Architecture §4 already names a future UST1 page as a separate approved issue — this is that issue, written as a FAQ rather than a ticker landing page.
Parent / siblings (do not re-implement):
code/cl8y-docs#3 — v0 host + stubs; out of scope: “Full methodology/guide manuscripts (stubs only).”code/cl8y-docs#9 — Start Here on/. Purpose lines only; no CR/supply/APY; forbids adding/ust1in that PR. Cite and link; do not expand that ticket.code/cl8y-docs#10 / #11 / #12 — how-to manuscripts. Different reader jobs. Those PRs must not register/ust1.docs/ARCHITECTURE.md§4 / §12 — closed route allowlist; “A future UST1 page is a separate approved issue”;BANNED_CURRENT_COPYincludesUST1/USTR; no unverified stats; no unpublished marketingcontent/guides/.code/ustr-cmm— CMM product tree (README,docs/ARCHITECTURE.md,docs/ECONOMICS.md,docs/CONTRACTS.md,frontend/src/utils/treasuryRatios.ts,skills/frontend-ust1-ratios). Source of names and CR accounting pins. Read; do not vendor the economics whitepaper or operator runbooks onto this host.code/ust1-window— UST1 window + oracle/wrap packages. Source of mint/redeem window mechanics. Read; do not copy oracle-service ops, Coolify, or unpublished internals.code/CL8Y-web#1 — CL8Y utility-token wording. Different deployable.Current codebase
No FAQ route; CMM tickers are banned on current-product copy so v0 stubs cannot revive old marketing:
src/pages/GuidesPage.tsx— lists only/guides/open-the-dex. Copy forbids dumping unpublished marketing manuscripts.src/pages/HomePage.tsx— host chrome today; #9 will become Start Here with purpose lines only (no CR).src/pages/MethodologyPage.tsx— how numbers on this host are sourced; not a token glossary.src/pages/ContractsPage.tsx+src/data/contracts.ts— Terra Classic CL8Y CW20, CL8Y/cLUNC pair, BSC CL8Y, MegaETH CL8Y, nativeuluna. No USTR / UST1 / wrap-mapper / treasury addresses.src/seo.ts— closedDocsPathunion of seven v0 paths. No/ust1.src/lib/dexHref.ts—CAMPAIGNSclosed vocabulary; noust1/guides-token-treasury.src/App.tsx— sevenRouteentries; unknown paths 404 via nginxtry_files … =404.src/content/invariants.ts—BANNED_CURRENT_COPYincludesUST1,USTR;FORBIDDEN_CLAIM_PATTERNSbans TVL / “best DEX” / CoinGecko / CMC / DeFiLlama.e2e/crawl.spec.ts— currently hardcodes the seven v0 paths (must followROUTESafter this path is added; do not assume loc count 7/8/9 if #9–#12 land first).src/verify-dist.test.ts— followsROUTES; sitemap loc count follows that module.A complete FAQ therefore must add one allowlisted path in the same PR (seo union, campaign id, App route, prerender, sitemap, crawl tests, ARCHITECTURE §4, bounded
BANNED_CURRENT_COPYexception). Do not add/ustr,/ustc,/guides/ust1,/guides/ustr, or/guides/faqas extra routes — support deep-links are in-page fragment ids on the one manuscript.Duplicates / already implemented
//ust1.content/guides/code/ustr-cmmTreasury SPAcode/ustr-cmmdocs/ECONOMICS.mdcode/ust1-windowoperator / oracle ticketsIf
/ust1already exists as a complete prerendered FAQ (glossary, windows, backing, cLUNC unwrap/burn, CR no-double-count, sourced addresses only, unique title/canonical) and AC1–AC12 pass, close as implemented — do not duplicate.Why the new implementation is needed
The public docs origin is the URL operators hand people who mix up USTC, USTR, and UST1. Today:
/will map products (#9) without explaining conversion windows, backing, unwrap, or CR accounting./methodologyonly says figures must be first-party; it does not define the assets./contractslists CL8Y addresses, not CMM treasury/window/wrap.This is documentation copy + one new prerendered route + copy-safety tests. No wallet UI, no treasury dashboard, no Coolify SKU pick.
Constraints / guardrails
Route. Add exactly one path:
/ust1(architecture-reserved). Title seedToken and treasury FAQ · CL8Y docs(wordsmith OK; must stay unique vs/after #9 and vs #10–#12). Canonicalhttps://docs.cl8y.com/ust1(no trailing slash). Amend ARCHITECTURE §4 in the same PR. Do not add/ustr,/ustc, or extra children. In-page fragments for support paste:#ustc-vs-ustr-vs-ust1,#conversion-windows,#backing,#clunc-burn,#treasury-ratios.Reader. Users and marketers. Short sentences. FAQ headings as questions. Not a whitepaper. Not a Start Here product map (#9). Not a trading tutorial (#10/#12).
This host stays static. INVARIANTS 19: no wagmi, WalletConnect, LCD keys, or CMM/DEX screens running here. Do not embed live CR. Point at the first-party CMM Treasury UI for live ratios and at
/methodologyfor “this host does not freeze protocol statistics.”Banned-copy exception (bounded). Allow
UST1,USTR, andUSTCas factual names on/ust1(and tests for that page / copy module). Keep the ban on GameFi lore, “Buy CL8Y” as a CTA, “the future of DeFi”, TVL, “best DEX”, CoinGecko/CMC/DeFiLlama. Do not leak those tickers onto/methodologystubs via shared layout. Do not add/ustras a route just because the FAQ names USTR.Glossary (required distinctions). Wordsmith OK; do not collapse these into one “UST” story:
uusd). Legacy network asset. Not UST1. Not USTR.code/ustr-cmmREADME;skills/frontend-ust1-ratiospin 1ustr-cmmREADME;code/ust1-windowREADMEulunaustr-cmmREADME wrap-mapper / cLUNC rowDo not list GameFi / PROTOCASS / Karnyx / TigerHunt. Do not lead with memecoin / Autoscarcity.
Conversion windows (required). Two different windows. Do not describe a single “conversion window”:
ustc-swap): time-limited, time-decaying rate; USTC flows to treasury; USTR is minted to the user. Do not freeze start/end calendar days, remaining days, or 1.5→2.5 rates unless those exact figures are already first-party constants in this repo. Prefer: name the mechanism, then “see the live CMM swap UI for the current rate and whether the window is open.”ust1-window): deposit vFDUSD → mint UST1 (forward collateral to treasury); withdraw burns UST1 and pulls collateral. Oracle/rate policy exists on that product; this FAQ may say a published rate is used and can pause — it must not document operator poll intervals, heartbeat, or Coolify.If a window is closed on-chain at implement time, say so in past tense from a sourced first-party sentence; do not invent reopen dates.
Backing. Explain economic role, not slogans:
frontend-ust1-ratiospin 1).Forbidden: “fully backed 1:1,” “algorithmic stablecoin,” APY, TVL, fabricated collateral-ratio percentages, CoinGecko proof.
Burning cLUNC. Required honest sentence: redeeming/unwrapping cLUNC burns the CW20 and returns native LUNC (minus protocol wrap/unwrap fees as implemented by wrap-mapper). That is not:
Distinguish CMM wrap-mapper (cLUNC/cUSTC) from DEX
/wrap(#12) and fromcmm-native-wrap(wLUNC/wUSTC inust1-window) in one short “related wraps” note so marketers do not merge them. Do not freezefee_bps/ unwrap all-in % unless already a constant in this repo.Treasury ratios / double counting (required). Translate
skills/frontend-ust1-ratiosinto plain English. Must hold in copy:total_supplyalone, not window volume, not USTR.crUsd./methodologymay gain a one-line pointer to this FAQ for CMM figures; do not move the FAQ onto/methodology.Addresses. Optional small table. Only strings already published first-party in
code/ustr-cmmREADME and/orcode/ust1-windowREADME (USTR, UST1, treasury, wrap-mapper, cLUNC, cUSTC, ustc-swap, ust1-window). If shown, add them tosrc/data/contracts.tsin this PR and render from that module. Do not invent. Do not paste operator/deployer/oracle-operator keys as a user FAQ. Finder links: first-party or already used CMM pattern (finder.terraclassic.community/columbus-5); build withURL, not string concat.CTAs. Optional DEX CTA via
dexHrefwith a new closed campaign id (e.g.ust1) — default pair remainsuluna→ Terra Classic CL8Y CW20 execute ids, not UST1 tickers as execute ids. CMM Treasury / CMM app href: first-party origin only,URLhelper,rel="noopener noreferrer"if new tab. Do not make “Buy CL8Y” or “Buy UST1” the primary button. Do not deep-link third-party venues. Do not concatenate visitor query.Guides index. Link this FAQ from
/guides(label Token and treasury FAQ). Optional one-line “mechanics FAQ” link from Start Here CMM section belongs in #9’s PR or a tiny follow-up after #9 lands — this PR must not rewrite/beyond a single optional link if/already has CMM copy; if #9 has not landed, do not take over HomePage.No wallet / mint UI. No wrap/mint/redeem forms. Describe using the live CMM UI.
Do not publish ops internals, unpublished marketing manuscripts, oracle poll/silence env, or extra contract addresses.
Relevant files
src/pages/(new page)src/pages/GuidesPage.tsx/ust1src/App.tsxsrc/seo.tsDocsPath+ROUTESrow; unique title/descriptionsrc/lib/dexHref.tssrc/lib/(small helper OK)src/content/invariants.ts/ust1onlysrc/content/(new copy module OK)src/data/contracts.tse2e/crawl.spec.tsROUTESsrc/verify-dist.test.tsROUTESdocs/ARCHITECTURE.md§4 / §12docs/INVARIANTS.mdcode/ustr-cmmREADME +docs/ARCHITECTURE.md+skills/frontend-ust1-ratioscode/ust1-windowREADMERecommended direction
src/content/tokenTreasuryFaq.ts(Q/A strings + optional address rows) so unit tests can forbid banned hype,fully backed, frozenCR%/APY/TVL, and GameFi lore without rendering React./ust1inseo.tsDocsPath/ROUTES,App.tsx, prerender list, sitemap rewrite. Campaignust1(orguides-token-treasury) added toCAMPAIGNSonly if a DEX CTA is emitted.UST1/USTR/USTCpermitted in the FAQ module / page tests only.contracts.tsfrom published README strings; tests assert the page only emits those constants.ECONOMICS.mdwholesale. One FAQ page.Acceptance criteria
GET /ust1prerendered HTML (no JS) contains FAQ headings that distinguish USTC, USTR, and UST1.title(Token and treasury FAQ · CL8Y docsor equivalent); canonicalhttps://docs.cl8y.com/ust1. Other routes unchanged except/guideslisting this child./guideslinks to/ust1labeled as the token/treasury FAQ. No second new path.UST1/USTRappear as factual names on this page (and its tests); they must not leak onto/methodologystub via shared layout.src/data/contracts.tsafter this PR (CL8Y set and/or published CMM strings added there). No invented addresses.npm test,npm run typecheck, productionnpm run buildwith requiredVITE_*, dist unique-title tests, Playwright 5 workers stay green.Given a reader opens the prerendered
/ust1pageWhen they read the FAQ without executing JavaScript
Then they can tell USTC, USTR, and UST1 apart, describe the two conversion windows without invented remaining time, state backing/redemption honestly, explain cLUNC unwrap/burn versus other burns, and explain how CR accounting avoids wrap double counting, with a pointer to live first-party Treasury figures and no frozen unverified CR%/APY/TVL
Test plan (functional paths)
dist/ust1/index.html#ustc-vs-ustr-vs-ust1,#conversion-windows,#backing,#clunc-burn,#treasury-ratiosexist as element ids/guidesHTML/ust1dexHrefexecute ids + new campaign; not ticker execute idsURLconstruction; saferelif new tab/methodology,/markets,/contractsGET /ustr,GET /ustc,GET /guides/faqGET /no-such-pageTest plan (copy safety)
Not a DeFi attack suite. Keep host crawl/CTA tests from #3 green.
/ust1javascript:/data:/ protocol-relative CMM/DEX hrefECONOMICS.mdwholesale/methodologystub via shared layout/ust1copy onlycontracts.tsVerification criteria
npm test&&npm run typecheck&& productionnpm run buildwith requiredVITE_*.npm run test:dist(unique titles/canonicals; sitemap loc count =ROUTES.length)./ust1body sniff for glossary + window + unwrap + CR accounting headings; crawl MIME tests unchanged./ust1and confirm a marketer can answer “is USTR the same as UST1?” and “does burning cLUNC delete LUNC or unwrap a CW20?” from the page alone.scripts/check-origins.mjsstill fail-closed without HTTPS origins.Out of scope
/ustr,/ustc,/guides/ust1), nginx, Dockerfile, Woodpecker shape, or DEXSitemap:pointer.ECONOMICS.md/ auction / 5-year pool text.code/ustr-cmm,code/ust1-window,code/CL8Y-web, or the DEX SPA (read-only sources).First-pass model recommendation
Recommendation: grok-high
Rationale: Public token/treasury copy must be sourced from
code/ustr-cmm(CR pins, wrap-mapper, USTC→USTR swap) andcode/ust1-windowwithout inventing backing, rates, or CR%. It needs a new allowlisted route, a boundedBANNED_CURRENT_COPYexception for UST1/USTR/USTC, FAQ fragment ids, optionalcontracts.tsCMM addresses, seo/sitemap/crawl updates, and copy-safety tests. That is more than three production files in one helper and is not docs/test-only maintenance of an existing stub. Token/treasury accounting is founder-adjacent (contracts / wallet-adjacent product claims). Uncertain window-open status and which published rates may be printed fail the Composer rubric (known local edit, low ambiguity). Comparable control-plane calibration: a single RCA Markdown (#170) would be Composer; this spans content policy plus prerender routing more like a cross-module change than a test-helper tweak (#164).