Skip to content

Take the CoinGecko subnet logo as is, without the name guard - #4437

Closed
stepanLav wants to merge 2 commits into
masterfrom
feat/bittensor-coingecko-logo-without-name-guard
Closed

stepanLav wants to merge 2 commits into
masterfrom
feat/bittensor-coingecko-logo-without-name-guard

Conversation

@stepanLav

Copy link
Copy Markdown
Member

Why

PR #4430 added the CoinGecko coin image as the last logo source but accepted only the generic TAO placeholder from a listing whose coin name did not resemble the on-chain subnet name, so a re-registered netuid would not show its previous owner's logo. Today's bot run refuses a real logo for 12 named subnets because of it: SN5, 16, 29, 31, 35, 42, 57, 59, 70, 84, 86, 99 and 103. SN99 Thirty Spokes is the visible case: no icon in Nova, while Talisman shows the CoinGecko "Neza" image for it.

Talisman (chaindata/scripts/shared/getLogoUrl.ts) falls back to assets/tokens/coingecko/<coingeckoId>.webp by id alone, with no name check. This PR does the same.

What changes

  • scripts/bittensor/update_subnets.py: the CoinGecko candidate is used whatever the coin is called. names_match, the perceptual-hash placeholder detection (dhash, is_tao_placeholder) and the placeholder_only candidate flag are removed. Source order is unchanged: logo-overrides.json, on-chain logo_url, CoinGecko image; a failing source still keeps the previous logo.
  • scripts/bittensor/price_source.py: logos_from_coins maps netuid to the image URL directly, the coin name was only carried for the guard.
  • CLAUDE.md and the module docstring describe the new rule. A stale listing is corrected per subnet in bittensor/v1/logo-overrides.json.

No data change here: bittensor/v1/config.json and the icons are regenerated by the daily workflow (or a manual dispatch) after merge. Expect the three listings #4430 named as stale to show the old owner's logo until overridden: SN5 Hone (OpenKaito), SN16 kenju (BitAds), SN109 Finsight (Taoillium).

Tests

make test-bittensor: 73 passed. The two guard tests now assert the CoinGecko candidate is used for a differently named or unnamed subnet; the name-matching and placeholder-detection tests are removed, one test keeps the placeholder fixture to show it still passes through.

PR #4430 accepted only the TAO placeholder from a CoinGecko listing whose
coin name did not resemble the on-chain subnet name, to keep a previous
owner's logo off a re-registered netuid. That left 12 named subnets
without any icon, SN99 Thirty Spokes among them, while Talisman shows the
CoinGecko image for the same subnets by coingeckoId alone.

Do the same: the CoinGecko image is the third source after the override
file and the on-chain logo_url, taken whatever the coin is called. A
stale listing is corrected per subnet in bittensor/v1/logo-overrides.json.

Removes names_match, the perceptual-hash placeholder detection and the
placeholder_only candidate flag; logos_from_coins maps netuid to the
image URL directly.
@stepanLav stepanLav closed this Oct 19, 2026
(cherry picked from commit c734630)
@stepanLav

Copy link
Copy Markdown
Member Author

Superseded by #4438, which carries the same two commits.

@stepanLav stepanLav closed this Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant