Update token logo after mint

Is there a way to update the token logo after its been minted? The policy should refer to a url for the image. can we maybe change the image on the url? or update something in the cardano registry to assign a new image?

I believe u can’t … only to burn the tokens (if the policy is not locked) and mint another tokens with the new image

U can’t upload a new image with the same CID on IPFS server

Cheers,

1 Like

Are we talking about fungible tokens or about NFTs?

The metadata.json with the "721" key is actually only meant for NFTs. A lot of projects misuse it to give data for their fungible tokens, but that leads, for example, to Nami categorising them as collectibles instead of assets, because the developer of Nami chose to interepret these standards very literally.

As long as the policy is not locked, you can mint the same token with the same policy ID and the same asset name again with different metadata and the new metadata will be picked up by wallet apps and pool.pm (also for tokens that are not in your possession, anymore). You can burn these additionally minted tokens afterwards.

If the URL in the metadata is an image on your own web server, you can, of course, exchange that image and wallet apps will eventually pick up the new one (but might keep the old one cached for some time). Be aware that pool.pm (and maybe others) do not support http(s) URLs for images, up to now (they promised to add that sometime).

If the image is on IPFS, you cannot exchange it, because IPFS identifies files by a hash of the content. Another image would have another name/URL in IPFS.

For fungible tokens, you should normally not provide the metadata in an on-chain transaction with a metadata.json, but by a pull request to the Cardano Token Registry. It should be possible to update this by a new pull request anytime.

Thank you for the quick response. I am ok with having to remint for the
logo update. As far as the CIP or custom fees, Is there a process for
adding that functionality to Cardano native tokens (not NFTs). I think
adding programmable fees as well as other features directly to the token
is needed. I’m assuming for now, I’ll need a smart contract to handle
the fees and have each individual dex work it into their system somehow.
Does that sound right?

Note that you do not have to remint if you use the Cardano Token Registry (https://developers.cardano.org/docs/native-tokens/cardano-token-registry/) instead of on-chain metadata. It really is the supposed way for non-NFTs.

What fees are you talking about? Fees from whom to whom?

I don’t think you can enforce any fees being paid to you even with smart contracts. Once the tokens are out there, they can be freely traded without you having any control over them. That’s the idea.

What I mean by fees are, when buying and selling the coin on exchanges, an 8% fee sent to a specific wallet that can then be dispersed as reflections and charity donations. Not when sending coin to a friend or anything. The idea is that the fee will 1. dissuade pump and dumpers 2. provide incentive to hold via benefits.

There is the royalty CIP for NFTs: https://github.com/cardano-foundation/CIPs/tree/master/CIP-0027
But nothing equivalent for fungible tokens up to now.

It will probably be only voluntarily observed by exchanges, anyway. First, it would be a massive change of the protocol to enforce it. Second, you cannot even distinguish exchange and private transactions by just looking at the blockchain.

This is why we are leaning toward implementing smart contracts that run on the DEX itself that transact the fee every time it’s bought/sold on that exchange.

???

That sentence makes limited sense. DEXes are smart contracts with a pretty website and lots of marketing around them. You would have to convince the DEXes to change their contracts to pay out this fee to you (and other token creators).

That’s the plan. Every other blockchain includes custom tokenomics for creating tokens. Cardano needs the same capabilities. We are going to find the best way to do it and implement it.

As far as I know, the tokens on other blockchains (that’s Ethereum, period, isn’t it?) are not native.

If you write your own ERC-20 compliant smart contract for minting on Ethereum, you can include such functionalities.

On Cardano, most tokens are native. They are implemented by the blockchain itself and do not need any smart contracts at first. This also means, you cannot decide for yourself how to implement functions like transfer, but native Cardano transactions are used.

You could, of course, write an ERC-20-like contract on Cardano (since we use Plutus and not Solidity it will be a reimplementation, not a simple port) instead of using the native token functionality. Then, everyone trading these tokens would have to interact with your contract and you could do this fee thing.

But I wouldn’t bet on that being adopted. Wallet apps and DEXes just care for native tokens up to now, are happy with that, ERC20-like tokens would be a totally different functionality to implement, and there is absolutely no pressure to adopt such contract-based tokens. Yours would be the first or at least one of the first.

If you absolutely must have this, I am not sure if Cardano is even the right blockchain for you.

I disagree. If eth can do it. Cardano should do it better. Plutus contracts can handle custom fees just as well. Either we need to create a CIP for native tokens like we did with NFTs so that DEXs can simply enable the function like done on NFT marketplaces or we need some basic smart contracts available for things like this. We are the first coin trying this on Cardano but we will not be the last. I’m looking for skilled devs to help build this, not tell me how it’s not worth doing.