feat: secondary UST1 AMM pair (or product waiver) + seed liquidity #508

Closed
opened 2026-08-08 11:26:47 +00:00 by PlasticDigits · 39 comments
PlasticDigits commented 2026-08-08 11:26:47 +00:00 (Migrated from gitlab.com)

Summary

Create and seed at least one secondary AMM pair for UST1 price discovery on the live CL8Y factory — preferred UST1/vFDUSD and/or UST1/cUSTC — or record an explicit product waiver on #502 / this issue if secondary liquidity is deferred.

Parent track: #502 (Phase 4).
Oracle mint/redeem remains primary via ust1-window (/ust1); AMM must never be presented as the mint/redeem path.

Known mainnet anchors

Role Address
Factory terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea
Router terra1e7s0h9ftxakwca5gxspyt4haeuaqxds6swr08ul3tsepq7el924sprrsrw
Fee-discount terra1wcczsdk7jwj99n3my6wx8wr4ee0hn6yaapgd792lgx5elrdtrn2scfnecz
UST1 terra1f0eqgy9w7e5e7up97vjudqwx38tesf8ylx75x2lv3nwm0clry0pqmgfy72
vFDUSD terra1mnl9azefrqpmu888ar2u6zrcwr80hxlt3avf4300r576cw5ar7esvxsvj3
cUSTC (optional leg) terra1nap4dxh9tv35v0ynd9m4k6zt6c0dq6weszc4j5m564kjls56hu7qcr56ch
CW20 whitelist code 10184 (and 6036) per SL1 — UST1/vFDUSD/cUSTC already on 10184

Current codebase

Area Status
Soft-launch pairs Gemstone CW20 catalog only (mainnet-soft-launch-defaults.sh); no UST1 pairs
Pair create Factory create_pair (≥ pair creation fee); UI /create (CreatePairPage); docs deployment-guide.md §6
Indexer pair_discovery.rs auto-discovers factory-provenance pairs; upserts assets
Frontend Trade/Swap Routes via indexer + router; no special-case for UST1 markets yet
#502 AC “At least one secondary AMM pair … with seeded liquidity — or explicit product waiver”

Window mint/redeem is independent; this issue is only the optional/secondary liquidity venue.


Why this is needed

Oracle window sets the primary peg venue; a secondary AMM pair gives Trade/Swap users price discovery and inventory exit/entry without bridging through Venus for every edge trade. #502 acceptance explicitly requires either a live seeded pair or a recorded waiver so Phase 4 can close without silent scope creep. Indexer/frontend already support new factory pairs once created — the gap is ops/governance create + seed + asset metadata, not greenfield AMM code.


Constraints / guardrails

  1. AMM is secondary — never market as oracle mint/redeem; /ust1 remains primary.
  2. Prefer CW20 code 10184 tokens already whitelisted; do not add code IDs without governance (cw20-whitelist-policy.md).
  3. Native LUNC/USTC cannot be pair assets — use cUSTC (or vFDUSD), not raw uusd.
  4. Pay factory pair-creation fee; use governance/deployer process consistent with soft-launch / multisig norms.
  5. Seed liquidity sized for smoke/discovery — document amounts; avoid implying deep peg defense vs window.
  6. Optional: set_discount_registry on new pairs if fee tiers apply.
  7. If product chooses waiver: write explicit rationale + revisit trigger on this issue and #502; do not leave AC unchecked without waiver text.
  8. Indexer must see factory-provenance pair only (foreign pairs rejected).

Relevant files

Ops / docs

  • docs/deployment-guide.md § pair creation
  • docs/runbooks/cw20-whitelist-policy.md
  • docs/runbooks/mainnet-soft-launch.md (post-SL catalog note)
  • scripts/lib/mainnet-soft-launch-defaults.sh (reference only — do not silently fold UST1 into soft-launch defaults)
  • docs/CG_CMC_COMPLIANCE.md (listing/logo review if public markets)

Indexer / frontend (verify after create)

  • indexer/src/indexer/pair_discovery.rs, asset upsert paths
  • Trade/Swap/Charts surfaces on dex.cl8y.com
  • Token registry / logos if pair assets not yet registered (coordinate with /ust1 + wrap issues)

