# Icrc metadata inconsistency

**URL:** <https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793>\
**Category:** CDK\
**Created:** [February 2, 2025, 1:37pm UTC](https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793 "2025-02-02T13:37:57Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![aligatorr89](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/aligatorr89/32/7848_2.png) [@aligatorr89](https://forum.dfinity.org/u/aligatorr89)\
**Post date:** [February 2, 2025, 1:37pm UTC](https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793/1 "2025-02-02T13:37:57Z")

</div>

Hi community!

We are trying to integrate ICRC wallets on Taggr.  
Recently `icrc1_metadata` has been changed on some ledger canisters. It’s missing logo parameter. Do you know how to find logo, for example on CHAT ledger canister ?

- [https://dashboard.internetcomputer.org/canister/oj6if-riaaa-aaaaq-aaeha-cai#icrc1\_metadata](https://dashboard.internetcomputer.org/canister/oj6if-riaaa-aaaaq-aaeha-cai#icrc1_metadata)

Examples with metadata containing logo:

- [https://dashboard.internetcomputer.org/canister/6qfxa-ryaaa-aaaai-qbhsq-cai#icrc1\_metadata](https://dashboard.internetcomputer.org/canister/6qfxa-ryaaa-aaaai-qbhsq-cai#icrc1_metadata)

- [https://dashboard.internetcomputer.org/canister/ca6gz-lqaaa-aaaaq-aacwa-cai#icrc1\_metadata](https://dashboard.internetcomputer.org/canister/ca6gz-lqaaa-aaaaq-aacwa-cai#icrc1_metadata)

---

<div class="post-metadata">

**Author:** ![peterparker](https://avatars.discourse-cdn.com/v4/letter/p/b9bd4f/32.png) [@peterparker](https://forum.dfinity.org/u/peterparker)\
**Post date:** [February 2, 2025, 1:57pm UTC](https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793/2 "2025-02-02T13:57:37Z")

</div>

~~Wow!~~ Indeed, I just had a look, and I’m unable to fetch the logos for OC, Ghost, Yarl, Kinic, Yuku, Motoko, Alice, Gold, Catalyze and Boom logos through the [SNS Aggregator](https://3r4gx-wqaaa-aaaaq-aaaia-cai.icp0.io/) which periodically retrieves information from the related SNS. I’ll ask the team if this is expected.

Meanwhile, if you just need logos, the images, you can find them in OISY’s [repo](https://github.com/dfinity/oisy-wallet/tree/main/src/frontend/static/icons/sns), for example. We have a job that imports them, but we handle them statically and commit them through PRs, which is why they are still there.

**Update** : it’s expected 👉 [Icrc metadata inconsistency - #5 by aterga](https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793/5)

---

<div class="post-metadata">

**Author:** ![aligatorr89](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/aligatorr89/32/7848_2.png) [@aligatorr89](https://forum.dfinity.org/u/aligatorr89)\
**Post date:** [February 2, 2025, 5:19pm UTC](https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793/3 "2025-02-02T17:19:28Z")

</div>

Thanks @peterparker . As a workaround i added a fallback to icpSwap api [https://wqfao-piaaa-aaaag-qj5ba-cai.raw.icp0.io/cngnf-vqaaa-aaaar-qag4q-cai](https://wqfao-piaaa-aaaag-qj5ba-cai.raw.icp0.io/cngnf-vqaaa-aaaar-qag4q-cai)

---

<div class="post-metadata">

**Author:** ![mathiasb](https://avatars.discourse-cdn.com/v4/letter/m/f475e1/32.png) [@mathiasb](https://forum.dfinity.org/u/mathiasb)\
**Post date:** [February 3, 2025, 7:46am UTC](https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793/4 "2025-02-03T07:46:17Z")

</div>

IIUC, when [updating the ledger state](https://github.com/dfinity/ic/blob/c5e098e8cc8e62249e6d7f4ed09e6c2ed87fc800/rs/ledger_suite/icrc1/ledger/src/lib.rs#L859-L864) from the `post_upgrade`, if any metadata is set in the `UpgradeArgs`, then the existing metadata is replaced by whatever is set in the `UpgradeArgs`. This is also the case when using a `ManageLedgerParameters` proposal for SNSs, where the metadata in the `LedgerUpgradeArgs` is [constructed](https://github.com/dfinity/ic/blob/c5e098e8cc8e62249e6d7f4ed09e6c2ed87fc800/rs/sns/governance/src/types.rs#L1909-L1930) using only the provided parameters (in particular, existing metadata which is not modified in the proposal is not set to the current metadata values in the ledger), which would then overwrite the metadata in the ledger. So I’m wondering if the flow for the aforementioned ledgers may have been something like the following:

1. The logo is set, either initially or in a subsequent ledger canister upgrade
2. Some other metadata parameters are changed, e.g., in a `ManageLedgerParameters` proposal, but the logo is not (re)specified, leading to it being removed/not set

---

<div class="post-metadata">

**Author:** ![aterga](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/aterga/32/4143_2.png) [@aterga](https://forum.dfinity.org/u/aterga)\
**Post date:** [February 3, 2025, 1:59pm UTC](https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793/5 "2025-02-03T13:59:01Z")

</div>

Hi @aligatorr89,

It seems that some SNSs unset their ledger logo by adopting either a “Manage SNS metadata” or a “Manage ledger parameters” proposal.

I’ll bring this up with the Governance team to make sure we agree this is a bug, in which case we’ll propose a fix for it in the next week or so.

In the meantime, we recommend all SNSs without a logo to **submit a Manage ledger parameters** proposal to set just the logo; it’s safe to omit other fields as (unlike the ledger logo, they won’t be overwritten unless explicitly specified).

PS. OpenChat is a different case. We think many old SNSs simply never have set a _ledger_ logo, as they were launched before the new “1-proposal” SNS initialization flow, and never explicitly proposed a ledger logo (all frontends had to fall back to fetch their SNS’s main logo anyway). However, if you notice evidence that some SNS launched via the 1-proposal flow (i.e., using a CreateServiceNervousSystem NNS proposal), did not overwrite their ledger logo using “Manage SNS metadata” or “Manage ledger parameters”, and currently don’t have a ledger logo, then please let us know!

---

<div class="post-metadata">

**Author:** ![aligatorr89](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/aligatorr89/32/7848_2.png) [@aligatorr89](https://forum.dfinity.org/u/aligatorr89)\
**Post date:** [February 4, 2025, 5:44pm UTC](https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793/6 "2025-02-04T17:44:31Z")

</div>

Thanks @aterga,  
I think logo is a required attribute based on documentation. But it is least important for the wallet integration, and we can use other sources to obtain it.  
Most important attributes are

- name, symbol
- decimals (very sensitive and important to have correct)
- fee

These cannot be accidentally unset.

---

<div class="post-metadata">

**Author:** ![aligatorr89](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/aligatorr89/32/7848_2.png) [@aligatorr89](https://forum.dfinity.org/u/aligatorr89)\
**Post date:** [February 5, 2025, 8:55am UTC](https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793/7 "2025-02-05T08:55:03Z")

</div>

Thank you all for support! You created great ecosystem to build on.

---

<div class="post-metadata">

**Author:** ![aligatorr89](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/aligatorr89/32/7848_2.png) [@aligatorr89](https://forum.dfinity.org/u/aligatorr89)\
**Post date:** [February 5, 2025, 8:56am UTC](https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793/8 "2025-02-05T08:56:21Z")

</div>

Most important parameters are always set, which is all that matters. Thanks @peterparker !

---

<div class="post-metadata">

**Author:** ![aterga](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/aterga/32/4143_2.png) [@aterga](https://forum.dfinity.org/u/aterga)\
**Post date:** [February 5, 2025, 9:37am UTC](https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793/9 "2025-02-05T09:37:16Z")

</div>

> [@aligatorr89](#):
>
> I think logo is a required attribute based on documentation

Yes, currently it is. Although, when, e.g., OpenChat was launched, the process and the requirements were a bit different - that’s why they never had to set the Ledger logo, I think.

> [@aligatorr89](#):
>
> These cannot be accidentally unset.

I agree, and the fix for the ledger logo being sometimes unset is in the makings.

---

<div class="post-metadata">

**Author:** ![aterga](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/aterga/32/4143_2.png) [@aterga](https://forum.dfinity.org/u/aterga)\
**Post date:** [February 13, 2025, 10:13am UTC](https://forum.dfinity.org/t/icrc-metadata-inconsistency/40793/10 "2025-02-13T10:13:54Z")

</div>

> [@aterga](#):
>
> the ledger logo being sometimes unset is in the makings.

Fixed in [https://dashboard.internetcomputer.org/proposal/135208](https://dashboard.internetcomputer.org/proposal/135208)
