Feature request: get CL8Y ecosystem CW20s recognized (and priced) in Keplr #629

Closed
opened 2026-08-24 22:18:59 +00:00 by leonardocolucci · 21 comments
leonardocolucci commented 2026-08-24 22:18:59 +00:00 (Migrated from gitlab.com)

Summary

Multiple community members are asking why CL8Y and the CL8Y DEX assets don't show a name, logo, or USD price in Keplr — they currently appear as manually-imported, unnamed CW20 contracts. Request: pursue proper Keplr recognition for the ecosystem's permanent CW20 tokens, and scope the price-display path separately.

Two separable jobs — the first is actionable now, the second has a known blocker.

Job 1 — Keplr recognition (name + logo): actionable now

Keplr maintains a public CW20 contract registry (chainapsis/keplr-contract-registry). Submitting there gives a token a proper name/symbol/logo in Keplr's Add Token list instead of a bare contract address. Structure (verified against the registry README):

cosmos/terra/tokens/<contract-address>.json
images/terra/<symbol>.png
{ "contractAddress": "terra1…",
  "imageUrl": "https://raw.githubusercontent.com/chainapsis/keplr-contract-registry/main/images/terra/<symbol>.png",
  "metadata": { "name": "CL8Y", "symbol": "CL8Y", "decimals": 18 } }

Permanent economic assets to register (test gems excluded), addresses from the indexer:

Token Decimals Contract
CL8Y 18 terra16wtml2q66g82fdkx66tap0qjkahqwp4lwq3ngtygacg5q0kzycgqvhpax3
UST1 6 terra1f0eqgy9w7e5e7up97vjudqwx38tesf8ylx75x2lv3nwm0clry0pqmgfy72
USTR 18 terra1vy3kc0swag2rhn7jz6n72jp0l2ns0p6r6ez5grxq5uhj2rvs97fqfsetxv
cLUNC 6 terra1437qslye72t7qmmahn4t5chz50r8a62g45phwkquwpyu2l62u6ksqssgdg
cUSTC 6 terra1nap4dxh9tv35v0ynd9m4k6zt6c0dq6weszc4j5m564kjls56hu7qcr56ch
vFDUSD (to confirm) UST1-window mint asset — address to confirm

Open item: confirm Keplr's registry currently accepts a terra (columbus-5) chain directory — the README examples are Juno/Secret; Terra Classic support should be checked before submitting.

Job 2 — USD price display: known blocker

Recognition alone does not give a price. Verified points:

  • Keplr's CW20 contract-registry schema has no price, coinGeckoId, priceUrl, oracle, or marketId field.
  • Keplr obtains asset prices via coinGeckoId in its chain registry (and still uses CoinGecko for portfolio pricing in 2026).
  • CL8Y is listed on CoinGecko as CeramicLiberty.com (id ceramicliberty-com, ~$0.55), but CoinGecko maps that id to the BSC contract only (0x8f45…9048d2) — not the Terra Classic CW20. The other CMM assets (UST1, USTR, cLUNC, cUSTC) appear to have no CoinGecko listing.

So a native USD figure in Keplr for the Terra Classic CL8Y needs one of:

  • (a) CoinGecko to add the Terra Classic CW20 as an additional platform under ceramicliberty-com, and Keplr to associate that coinGeckoId with the CW20 — which the public CW20 submission format doesn't currently expose; or
  • (b) Keplr to add a price mechanism for CW20s (priceUrl/oracle).

Note: the CL8Y indexer already serves its own price oracle (/api/v1/oracle/price, /api/v1/hub-prices) that could be offered to Keplr/aggregators as a source, and would also cover the CMM assets that CoinGecko doesn't list.

Ask

  1. Submit the recognition PR to keplr-contract-registry for the permanent CW20 assets (Job 1).
  2. Decide the price path (Job 2): extend the CoinGecko ceramicliberty-com listing to the Terra Classic contract and/or raise CW20 price support (coinGeckoId or priceUrl) with Keplr.