On-chain

  • Factory / router addresses above
  • Parent #502 recommended direction §A

Path A — create + seed (preferred)

  1. Product picks pair: UST1/vFDUSD (closest to window) and/or UST1/cUSTC.
  2. create_pair on production factory; record pair address + tx.
  3. Provide initial liquidity (router/pair provide); record tx + amounts.
  4. Confirm indexer discovery + candles/pair list; set asset symbols/logos if missing.
  5. Optional: set_discount_registry; link from /ust1 copy as “secondary market”.
  6. Smoke: small Swap/Trade round-trip on the new pair.

Path B — product waiver

  1. Product owner comments waiver on this issue and #502: reason, what is deferred, revisit condition.
  2. Mark pair AC satisfied-via-waiver; do not create misleading empty markets.

Acceptance criteria

  • Either (A) at least one UST1 secondary pair (UST1/vFDUSD and/or UST1/cUSTC) created on the production factory, indexed, and seeded with documented liquidity — or (B) explicit product waiver recorded on this issue and #502.
  • If (A): pair visible on dex.cl8y.com (Trade/Swap/Charts as applicable) + indexer.
  • If (A): small swap smoke tx recorded; pair is factory-provenance.
  • Docs/issue comment lists pair address(es), create + seed txs, and seed amounts (or waiver text).
  • No copy implying AMM replaces /ust1 oracle mint/redeem.

Test plan (happy / functional paths)

  1. Pre-check: both pair assets token_info + whitelist code id 10184; factory fee balance for creator.
  2. Create: create_pair succeeds; LCD/factory query lists pair.
  3. Seed: provide liquidity; pool reserves non-zero.
  4. Indexer: pair appears via discovery; assets upserted with correct symbols.
  5. Frontend: pair selectable on Trade/Swap; quote + swap succeed.
  6. Waiver path: skip 2–5; only documentation AC applies.

Test plan (attack / hack / abuse vectors)

Vector Expected
Marketing AMM as “mint UST1” Forbidden in UI copy; /ust1 remains primary
Pair with non-whitelisted code id Factory reject / policy forbid
Native uusd/uluna as pair asset Factory reject; use cUSTC/cLUNC
Foreign/non-factory pair injected to indexer verify_factory_provenance rejects
Seeded dust market mistaken for deep peg Document seed size; window remains peg venue
Wrong token addresses in create_pair Pre-check against Phase 2/3 registry
Waiver without written rationale AC fails — waiver must be explicit on issue

Verification criteria

  • Pair address + create/seed tx hashes or waiver comment linked from #502.
  • Indexer shows pair (A) or N/A (B).
  • Production UI swap smoke (A) or waiver-only close (B).
  • #502 secondary-pair AC can be checked.
