feat(listings): list bridged USDT in Terra Classic wallets #1260

Open
opened 2026-09-12 13:55:08 +00:00 by PlasticDigits · 0 comments

Summary

Bridged USDT on Terra Classic is already pinned in the DEX tokenlist (terra1z0xe7…, 18 decimals, tokenlist/images/USDT.png) but is absent from the wallet-registry packs that make CW20s show a name, symbol, and logo in Terra Classic wallets (Keplr, Galaxy Station / Hexxagon, Leap / cosmos chain-registry).

This ticket is one token, all agentic wallet venues: add that USDT CW20 to the in-repo listing packs and open/update upstream PRs so ecosystem wallets can recognize it. Do not fold this into #629 (Keplr permanent six), #639 (catalog locked to those six via L639-2), or #1221 (ops: bridge inventory + CMM USDT/cLUNC pair).

#639 L639-1 prefers one venue per child. This capture is a single product ask across wallets; bundle the wallet venues here rather than minting sibling issues. Exchange/aggregator forms (CG/CMC/GeckoTerminal/Paprika) stay on their #639 children.

Current codebase

Tokenlist already has USDT; listing catalog does not

tokenlist/tokenlist.json includes:

Field Value
symbol USDT
name Tether USD
address terra1z0xe7t5ymmltg4vju8tghkq0pewy4et548ta23nlu9zxtl950uyqkv8mv4
type cw20
decimals 18
logo tokenlist/images/USDT.png

docs/listings/catalog.json tokens[] is still the permanent six (CL8Y, UST1, USTR, cLUNC, cUSTC, vFDUSD). L639-2 / K629-2 exclude gems, ALPHA, USTRIX, SpaceUSD, and community-tax templates. USDT is none of those; it is a new economic CW20 that was not in the 2026-08-25 catalog lock.

Wallet packs (no USDT JSON)