## Summary Multiple community members are asking why CL8Y and the CL8Y DEX assets don't show a name, logo, or USD price in Keplr — they currently appear as manually-imported, unnamed CW20 contracts. Request: pursue proper Keplr recognition for the ecosystem's permanent CW20 tokens, and scope the price-display path separately. Two separable jobs — the first is actionable now, the second has a known blocker. ## Job 1 — Keplr recognition (name + logo): actionable now Keplr maintains a public CW20 contract registry ([chainapsis/keplr-contract-registry](https://github.com/chainapsis/keplr-contract-registry)). Submitting there gives a token a proper name/symbol/logo in Keplr's **Add Token** list instead of a bare contract address. Structure (verified against the registry README): ``` cosmos/terra/tokens/<contract-address>.json images/terra/<symbol>.png ``` ```json { "contractAddress": "terra1…", "imageUrl": "https://raw.githubusercontent.com/chainapsis/keplr-contract-registry/main/images/terra/<symbol>.png", "metadata": { "name": "CL8Y", "symbol": "CL8Y", "decimals": 18 } } ``` Permanent economic assets to register (test gems excluded), addresses from the indexer: | Token | Decimals | Contract | |---|---|---| | CL8Y | 18 | `terra16wtml2q66g82fdkx66tap0qjkahqwp4lwq3ngtygacg5q0kzycgqvhpax3` | | UST1 | 6 | `terra1f0eqgy9w7e5e7up97vjudqwx38tesf8ylx75x2lv3nwm0clry0pqmgfy72` | | USTR | 18 | `terra1vy3kc0swag2rhn7jz6n72jp0l2ns0p6r6ez5grxq5uhj2rvs97fqfsetxv` | | cLUNC | 6 | `terra1437qslye72t7qmmahn4t5chz50r8a62g45phwkquwpyu2l62u6ksqssgdg` | | cUSTC | 6 | `terra1nap4dxh9tv35v0ynd9m4k6zt6c0dq6weszc4j5m564kjls56hu7qcr56ch` | | vFDUSD | (to confirm) | UST1-window mint asset — address to confirm | Open item: confirm Keplr's registry currently accepts a `terra` (columbus-5) chain directory — the README examples are Juno/Secret; Terra Classic support should be checked before submitting. ## Job 2 — USD price display: known blocker Recognition alone does **not** give a price. Verified points: - Keplr's CW20 contract-registry schema has **no** `price`, `coinGeckoId`, `priceUrl`, `oracle`, or `marketId` field. - Keplr obtains asset prices via `coinGeckoId` in its **chain** registry (and still uses CoinGecko for portfolio pricing in 2026). - **CL8Y is listed on CoinGecko** as *CeramicLiberty.com* (id `ceramicliberty-com`, ~$0.55), **but CoinGecko maps that id to the BSC contract only** (`0x8f45…9048d2`) — not the Terra Classic CW20. The other CMM assets (UST1, USTR, cLUNC, cUSTC) appear to have no CoinGecko listing. So a native USD figure in Keplr for the Terra Classic CL8Y needs one of: - **(a)** CoinGecko to add the Terra Classic CW20 as an additional platform under `ceramicliberty-com`, **and** Keplr to associate that coinGeckoId with the CW20 — which the public CW20 submission format doesn't currently expose; or - **(b)** Keplr to add a price mechanism for CW20s (priceUrl/oracle). Note: the CL8Y indexer already serves its own price oracle (`/api/v1/oracle/price`, `/api/v1/hub-prices`) that could be offered to Keplr/aggregators as a source, and would also cover the CMM assets that CoinGecko doesn't list. ## Ask 1. Submit the recognition PR to keplr-contract-registry for the permanent CW20 assets (Job 1). 2. Decide the price path (Job 2): extend the CoinGecko `ceramicliberty-com` listing to the Terra Classic contract and/or raise CW20 price support (coinGeckoId or priceUrl) with Keplr.
PlasticDigits commented 2026-08-25 01:55:34 +00:00 (Migrated from gitlab.com)

mentioned in issue #631

mentioned in issue #631
PlasticDigits commented 2026-08-25 01:55:39 +00:00 (Migrated from gitlab.com)