## Summary Create and seed at least one **secondary AMM pair** for UST1 price discovery on the live CL8Y factory — preferred **UST1/vFDUSD** and/or **UST1/cUSTC** — **or** record an explicit **product waiver** on [#502](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/502) / this issue if secondary liquidity is deferred. Parent track: [#502](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/502) (Phase 4). Oracle mint/redeem remains primary via ust1-window (`/ust1`); AMM must never be presented as the mint/redeem path. ### Known mainnet anchors | Role | Address | |------|---------| | Factory | `terra1ejpgvv7g3hj0u6fpcnxhflqp84g0w3cnaskqkg5733ygwlmf963sfchsea` | | Router | `terra1e7s0h9ftxakwca5gxspyt4haeuaqxds6swr08ul3tsepq7el924sprrsrw` | | Fee-discount | `terra1wcczsdk7jwj99n3my6wx8wr4ee0hn6yaapgd792lgx5elrdtrn2scfnecz` | | UST1 | `terra1f0eqgy9w7e5e7up97vjudqwx38tesf8ylx75x2lv3nwm0clry0pqmgfy72` | | vFDUSD | `terra1mnl9azefrqpmu888ar2u6zrcwr80hxlt3avf4300r576cw5ar7esvxsvj3` | | cUSTC (optional leg) | `terra1nap4dxh9tv35v0ynd9m4k6zt6c0dq6weszc4j5m564kjls56hu7qcr56ch` | | CW20 whitelist | code **10184** (and **6036**) per SL1 — UST1/vFDUSD/cUSTC already on **10184** | --- ## Current codebase | Area | Status | |------|--------| | Soft-launch pairs | Gemstone CW20 catalog only (`mainnet-soft-launch-defaults.sh`); **no** UST1 pairs | | Pair create | Factory `create_pair` (≥ pair creation fee); UI `/create` (`CreatePairPage`); docs `deployment-guide.md` §6 | | Indexer | `pair_discovery.rs` auto-discovers factory-provenance pairs; upserts assets | | Frontend Trade/Swap | Routes via indexer + router; no special-case for UST1 markets yet | | #502 AC | “At least one secondary AMM pair … with seeded liquidity — **or explicit product waiver**” | Window mint/redeem is independent; this issue is only the optional/secondary liquidity venue. --- ## Why this is needed Oracle window sets the primary peg venue; a secondary AMM pair gives Trade/Swap users price discovery and inventory exit/entry without bridging through Venus for every edge trade. #502 acceptance explicitly requires either a live seeded pair **or** a recorded waiver so Phase 4 can close without silent scope creep. Indexer/frontend already support new factory pairs once created — the gap is ops/governance create + seed + asset metadata, not greenfield AMM code. --- ## Constraints / guardrails 1. AMM is **secondary** — never market as oracle mint/redeem; `/ust1` remains primary. 2. Prefer CW20 code **10184** tokens already whitelisted; do not add code IDs without governance (`cw20-whitelist-policy.md`). 3. Native LUNC/USTC cannot be pair assets — use **cUSTC** (or vFDUSD), not raw `uusd`. 4. Pay factory pair-creation fee; use governance/deployer process consistent with soft-launch / multisig norms. 5. Seed liquidity sized for smoke/discovery — document amounts; avoid implying deep peg defense vs window. 6. Optional: `set_discount_registry` on new pairs if fee tiers apply. 7. If product chooses **waiver**: write explicit rationale + revisit trigger on this issue and #502; do not leave AC unchecked without waiver text. 8. Indexer must see factory-provenance pair only (foreign pairs rejected). --- ## Relevant files **Ops / docs** - `docs/deployment-guide.md` § pair creation - `docs/runbooks/cw20-whitelist-policy.md` - `docs/runbooks/mainnet-soft-launch.md` (post-SL catalog note) - `scripts/lib/mainnet-soft-launch-defaults.sh` (reference only — do not silently fold UST1 into soft-launch defaults) - `docs/CG_CMC_COMPLIANCE.md` (listing/logo review if public markets) **Indexer / frontend (verify after create)** - `indexer/src/indexer/pair_discovery.rs`, asset upsert paths - Trade/Swap/Charts surfaces on `dex.cl8y.com` - Token registry / logos if pair assets not yet registered (coordinate with `/ust1` + wrap issues) **On-chain** - Factory / router addresses above - Parent [#502](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/502) recommended direction §A --- ## Recommended direction ### Path A — create + seed (preferred) 1. Product picks pair: **UST1/vFDUSD** (closest to window) and/or **UST1/cUSTC**. 2. `create_pair` on production factory; record pair address + tx. 3. Provide initial liquidity (router/pair provide); record tx + amounts. 4. Confirm indexer discovery + candles/pair list; set asset symbols/logos if missing. 5. Optional: `set_discount_registry`; link from `/ust1` copy as “secondary market”. 6. Smoke: small Swap/Trade round-trip on the new pair. ### Path B — product waiver 1. Product owner comments waiver on this issue **and** #502: reason, what is deferred, revisit condition. 2. Mark pair AC satisfied-via-waiver; do not create misleading empty markets. --- ## Acceptance criteria - [ ] **Either** (A) at least one UST1 secondary pair (UST1/vFDUSD and/or UST1/cUSTC) created on the production factory, indexed, and seeded with documented liquidity — **or** (B) explicit product waiver recorded on this issue and #502. - [ ] If (A): pair visible on `dex.cl8y.com` (Trade/Swap/Charts as applicable) + indexer. - [ ] If (A): small swap smoke tx recorded; pair is factory-provenance. - [ ] Docs/issue comment lists pair address(es), create + seed txs, and seed amounts (or waiver text). - [ ] No copy implying AMM replaces `/ust1` oracle mint/redeem. --- ## Test plan (happy / functional paths) 1. **Pre-check:** both pair assets `token_info` + whitelist code id **10184**; factory fee balance for creator. 2. **Create:** `create_pair` succeeds; LCD/factory query lists pair. 3. **Seed:** provide liquidity; pool reserves non-zero. 4. **Indexer:** pair appears via discovery; assets upserted with correct symbols. 5. **Frontend:** pair selectable on Trade/Swap; quote + swap succeed. 6. **Waiver path:** skip 2–5; only documentation AC applies. --- ## Test plan (attack / hack / abuse vectors) | Vector | Expected | |--------|----------| | Marketing AMM as “mint UST1” | Forbidden in UI copy; `/ust1` remains primary | | Pair with non-whitelisted code id | Factory reject / policy forbid | | Native `uusd`/`uluna` as pair asset | Factory reject; use cUSTC/cLUNC | | Foreign/non-factory pair injected to indexer | `verify_factory_provenance` rejects | | Seeded dust market mistaken for deep peg | Document seed size; window remains peg venue | | Wrong token addresses in create_pair | Pre-check against Phase 2/3 registry | | Waiver without written rationale | AC fails — waiver must be explicit on issue | --- ## Verification criteria - [ ] Pair address + create/seed tx hashes **or** waiver comment linked from #502. - [ ] Indexer shows pair (A) or N/A (B). - [ ] Production UI swap smoke (A) or waiver-only close (B). - [ ] #502 secondary-pair AC can be checked. ### Related - Parent: [#502](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/502) - Phase 2 tokens: [ust1-window#19](https://gitlab.com/PlasticDigits/ust1-window/-/issues/19) - Phase 3 wraps: [ustr-cmm#5](https://gitlab.com/PlasticDigits2/ustr-cmm/-/work_items/5) - Sibling: `/ust1` UI; mainnet wrap env + Swap UX
PlasticDigits commented 2026-08-08 11:26:48 +00:00 (Migrated from gitlab.com)