Venue In-repo Upstream USDT today
Keplr docs/listings/keplr-contract-registry/cosmos/columbus/tokens/<contract>.json (six files) chainapsis/keplr-contract-registry cosmos/terra (or columbus) tokens + images Missing terra1z0xe7….json
Hexxagon / Galaxy Station docs/listings/hexxagon/terra.fragment.json hexxagon-io/chain-registry cw20/tokens/mainnet/terra.js (PR #68) Not in fragment
Leap / Directory no pack dir (noted in catalog) cosmos/chain-registry terra/assetlist.json (PR #7910) Permanent six only
Cosmostation docs/listings/cosmostation/ cosmostation/chainlist archived; catalog agentic: false Skip new PR
Trust Wallet none trustwallet/assets — paid merge (#649) Skip unless product separately asks

Keplr Job 1 already learned: yarn validate:token requires JSON metadata equal to LCD token_info, not marketing names (#629 comments). USDT JSON must copy live name / symbol / decimals from columbus-5.

  • #1221 — bridge inventory + factory CreatePair USDT/cLUNC with CMM receiver. Confirm this tokenlist address is the post-bridge CW20 (code_id, usually 10184) before submitting registries. If LCD token_info disagrees with the tokenlist, stop and do not invent a second USDT.
  • #1220 — IBC native USDC allowlist. Not USDT, not CW20 wallet metadata.
  • DEX Swap picker / indexer catalogs are not this ticket.

Why the new implementation is needed

Wallets that only read Keplr / Hexxagon / chain-registry registries will show bridged USDT as an unnamed contract. The DEX tokenlist and logo already exist; wallet recognition is the missing integrator path. Users holding bridged USDT on columbus-5 cannot add it from those wallets’ token lists until the registries include this CW20.

Constraints / guardrails

  • LCD is source of truth. Confirm ContractInfo.code_id and token_info for terra1z0xe7… on columbus-5 before writing JSON. If the contract is missing, wrong code_id, or not USDT, stop (likely still #1221).
  • One CW20. Do not register a second USDT, a wrap cUSDT, IBC denom, or BSC 0x Tether as Terra Classic.
  • Do not expand L639-2 silently. This issue is an explicit exception for this USDT CW20 only. Gems / ALPHA / USTRIX / SpaceUSD / community-tax templates stay excluded.
  • Do not comment /agent implement on #629 or reopen #639 to dump USDT into the permanent six.
  • L639-7: do not open upstream PRs from this repo’s CI. Operator/agent GitHub.
  • Cosmostation chainlist archived — no new PR. Trust Wallet paid — out of scope here.
  • terra-money/assets is on the #639 skip list (L639-6). Station Classic is not a venue here.
  • Logos: reuse tokenlist/images/USDT.png (same bytes in each pack). Do not hotlink random CDN art.
  • Keplr metadata must match LCD strings exactly (see cLUNC Wrapped LUNC vs marketing Wrapped Luna Classic).
  • UST1/USTR $1 rules are irrelevant to USDT; do not advertise a peg in wallet description beyond LCD name/symbol.
  • No factory whitelist, CreatePair, or CMM LP in this ticket.

Relevant files

Path Role
tokenlist/tokenlist.json Existing USDT pin + decimals
tokenlist/images/USDT.png Logo source
docs/listings/catalog.json Add USDT token object; do not rewrite L639-2 for the other six
docs/listings/README.md Note the USDT exception + this issue
docs/listings/keplr-contract-registry/cosmos/columbus/tokens/ New <usdt-contract>.json + image
docs/listings/hexxagon/terra.fragment.json Append USDT object
docs/listings/cosmos-chain-registry/ (create if missing) terra/assetlist.json fragment + image
skills/AGENTS_LISTINGS.md Venue table: USDT wallet exception
Keplr / Hexxagon verify skills + make verify-issue-629 / 640 / 641 Keep green; add verify-issue-<this>
  1. LCD probe (read-only): ContractInfo + token_info for terra1z0xe7t5ymmltg4vju8tghkq0pewy4et548ta23nlu9zxtl950uyqkv8mv4. Record code_id, name, symbol, decimals. Abort if not a CW20 USDT.
  2. Keplr pack: add cosmos/columbus/tokens/<contract>.json (and image under the pack’s images/ layout used by #629). Metadata = LCD. Vitest catalog↔JSON includes USDT. Export still omits gems.
  3. Hexxagon fragment: append one object to terra.fragment.json (trailing commas / append-at-end as #641). Do not duplicate USTR. Follow existing PR #68 if still open; otherwise a follow-up PR.
  4. cosmos/chain-registry: type_asset: cw20, base/denom cw20:<address>, image, no invented coingecko_id for this Terra USDT unless CoinGecko already maps this exact contract (do not reuse tether blindly).
  5. catalog.json: add the USDT token row with issue = this issue. Leave owned Keplr/Llama surfaces on #629/#631 (do_not_reopen).
  6. Verify target: make verify-issue-<id> — schema, LCD match fixture or recorded golden from step 1, gems still excluded, USDT present in Keplr + Hexxagon packs.
  7. Upstream PRs from a human/agent GitHub account, not CI.

Given / When / Then

  • Given columbus-5 LCD reports token_info for terra1z0xe7t5ymmltg4vju8tghkq0pewy4et548ta23nlu9zxtl950uyqkv8mv4 as a CW20 whose symbol is USDT (decimals matching the tokenlist),
  • When the listing packs above include that contract (Keplr JSON + Hexxagon fragment + chain-registry asset) with LCD-equal metadata and USDT.png,
  • Then make verify-issue-<id> is green, gems remain excluded, and an operator can open/update the three agentic upstream PRs without touching Cosmostation, Trust Wallet, or #1221 ops.

Acceptance criteria

  • AC1. LCD probe recorded in the PR: code_id, name, symbol, decimals for terra1z0xe7…. If LCD fails or symbol is not USDT, no registry JSON is merged.
  • AC2. Keplr pack contains a JSON file named after that contract; metadata equals LCD token_info; image is the in-repo USDT PNG.
  • AC3. Hexxagon terra.fragment.json includes one USDT object (contract, decimals, image) and does not duplicate USTR or add gems.
  • AC4. cosmos/chain-registry pack (or documented equivalent) adds cw20:<address> for this token only; no invented CoinGecko id.
  • AC5. docs/listings/catalog.json lists USDT with this issue id. Permanent six rows unchanged. L639-2 exception documented in docs/listings/README.md.
  • AC6. make verify-issue-629 (and existing 640/641/639 targets if still present) stay green. New make verify-issue-<id> covers USDT schema + gem exclusion.
  • AC7. No CI job opens GitHub PRs. No Cosmostation PR. No Trust Wallet PR. No factory/LP/bridge txs.
  • AC8. DEX Swap UI, indexer APIs, and CG/CMC forms are unchanged.

Test plan (functional paths)

# Path Expect
T1 LCD token_info for terra1z0xe7… Symbol USDT; decimals 18 or documented LCD value; used as JSON source
T2 Keplr JSON round-trip vs LCD Exact name/symbol/decimals
T3 Hexxagon fragment parse USDT present; USTR still once; no gems
T4 chain-registry fragment type_asset: cw20, denom cw20:terra1z0xe7…
T5 make verify-issue-<id> Pass
T6 make verify-issue-629 Still 6/6 (or current count) plus no regression from extra token in shared catalog helpers
T7 catalog.json tokens USDT + original six; ALPHA/USTRIX/SpaceUSD/gems still absent
T8 Logo bytes Pack images match tokenlist/images/USDT.png

Test plan (attack, hack, and abuse)

Wallet registry metadata only (no signing, wasm execute, or 2-of-3). Not a DeFi drain suite.

# Vector Expect
A1 Register a lookalike CW20 from tokenlist (SpaceUSD, vFDUSD, UST1) as USDT Forbidden
A2 Register #562 gem or ALPHA/USTRIX Forbidden
A3 Keplr metadata with marketing name ≠ LCD Fail verify (same class as cLUNC #629 CI)
A4 BSC Tether 0x or IBC denom in Terra CW20 slot Forbidden
A5 Invented coingecko_id: tether on Classic CW20 Omit unless CG maps this exact contract
A6 CI GitHub token opening upstream PRs No such job (L639-7)
A7 Image from arbitrary URL Use in-repo PNG only

Verification criteria

  • make verify-issue-<id> green locally (schema + gem exclude + USDT present).
  • LCD curl (public LCD) matches committed Keplr JSON.
  • Existing make verify-issue-629 / listing verifies still pass.
  • Manual: Keplr pack path + Hexxagon fragment reviewed; operator can point GitHub PRs at those files.
  • No Coolify, factory, or treasury steps.

Out of scope

  • Bridging more USDT, factory whitelist, CreatePair, CMM LP (#1221).
  • Keplr USD price / CoinGecko platform for this CW20 (#629 Job 2).
  • CG/CMC/GeckoTerminal/Paprika token or exchange forms (#643–#648).
  • Trust Wallet paid merge (#649).
  • Cosmostation chainlist (archived).
  • DEX frontend picker, indexer /cg /cmc, IBC USDC (#1220).
  • Expanding #629’s permanent-six Keplr job to absorb USDT.

First-pass model recommendation

Recommendation: grok-high

Composer fails several intake criteria: more than three production files (Keplr pack, Hexxagon fragment, chain-registry pack, catalog.json, listings README, skills, verify target); more than one subsystem (three wallet registries plus catalog invariant L639-2); live LCD token_info must match before JSON is safe (Keplr CI already rejected marketing names on #629); token identity in third-party wallets is not a local one-file known edit. Verification is pack + LCD golden + existing listing make targets, not a single deterministic helper. First pass should keep #1221 ops and paid/archived venues out of the diff.

## Summary Bridged **USDT** on Terra Classic is already pinned in the DEX tokenlist (`terra1z0xe7…`, 18 decimals, `tokenlist/images/USDT.png`) but is **absent** from the wallet-registry packs that make CW20s show a name, symbol, and logo in Terra Classic wallets (Keplr, Galaxy Station / Hexxagon, Leap / cosmos chain-registry). This ticket is **one token, all agentic wallet venues**: add that USDT CW20 to the in-repo listing packs and open/update upstream PRs so ecosystem wallets can recognize it. Do **not** fold this into [#629](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/629) (Keplr permanent six), [#639](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/639) (catalog locked to those six via **L639-2**), or [#1221](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1221) (ops: bridge inventory + CMM USDT/cLUNC pair). [#639](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/639) **L639-1** prefers one venue per child. This capture is a single product ask across wallets; **bundle the wallet venues here** rather than minting sibling issues. Exchange/aggregator forms (CG/CMC/GeckoTerminal/Paprika) stay on their #639 children. ## Current codebase ### Tokenlist already has USDT; listing catalog does not [`tokenlist/tokenlist.json`](tokenlist/tokenlist.json) includes: | Field | Value | |-------|--------| | symbol | `USDT` | | name | `Tether USD` | | address | `terra1z0xe7t5ymmltg4vju8tghkq0pewy4et548ta23nlu9zxtl950uyqkv8mv4` | | type | `cw20` | | decimals | 18 | | logo | `tokenlist/images/USDT.png` | [`docs/listings/catalog.json`](docs/listings/catalog.json) `tokens[]` is still the **permanent six** (CL8Y, UST1, USTR, cLUNC, cUSTC, vFDUSD). **L639-2** / **K629-2** exclude gems, ALPHA, USTRIX, SpaceUSD, and community-tax templates. USDT is none of those; it is a new economic CW20 that was not in the 2026-08-25 catalog lock. ### Wallet packs (no USDT JSON) | Venue | In-repo | Upstream | USDT today | |-------|---------|----------|------------| | Keplr | `docs/listings/keplr-contract-registry/cosmos/columbus/tokens/<contract>.json` (six files) | [chainapsis/keplr-contract-registry](https://github.com/chainapsis/keplr-contract-registry) `cosmos/terra` (or columbus) tokens + images | Missing `terra1z0xe7….json` | | Hexxagon / Galaxy Station | `docs/listings/hexxagon/terra.fragment.json` | [hexxagon-io/chain-registry](https://github.com/hexxagon-io/chain-registry) `cw20/tokens/mainnet/terra.js` ([PR #68](https://github.com/hexxagon-io/chain-registry/pull/68)) | Not in fragment | | Leap / Directory | no pack dir (noted in catalog) | [cosmos/chain-registry](https://github.com/cosmos/chain-registry) `terra/assetlist.json` ([PR #7910](https://github.com/cosmos/chain-registry/pull/7910)) | Permanent six only | | Cosmostation | `docs/listings/cosmostation/` | `cosmostation/chainlist` **archived**; catalog `agentic: false` | Skip new PR | | Trust Wallet | none | [trustwallet/assets](https://github.com/trustwallet/assets) — **paid** merge ([#649](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/649)) | Skip unless product separately asks | Keplr Job 1 already learned: `yarn validate:token` requires JSON `metadata` **equal to LCD `token_info`**, not marketing names ([#629](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/629) comments). USDT JSON must copy live `name` / `symbol` / `decimals` from columbus-5. ### Related but different work - [#1221](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1221) — bridge inventory + factory `CreatePair` USDT/cLUNC with CMM `receiver`. Confirm this tokenlist address is the post-bridge CW20 (`code_id`, usually 10184) before submitting registries. If LCD `token_info` disagrees with the tokenlist, **stop** and do not invent a second USDT. - [#1220](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1220) — IBC native USDC allowlist. Not USDT, not CW20 wallet metadata. - DEX Swap picker / indexer catalogs are not this ticket. ## Why the new implementation is needed Wallets that only read Keplr / Hexxagon / chain-registry registries will show bridged USDT as an unnamed contract. The DEX tokenlist and logo already exist; wallet recognition is the missing integrator path. Users holding bridged USDT on columbus-5 cannot add it from those wallets’ token lists until the registries include this CW20. ## Constraints / guardrails - **LCD is source of truth.** Confirm `ContractInfo.code_id` and `token_info` for `terra1z0xe7…` on columbus-5 before writing JSON. If the contract is missing, wrong code_id, or not USDT, stop (likely still [#1221](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1221)). - **One CW20.** Do not register a second USDT, a wrap `cUSDT`, IBC denom, or BSC `0x` Tether as Terra Classic. - **Do not expand L639-2 silently.** This issue is an **explicit exception** for this USDT CW20 only. Gems / ALPHA / USTRIX / SpaceUSD / community-tax templates stay excluded. - Do **not** comment `/agent implement` on [#629](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/629) or reopen [#639](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/639) to dump USDT into the permanent six. - **L639-7:** do not open upstream PRs from this repo’s CI. Operator/agent GitHub. - Cosmostation chainlist archived — no new PR. Trust Wallet paid — out of scope here. - `terra-money/assets` is on the #639 skip list (**L639-6**). Station Classic is not a venue here. - Logos: reuse `tokenlist/images/USDT.png` (same bytes in each pack). Do not hotlink random CDN art. - Keplr metadata must match LCD strings exactly (see cLUNC `Wrapped LUNC` vs marketing `Wrapped Luna Classic`). - UST1/USTR `$1` rules are irrelevant to USDT; do not advertise a peg in wallet `description` beyond LCD name/symbol. - No factory whitelist, `CreatePair`, or CMM LP in this ticket. ## Relevant files | Path | Role | |------|------| | `tokenlist/tokenlist.json` | Existing USDT pin + decimals | | `tokenlist/images/USDT.png` | Logo source | | `docs/listings/catalog.json` | Add USDT token object; do not rewrite L639-2 for the other six | | `docs/listings/README.md` | Note the USDT exception + this issue | | `docs/listings/keplr-contract-registry/cosmos/columbus/tokens/` | New `<usdt-contract>.json` + image | | `docs/listings/hexxagon/terra.fragment.json` | Append USDT object | | `docs/listings/cosmos-chain-registry/` (create if missing) | `terra/assetlist.json` fragment + image | | `skills/AGENTS_LISTINGS.md` | Venue table: USDT wallet exception | | Keplr / Hexxagon verify skills + `make verify-issue-629` / `640` / `641` | Keep green; add `verify-issue-<this>` | ## Recommended direction 1. **LCD probe** (read-only): `ContractInfo` + `token_info` for `terra1z0xe7t5ymmltg4vju8tghkq0pewy4et548ta23nlu9zxtl950uyqkv8mv4`. Record `code_id`, name, symbol, decimals. Abort if not a CW20 USDT. 2. **Keplr pack:** add `cosmos/columbus/tokens/<contract>.json` (and image under the pack’s `images/` layout used by #629). Metadata = LCD. Vitest catalog↔JSON includes USDT. Export still omits gems. 3. **Hexxagon fragment:** append one object to `terra.fragment.json` (trailing commas / append-at-end as #641). Do not duplicate USTR. Follow existing PR #68 if still open; otherwise a follow-up PR. 4. **cosmos/chain-registry:** `type_asset: cw20`, `base`/`denom` `cw20:<address>`, image, **no** invented `coingecko_id` for this Terra USDT unless CoinGecko already maps this exact contract (do not reuse `tether` blindly). 5. **catalog.json:** add the USDT token row with `issue` = this issue. Leave owned Keplr/Llama surfaces on #629/#631 (`do_not_reopen`). 6. **Verify target:** `make verify-issue-<id>` — schema, LCD match fixture or recorded golden from step 1, gems still excluded, USDT present in Keplr + Hexxagon packs. 7. **Upstream PRs** from a human/agent GitHub account, not CI. ## Given / When / Then - **Given** columbus-5 LCD reports `token_info` for `terra1z0xe7t5ymmltg4vju8tghkq0pewy4et548ta23nlu9zxtl950uyqkv8mv4` as a CW20 whose symbol is USDT (decimals matching the tokenlist), - **When** the listing packs above include that contract (Keplr JSON + Hexxagon fragment + chain-registry asset) with LCD-equal metadata and `USDT.png`, - **Then** `make verify-issue-<id>` is green, gems remain excluded, and an operator can open/update the three agentic upstream PRs without touching Cosmostation, Trust Wallet, or [#1221](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1221) ops. ## Acceptance criteria - [ ] **AC1.** LCD probe recorded in the PR: `code_id`, `name`, `symbol`, `decimals` for `terra1z0xe7…`. If LCD fails or symbol is not USDT, no registry JSON is merged. - [ ] **AC2.** Keplr pack contains a JSON file named after that contract; `metadata` equals LCD `token_info`; image is the in-repo USDT PNG. - [ ] **AC3.** Hexxagon `terra.fragment.json` includes one USDT object (contract, decimals, image) and does not duplicate USTR or add gems. - [ ] **AC4.** cosmos/chain-registry pack (or documented equivalent) adds `cw20:<address>` for this token only; no invented CoinGecko id. - [ ] **AC5.** `docs/listings/catalog.json` lists USDT with this issue id. Permanent six rows unchanged. L639-2 exception documented in `docs/listings/README.md`. - [ ] **AC6.** `make verify-issue-629` (and existing 640/641/639 targets if still present) stay green. New `make verify-issue-<id>` covers USDT schema + gem exclusion. - [ ] **AC7.** No CI job opens GitHub PRs. No Cosmostation PR. No Trust Wallet PR. No factory/LP/bridge txs. - [ ] **AC8.** DEX Swap UI, indexer APIs, and CG/CMC forms are unchanged. ## Test plan (functional paths) | # | Path | Expect | |---|------|--------| | T1 | LCD `token_info` for `terra1z0xe7…` | Symbol USDT; decimals 18 or documented LCD value; used as JSON source | | T2 | Keplr JSON round-trip vs LCD | Exact name/symbol/decimals | | T3 | Hexxagon fragment parse | USDT present; USTR still once; no gems | | T4 | chain-registry fragment | `type_asset: cw20`, denom `cw20:terra1z0xe7…` | | T5 | `make verify-issue-<id>` | Pass | | T6 | `make verify-issue-629` | Still 6/6 (or current count) plus no regression from extra token in shared catalog helpers | | T7 | catalog.json tokens | USDT + original six; ALPHA/USTRIX/SpaceUSD/gems still absent | | T8 | Logo bytes | Pack images match `tokenlist/images/USDT.png` | ## Test plan (attack, hack, and abuse) Wallet **registry metadata** only (no signing, wasm execute, or 2-of-3). Not a DeFi drain suite. | # | Vector | Expect | |---|--------|--------| | A1 | Register a lookalike CW20 from tokenlist (SpaceUSD, vFDUSD, UST1) as USDT | Forbidden | | A2 | Register `#562` gem or ALPHA/USTRIX | Forbidden | | A3 | Keplr metadata with marketing name ≠ LCD | Fail verify (same class as cLUNC #629 CI) | | A4 | BSC Tether `0x` or IBC denom in Terra CW20 slot | Forbidden | | A5 | Invented `coingecko_id: tether` on Classic CW20 | Omit unless CG maps this exact contract | | A6 | CI GitHub token opening upstream PRs | No such job (**L639-7**) | | A7 | Image from arbitrary URL | Use in-repo PNG only | ## Verification criteria - `make verify-issue-<id>` green locally (schema + gem exclude + USDT present). - LCD curl (public LCD) matches committed Keplr JSON. - Existing `make verify-issue-629` / listing verifies still pass. - Manual: Keplr pack path + Hexxagon fragment reviewed; operator can point GitHub PRs at those files. - No Coolify, factory, or treasury steps. ## Out of scope - Bridging more USDT, factory whitelist, `CreatePair`, CMM LP ([#1221](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1221)). - Keplr USD price / CoinGecko platform for this CW20 ([#629](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/629) Job 2). - CG/CMC/GeckoTerminal/Paprika token or exchange forms ([#643](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/643)–[#648](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/648)). - Trust Wallet paid merge ([#649](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/649)). - Cosmostation `chainlist` (archived). - DEX frontend picker, indexer `/cg` `/cmc`, IBC USDC ([#1220](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1220)). - Expanding #629’s permanent-six Keplr job to absorb USDT. ## First-pass model recommendation Recommendation: grok-high Composer fails several intake criteria: more than three production files (Keplr pack, Hexxagon fragment, chain-registry pack, `catalog.json`, listings README, skills, verify target); more than one subsystem (three wallet registries plus catalog invariant **L639-2**); live LCD `token_info` must match before JSON is safe (Keplr CI already rejected marketing names on #629); token identity in third-party wallets is not a local one-file known edit. Verification is pack + LCD golden + existing listing make targets, not a single deterministic helper. First pass should keep #1221 ops and paid/archived venues out of the diff.
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#1260
No description provided.