marked as related to #631

marked as related to #631
PlasticDigits commented 2026-08-25 05:54:25 +00:00 (Migrated from gitlab.com)

mentioned in merge request !1139

mentioned in merge request !1139
PlasticDigits commented 2026-08-25 05:55:23 +00:00 (Migrated from gitlab.com)

mentioned in merge request !1140

mentioned in merge request !1140
PlasticDigits commented 2026-08-25 05:55:35 +00:00 (Migrated from gitlab.com)

Implementation note

In-repo Job 1 pack + Job 2 decision landed on issue-629-keplr-cw20-registry: !1140

Findings

  • Keplr already has cosmos/columbus (columbus-5). Do not submit under terra or phoenix.
  • USTR is already registered as USTC Repeg (18 decimals).
  • Live columbus tokens already use coinGeckoId (README omitted it).
  • vFDUSD is terra1mnl9azefrqpmu888ar2u6zrcwr80hxlt3avf4300r576cw5ar7esvxsvj3, 6 decimals.
  • tokenlist CL8Y decimals were wrong (6); corrected to on-chain 18.

Still operator-owned

  • Open the GitHub PR against keplr-contract-registry via ./scripts/qa/export-keplr-cw20-pack.sh.
  • Ask CoinGecko to add the Terra Classic CW20 under ceramicliberty-com (still BSC-only).

Verify: make verify-issue-629

## Implementation note In-repo Job 1 pack + Job 2 decision landed on `issue-629-keplr-cw20-registry`: !1140 **Findings** - Keplr already has `cosmos/columbus` (`columbus-5`). Do not submit under `terra` or `phoenix`. - **USTR is already registered** as USTC Repeg (18 decimals). - Live columbus tokens already use `coinGeckoId` (README omitted it). - vFDUSD is `terra1mnl9azefrqpmu888ar2u6zrcwr80hxlt3avf4300r576cw5ar7esvxsvj3`, 6 decimals. - tokenlist CL8Y decimals were wrong (`6`); corrected to on-chain **18**. **Still operator-owned** - Open the GitHub PR against [keplr-contract-registry](https://github.com/chainapsis/keplr-contract-registry) via `./scripts/qa/export-keplr-cw20-pack.sh`. - Ask CoinGecko to add the Terra Classic CW20 under `ceramicliberty-com` (still BSC-only). Verify: `make verify-issue-629`
PlasticDigits commented 2026-08-25 06:07:39 +00:00 (Migrated from gitlab.com)

Job 1 upstream PR is open: https://github.com/chainapsis/keplr-contract-registry/pull/132

Adds CL8Y, UST1, cLUNC, cUSTC, vFDUSD under cosmos/columbus. USTR left as the existing USTC Repeg listing.

Job 1 upstream PR is open: https://github.com/chainapsis/keplr-contract-registry/pull/132 Adds CL8Y, UST1, cLUNC, cUSTC, vFDUSD under `cosmos/columbus`. USTR left as the existing USTC Repeg listing.
PlasticDigits commented 2026-08-25 06:09:48 +00:00 (Migrated from gitlab.com)

mentioned in commit 05451b201f

mentioned in commit 05451b201f40410c3624dc5d2386f5e1e7a76ded
PlasticDigits commented 2026-08-25 06:18:08 +00:00 (Migrated from gitlab.com)

mentioned in commit 81d3915141

mentioned in commit 81d391514112810539da60ab4c602b1d39ae90f6
PlasticDigits commented 2026-08-25 06:29:19 +00:00 (Migrated from gitlab.com)

!1140 merged to main (81d39151) without waiting for CI. make verify-issue-629 6/6 on the conflict-resolved tip (K629-1–K629-8 pack + Vitest + export omits live USTR).

Still open (not in this MR):

  • Operator: open the GitHub PR against keplr-contract-registry from ./scripts/qa/export-keplr-cw20-pack.sh (export uses cosmos/columbus).
  • After Keplr merge: Add Token search for CL8Y / UST1 / cLUNC / cUSTC / vFDUSD.
  • Job 2: CoinGecko still maps ceramicliberty-com to BSC only. Do not invent price/oracle fields on the CW20 JSON.