marked as related to #502

marked as related to #502
PlasticDigits commented 2026-08-08 11:27:02 +00:00 (Migrated from gitlab.com)

mentioned in issue #502

mentioned in issue #502
PlasticDigits commented 2026-08-08 13:50:55 +00:00 (Migrated from gitlab.com)

mentioned in commit fd91ae6964

mentioned in commit fd91ae6964cd4b9e3e06d06d1d74eb7651a3468d
PlasticDigits commented 2026-08-08 13:50:55 +00:00 (Migrated from gitlab.com)

mentioned in commit ebe7a615ba

mentioned in commit ebe7a615baba971e280ab6393f622760d7006f93
PlasticDigits commented 2026-08-08 13:51:17 +00:00 (Migrated from gitlab.com)

mentioned in merge request !1046

mentioned in merge request !1046
PlasticDigits commented 2026-08-08 13:51:18 +00:00 (Migrated from gitlab.com)

Implementation update (MR feat/508-ust1-secondary-amm)

Path B — interim product waiver (AC)

Recorded in deployments/ust1-secondary-pair/PRODUCT_WAIVER.md:

  • Reason: UST1 total_supply=0 on columbus-5; soft-launch deployer holds 0 UST1/vFDUSD/cUSTC. Creating an empty/dust market would violate seed/honesty guardrails.
  • Deferred: live create_pair + seed + indexer/UI smoke on production.
  • Revisit: when operator wallet holds both legs ≥ seed (default 1e6 raw) after window mint / inventory; then run ./scripts/add-ust1-secondary-pair.sh and replace this waiver with Path A txs.

Same waiver applies to parent #502 secondary-pair AC until Path A lands.

Path A readiness shipped in-repo

  • Scripts: scripts/add-ust1-secondary-pair.sh, scripts/seed-ust1-secondary-pair-local.sh, scripts/lib/ust1-secondary-pair-defaults.sh
  • Runbook + invariants U1–U7: docs/runbooks/ust1-secondary-amm-pair.md
  • Agent skill: skills/AGENTS_UST1_SECONDARY_AMM.md
  • Verify: make verify-issue-508 (+ VERIFY508_LOCAL=1 LocalTerra seeded stand-in pair)
  • Frontend: secondary-market copy helpers + CreatePair U1 notice (AMM ≠ mint/redeem)

Acceptance criteria checkoff

  • Either A or B: Path B explicit product waiver recorded (this comment + PRODUCT_WAIVER.md); Path A tooling ready
  • If (A): pair visible on dex.cl8y.com — N/A until Path A ops
  • If (A): small swap smoke — N/A until Path A ops
  • Docs/issue lists waiver text (and Path A will list pair addr/txs when executed)
  • No copy implying AMM replaces /ust1 mint/redeem
## Implementation update (MR `feat/508-ust1-secondary-amm`) ### Path B — interim product waiver (AC) Recorded in [`deployments/ust1-secondary-pair/PRODUCT_WAIVER.md`](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/blob/feat/508-ust1-secondary-amm/deployments/ust1-secondary-pair/PRODUCT_WAIVER.md): - **Reason:** UST1 `total_supply=0` on columbus-5; soft-launch deployer holds 0 UST1/vFDUSD/cUSTC. Creating an empty/dust market would violate seed/honesty guardrails. - **Deferred:** live `create_pair` + seed + indexer/UI smoke on production. - **Revisit:** when operator wallet holds both legs ≥ seed (default 1e6 raw) after window mint / inventory; then run `./scripts/add-ust1-secondary-pair.sh` and replace this waiver with Path A txs. Same waiver applies to parent #502 secondary-pair AC until Path A lands. ### Path A readiness shipped in-repo - Scripts: `scripts/add-ust1-secondary-pair.sh`, `scripts/seed-ust1-secondary-pair-local.sh`, `scripts/lib/ust1-secondary-pair-defaults.sh` - Runbook + invariants **U1–U7**: `docs/runbooks/ust1-secondary-amm-pair.md` - Agent skill: `skills/AGENTS_UST1_SECONDARY_AMM.md` - Verify: `make verify-issue-508` (+ `VERIFY508_LOCAL=1` LocalTerra seeded stand-in pair) - Frontend: secondary-market copy helpers + CreatePair U1 notice (AMM ≠ mint/redeem) ### Acceptance criteria checkoff - [x] **Either A or B:** Path B explicit product waiver recorded (this comment + `PRODUCT_WAIVER.md`); Path A tooling ready - [ ] If (A): pair visible on dex.cl8y.com — **N/A until Path A ops** - [ ] If (A): small swap smoke — **N/A until Path A ops** - [x] Docs/issue lists waiver text (and Path A will list pair addr/txs when executed) - [x] No copy implying AMM replaces `/ust1` mint/redeem
PlasticDigits commented 2026-08-09 06:52:19 +00:00 (Migrated from gitlab.com)

mentioned in commit a1e97c2980

mentioned in commit a1e97c2980779df854e39dddd41e4c0c5c50a93e
PlasticDigits commented 2026-08-09 07:02:21 +00:00 (Migrated from gitlab.com)

mentioned in issue #506

mentioned in issue #506
PlasticDigits commented 2026-08-09 07:02:22 +00:00 (Migrated from gitlab.com)

Merge sanity check (MR !1046 → main)

Verdict: #508 Path B (interim product waiver) + Path A tooling are complete enough to merge. make verify-issue-508 PASS; DRY_RUN=1 ./scripts/add-ust1-secondary-pair.sh confirms inventory block (UST1/vFDUSD balances 0).