Tracked on the post-merge leftover issue from the !1140/!1142/!1143/!1144/!1145 merge pass.

!1140 merged to `main` (`81d39151`) without waiting for CI. `make verify-issue-629` **6/6** on the conflict-resolved tip (K629-1–K629-8 pack + Vitest + export omits live USTR). **Still open (not in this MR):** - Operator: open the GitHub PR against [keplr-contract-registry](https://github.com/chainapsis/keplr-contract-registry) from `./scripts/qa/export-keplr-cw20-pack.sh` (export uses `cosmos/columbus`). - After Keplr merge: Add Token search for CL8Y / UST1 / cLUNC / cUSTC / vFDUSD. - Job 2: CoinGecko still maps `ceramicliberty-com` to BSC only. Do not invent price/oracle fields on the CW20 JSON. Tracked on the post-merge leftover issue from the !1140/!1142/!1143/!1144/!1145 merge pass.
PlasticDigits commented 2026-08-25 06:29:43 +00:00 (Migrated from gitlab.com)

mentioned in issue #638

mentioned in issue #638
PlasticDigits commented 2026-08-25 06:29:44 +00:00 (Migrated from gitlab.com)

marked as related to #638

marked as related to #638
PlasticDigits commented 2026-08-25 06:29:54 +00:00 (Migrated from gitlab.com)

Post-merge leftovers for the !1140/!1142/!1143/!1144/!1145 pass: #638.

Post-merge leftovers for the !1140/!1142/!1143/!1144/!1145 pass: #638.
PlasticDigits commented 2026-08-25 06:54:25 +00:00 (Migrated from gitlab.com)

mentioned in issue #639

mentioned in issue #639
PlasticDigits commented 2026-08-25 06:54:26 +00:00 (Migrated from gitlab.com)

marked as related to #639

marked as related to #639
PlasticDigits commented 2026-08-25 07:09:01 +00:00 (Migrated from gitlab.com)

mentioned in issue #640

mentioned in issue #640
PlasticDigits commented 2026-08-25 07:09:21 +00:00 (Migrated from gitlab.com)

mentioned in issue #641

mentioned in issue #641
PlasticDigits commented 2026-08-26 01:40:33 +00:00 (Migrated from gitlab.com)

Keplr PR #132 CI

Pull Request Contract Validation failed because yarn validate:token requires JSON metadata to equal on-chain token_info.

First failure: cLUNC JSON Wrapped Luna Classic vs LCD Wrapped LUNC.

Pushed a fix on the fork: https://github.com/chainapsis/keplr-contract-registry/pull/132

Also aligned cUSTC (Wrapped USTC) and CL8Y (CeramicLiberty.com CL8Y.com/bridge / CL8Y-cb). Standard CW20 10184 cannot rename without a migrate. Keplr Add Token will show those on-chain strings until a future token-info change.

## Keplr PR #132 CI `Pull Request Contract Validation` failed because `yarn validate:token` requires JSON `metadata` to equal on-chain `token_info`. First failure: cLUNC JSON `Wrapped Luna Classic` vs LCD `Wrapped LUNC`. Pushed a fix on the fork: https://github.com/chainapsis/keplr-contract-registry/pull/132 Also aligned cUSTC (`Wrapped USTC`) and CL8Y (`CeramicLiberty.com CL8Y.com/bridge` / `CL8Y-cb`). Standard CW20 10184 cannot rename without a migrate. Keplr Add Token will show those on-chain strings until a future token-info change.
PlasticDigits commented 2026-08-27 01:00:19 +00:00 (Migrated from gitlab.com)

mentioned in issue #682

mentioned in issue #682
PlasticDigits commented 2026-08-27 01:00:29 +00:00 (Migrated from gitlab.com)

mentioned in issue #683

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

Agentic ops pass 2026-08-27

In-repo Job 1 pack is still green. Remaining work is upstream merge + CoinGecko platform, not Coolify or columbus-5 txs.

Ran this pass

  • make verify-issue-629 → 6/6 (pack schema, Vitest catalog↔JSON, export omits live USTR, docs K629-1–K629-8). No LocalTerra / indexer / Coolify.
  • LCD token_info (publicnode) matches the GitHub PR metadata, not the in-repo marketing names:
Token LCD name / symbol / decimals
CL8Y CeramicLiberty.com CL8Y.com/bridge / CL8Y-cb / 18
UST1 UST1 / UST1 / 6
USTR USTC Repeg / USTR / 18 (already live)
cLUNC Wrapped LUNC / cLUNC / 6
cUSTC Wrapped USTC / cUSTC / 6
vFDUSD Venus FDUSD (bridged) / vFDUSD / 6
  • CoinGecko GET /api/v3/coins/ceramicliberty-com → platforms still binance-smart-chain only (0x8f452a1fdd388a45e1080992eff051b4dd9048d2). No terra platform.

Job 1 — Keplr recognition (operator)

Upstream PR still OPEN: https://github.com/chainapsis/keplr-contract-registry/pull/132 (PlasticDigits:add/cl8y-ecosystem-columbus, mergeable, last push 2026-08-26).

Socket checks are green. Required Pull Request Validation is awaiting a Keplr maintainer to Approve and run workflows (fork first-time contributor gate):

https://github.com/chainapsis/keplr-contract-registry/actions/runs/32919862930

Recent columbus CW20 merges on that repo were by KamaIOps (e.g. #124 KNEEL, #131 Axiome). No CODEOWNERS. No review requested yet.

Do not re-export from this repo onto that PR. In-repo JSON still uses marketing names (CL8Y / Wrapped Luna Classic / Wrapped TerraClassicUSD); the live PR already matches LCD so yarn validate:token can pass. Re-copying ./scripts/qa/export-keplr-cw20-pack.sh would revert that CI fix. Aligning the in-repo catalog is a follow-up MR, not a merge blocker.

After they merge: Keplr → Terra Classic → Add Token → search CL8Y / UST1 / cLUNC / cUSTC / vFDUSD. Expect on-chain strings (CL8Y-cb, Wrapped LUNC, Wrapped USTC). USTR stays USTC Repeg. Missing USD is not a Job 1 failure.

Job 2 — USD (human form)

Still blocked until CoinGecko adds the columbus-5 CW20 under existing id ceramicliberty-com (do not invent a second id; do not add price/oracle on the Keplr JSON).

Form: https://partner.coingecko.com/request-form/new → Update coin / add contract
Coin page: https://www.coingecko.com/en/coins/ceramicliberty-com
CW20: terra16wtml2q66g82fdkx66tap0qjkahqwp4lwq3ngtygacg5q0kzycgqvhpax3 (18 decimals)
Draft: docs/listings/forms/coingecko-terra-classic-platform.md

No Coolify env, indexer deploy, or chain transaction for this ticket.

## Agentic ops pass 2026-08-27 In-repo Job 1 pack is still green. Remaining work is **upstream merge + CoinGecko platform**, not Coolify or columbus-5 txs. ### Ran this pass - `make verify-issue-629` → **6/6** (pack schema, Vitest catalog↔JSON, export omits live USTR, docs K629-1–K629-8). No LocalTerra / indexer / Coolify. - LCD `token_info` (publicnode) matches the GitHub PR metadata, not the in-repo marketing names: | Token | LCD name / symbol / decimals | |-------|------------------------------| | CL8Y | `CeramicLiberty.com CL8Y.com/bridge` / `CL8Y-cb` / 18 | | UST1 | UST1 / UST1 / 6 | | USTR | USTC Repeg / USTR / 18 (already live) | | cLUNC | Wrapped LUNC / cLUNC / 6 | | cUSTC | Wrapped USTC / cUSTC / 6 | | vFDUSD | Venus FDUSD (bridged) / vFDUSD / 6 | - CoinGecko `GET /api/v3/coins/ceramicliberty-com` → platforms still **`binance-smart-chain` only** (`0x8f452a1fdd388a45e1080992eff051b4dd9048d2`). No `terra` platform. ### Job 1 — Keplr recognition (operator) Upstream PR still **OPEN**: https://github.com/chainapsis/keplr-contract-registry/pull/132 (`PlasticDigits:add/cl8y-ecosystem-columbus`, mergeable, last push 2026-08-26). Socket checks are green. Required **Pull Request Validation** is **awaiting a Keplr maintainer to Approve and run workflows** (fork first-time contributor gate): https://github.com/chainapsis/keplr-contract-registry/actions/runs/32919862930 Recent columbus CW20 merges on that repo were by `KamaIOps` (e.g. #124 KNEEL, #131 Axiome). No CODEOWNERS. No review requested yet. **Do not re-export** from this repo onto that PR. In-repo JSON still uses marketing names (`CL8Y` / `Wrapped Luna Classic` / `Wrapped TerraClassicUSD`); the live PR already matches LCD so `yarn validate:token` can pass. Re-copying `./scripts/qa/export-keplr-cw20-pack.sh` would revert that CI fix. Aligning the in-repo catalog is a follow-up MR, not a merge blocker. After they merge: Keplr → Terra Classic → Add Token → search CL8Y / UST1 / cLUNC / cUSTC / vFDUSD. Expect **on-chain** strings (CL8Y-cb, Wrapped LUNC, Wrapped USTC). USTR stays **USTC Repeg**. Missing USD is not a Job 1 failure. ### Job 2 — USD (human form) Still blocked until CoinGecko adds the columbus-5 CW20 under existing id `ceramicliberty-com` (do **not** invent a second id; do **not** add `price`/`oracle` on the Keplr JSON). Form: https://partner.coingecko.com/request-form/new → Update coin / add contract Coin page: https://www.coingecko.com/en/coins/ceramicliberty-com CW20: `terra16wtml2q66g82fdkx66tap0qjkahqwp4lwq3ngtygacg5q0kzycgqvhpax3` (18 decimals) Draft: `docs/listings/forms/coingecko-terra-classic-platform.md` No Coolify env, indexer deploy, or chain transaction for this ticket.

Verified 2026-09-24 against current upstream and the origin/main worktree:

  • make verify-issue-629: 6/6; focused Vitest: 7/7.
  • Upstream keplr-contract-registry#132 merged on 2026-09-04. The five new cosmos/columbus entries are present; USTR remains USTC Repeg. K629-9 documents that merged upstream metadata is authoritative and the local pre-merge snapshot must not overwrite it.
  • CoinGecko still maps ceramicliberty-com to BNB Chain only. Job 2 stays on #644, child of #639.

Human follow-ups are queued in the cl8y-pm inbox: Keplr Add Token visual check (e0836281-e32d-41e0-9ec2-983a20e8bae4) and CoinGecko form submit (69fb425c-62ac-474d-bb68-c3b7c1c479ee). No transaction or signature is needed.

Closing #629 for the merged registry recognition. The local verifier does not launch the live Keplr extension.

Verified 2026-09-24 against current upstream and the `origin/main` worktree: - `make verify-issue-629`: **6/6**; focused Vitest: **7/7**. - Upstream [keplr-contract-registry#132](https://github.com/chainapsis/keplr-contract-registry/pull/132) merged on 2026-09-04. The five new `cosmos/columbus` entries are present; USTR remains **USTC Repeg**. K629-9 documents that merged upstream metadata is authoritative and the local pre-merge snapshot must not overwrite it. - CoinGecko still maps `ceramicliberty-com` to BNB Chain only. Job 2 stays on [#644](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/644), child of [#639](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/639). Human follow-ups are queued in the [cl8y-pm inbox](https://pm.cl8y.com/inbox): Keplr Add Token visual check (`e0836281-e32d-41e0-9ec2-983a20e8bae4`) and CoinGecko form submit (`69fb425c-62ac-474d-bb68-c3b7c1c479ee`). No transaction or signature is needed. Closing #629 for the merged registry recognition. The local verifier does not launch the live Keplr extension.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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#629
No description provided.