Remaining problems / open items

  1. Path A ops still blocked: columbus-5 deployer inventory is 0 — live create_pair + seed deferred per waiver. When inventory exists: run ./scripts/add-ust1-secondary-pair.sh, fill deploy-trace.md, VERIFY508_MAINNET=1 make verify-issue-508, then lift waiver on #508/#502.
  2. UI wiring gap: UST1_SECONDARY_MARKET_BLURB / Trade-Swap helpers are unit-tested and CreatePair notice ships, but /ust1 secondary-market CTAs are not wired yet (depends on #506 landing).
  3. Post-merge hygiene: Update waiver blob links from feat/508-ust1-secondary-amm → main.
  4. CI: test-frontend red with pre-existing unrelated failures (same class as main); not introduced by this ops/docs/helpers MR.
## Merge sanity check (MR !1046 → main) **Verdict:** #508 Path B (interim product waiver) + Path A tooling are complete enough to merge. `make verify-issue-508` PASS; `DRY_RUN=1 ./scripts/add-ust1-secondary-pair.sh` confirms inventory block (UST1/vFDUSD balances 0). ### Remaining problems / open items 1. **Path A ops still blocked:** columbus-5 deployer inventory is 0 — live `create_pair` + seed deferred per waiver. When inventory exists: run `./scripts/add-ust1-secondary-pair.sh`, fill `deploy-trace.md`, `VERIFY508_MAINNET=1 make verify-issue-508`, then lift waiver on #508/#502. 2. **UI wiring gap:** `UST1_SECONDARY_MARKET_BLURB` / Trade-Swap helpers are unit-tested and CreatePair notice ships, but `/ust1` secondary-market CTAs are not wired yet (depends on #506 landing). 3. **Post-merge hygiene:** Update waiver blob links from `feat/508-ust1-secondary-amm` → `main`. 4. **CI:** `test-frontend` red with pre-existing unrelated failures (same class as `main`); not introduced by this ops/docs/helpers MR.
PlasticDigits commented 2026-08-09 07:04:03 +00:00 (Migrated from gitlab.com)

mentioned in commit 7d43b49356

mentioned in commit 7d43b493568a0a619d246768ee7e757166fc9c0e
PlasticDigits commented 2026-08-09 07:04:21 +00:00 (Migrated from gitlab.com)

mentioned in commit 2bc31e4522

mentioned in commit 2bc31e4522c072d35953e1c50fa8f5079449362c
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-08-09 07:04:27 +00:00
PlasticDigits commented 2026-08-09 07:05:01 +00:00 (Migrated from gitlab.com)

MR !1046 merged to main (2bc31e4) after integrating !1044/!1045. Issue auto-closed via Path B waiver + Path A tooling (Closes #508).

Still open for Path A: inventory → ./scripts/add-ust1-secondary-pair.sh → record pair/txs → lift waiver on #502. Update waiver blob links from feature branch → main when convenient.

MR !1046 merged to `main` (`2bc31e4`) after integrating !1044/!1045. Issue auto-closed via Path B waiver + Path A tooling (`Closes #508`). **Still open for Path A:** inventory → `./scripts/add-ust1-secondary-pair.sh` → record pair/txs → lift waiver on #502. Update waiver blob links from feature branch → `main` when convenient.
PlasticDigits commented 2026-08-09 09:26:07 +00:00 (Migrated from gitlab.com)

mentioned in issue #503

mentioned in issue #503
PlasticDigits commented 2026-08-09 09:30:43 +00:00 (Migrated from gitlab.com)

mentioned in merge request !1048

mentioned in merge request !1048
PlasticDigits commented 2026-08-15 09:57:13 +00:00 (Migrated from gitlab.com)

mentioned in issue #521

mentioned in issue #521
PlasticDigits commented 2026-08-15 09:57:15 +00:00 (Migrated from gitlab.com)

marked as related to #521

marked as related to #521
PlasticDigits commented 2026-08-15 10:26:39 +00:00 (Migrated from gitlab.com)

Path A seed inventory — approved sizes

Full table + wrap/window notes: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/521#note_3690052724

Approved (replaces the 1.0-per-side smoke default):

  • 1,000 UST1 + oracle-sized cUSTC
  • 1,000 UST1 + oracle-sized USTR

Price model: UST1 = $1; P_cUSTC = 1.0 × P_USTC; P_USTR = 2.5 × P_USTC; P_USTC from indexer /api/v1/oracle/price/ustc.

Example at $0.00489550 USTC (2026-08-15): 204,269.226841 cUSTC (6 dp, raw 204269226841) and 81,707.690736390562761720 USTR (18 dp, raw 81707690736390562761720). Re-query oracle at mint time.

Do not seed 1,000 cUSTC / 400 USTR (that is the $1-USTC identity only). Live USTC is ~½¢; that ratio would donate the UST1 side.

## Path A seed inventory — approved sizes Full table + wrap/window notes: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/521#note_3690052724 Approved (replaces the 1.0-per-side smoke default): - **1,000 UST1 + oracle-sized cUSTC** - **1,000 UST1 + oracle-sized USTR** Price model: UST1 = $1; `P_cUSTC = 1.0 × P_USTC`; `P_USTR = 2.5 × P_USTC`; `P_USTC` from indexer `/api/v1/oracle/price/ustc`. Example at **$0.00489550** USTC (2026-08-15): **204,269.226841 cUSTC** (6 dp, raw `204269226841`) and **81,707.690736390562761720 USTR** (18 dp, raw `81707690736390562761720`). Re-query oracle at mint time. Do not seed 1,000 cUSTC / 400 USTR (that is the $1-USTC identity only). Live USTC is ~½¢; that ratio would donate the UST1 side.
PlasticDigits commented 2026-08-15 11:39:17 +00:00 (Migrated from gitlab.com)

mentioned in issue #522

mentioned in issue #522
PlasticDigits commented 2026-08-15 11:39:18 +00:00 (Migrated from gitlab.com)

marked as related to #522

marked as related to #522
PlasticDigits commented 2026-08-15 11:52:33 +00:00 (Migrated from gitlab.com)

mentioned in merge request !1055

mentioned in merge request !1055
PlasticDigits commented 2026-08-15 12:19:48 +00:00 (Migrated from gitlab.com)

mentioned in issue #524

mentioned in issue #524
PlasticDigits commented 2026-08-15 12:19:49 +00:00 (Migrated from gitlab.com)

marked as related to #524

marked as related to #524
PlasticDigits commented 2026-08-17 03:45:49 +00:00 (Migrated from gitlab.com)

mentioned in issue #542

mentioned in issue #542
PlasticDigits commented 2026-08-17 03:45:52 +00:00 (Migrated from gitlab.com)

marked as related to #542

marked as related to #542
PlasticDigits commented 2026-08-17 03:51:35 +00:00 (Migrated from gitlab.com)

mentioned in issue #543

mentioned in issue #543
PlasticDigits commented 2026-08-17 04:29:00 +00:00 (Migrated from gitlab.com)

mentioned in merge request !1071

mentioned in merge request !1071
PlasticDigits commented 2026-08-18 00:28:53 +00:00 (Migrated from gitlab.com)

mentioned in issue #556

mentioned in issue #556
PlasticDigits commented 2026-08-18 00:39:12 +00:00 (Migrated from gitlab.com)

mentioned in issue #558

mentioned in issue #558
PlasticDigits commented 2026-08-18 00:43:30 +00:00 (Migrated from gitlab.com)

mentioned in issue #559

mentioned in issue #559
PlasticDigits commented 2026-08-19 11:49:49 +00:00 (Migrated from gitlab.com)

mentioned in issue #574

mentioned in issue #574
PlasticDigits commented 2026-08-19 11:49:52 +00:00 (Migrated from gitlab.com)

marked as related to #574

marked as related to #574
PlasticDigits commented 2026-08-19 11:49:56 +00:00 (Migrated from gitlab.com)

mentioned in issue #575

mentioned in issue #575
PlasticDigits commented 2026-08-19 11:49:59 +00:00 (Migrated from gitlab.com)

marked as related to #575

marked as related to #575
PlasticDigits commented 2026-08-27 00:17:52 +00:00 (Migrated from gitlab.com)

mentioned in issue #678

mentioned in issue #678
PlasticDigits commented 2026-08-27 00:17:54 +00:00 (Migrated from gitlab.com)

marked as related to #678

marked as related to #678
PlasticDigits commented 2026-08-27 00:20:53 +00:00 (Migrated from gitlab.com)

mentioned in issue #680

mentioned in issue #680
PlasticDigits commented 2026-08-31 04:56:53 +00:00 (Migrated from gitlab.com)

mentioned in issue #711

mentioned in issue #711
PlasticDigits commented 2026-08-31 04:56:54 +00:00 (Migrated from gitlab.com)

marked as related to #711

marked as related to #711
PlasticDigits commented 2026-08-31 16:08:49 +00:00 (Migrated from gitlab.com)

mentioned in issue #715

mentioned in issue #715
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-dex-terraclassic#508
No description provided.