Is there a way to change or modify NFT’s on the cardano blockchain? I read the documentation Discover Native Tokens | Cardano Developer Portal but I didn’t find any hint.
If the policy is not locked (timelock), you can burn a NFT and create a new one with the same policy and the same name, but different properties.
Sure, but not when the token is already transferred to another wallet which is not mine.
The goal should be to transfer 100 token to some people and after a while ten of the token sould change there image. Something like this project: How to Build Dynamic NFTs on Polygon
Yesterday, I did some research and I guess the cardano blockchain isn’t ready yet to handle this until oracle from chainlink is implemented. Cardano Announces Strategic Collaboration To Integrate Chainlink’s Oracles - Chainlink Today
You want to build a lottery?
You are probably right, I don’t think it is possible now.
But I also thought about how to do it, because MELD is going to release some evolving NFTs in the near future. I am very curios what and how they will do this. But I expect they will put you send the NFT to a smart contract address to evolve it, not automatically in your wallet. I guess we will see what happens.
Of course, the thing that is stored in the NFT deep down in the blockchain is and will always be just data that will never change. That’s the idea of a blockchain that it does not change. So, to have dynamics, you have to work with https://pool.pm/ and similar services, so that they display your idea of dynamics specified for this super-non-dynamic data correctly.
Or you just put a link to your own website in the NFT and can there dynamically change the target of that link totally to your liking … or let it rot if you can’t or don’t want to afford the bills for the website anymore. Surprisingly that seems to be, what a lot of NFTs actually do. I don’t know, why people spend real money for that.
If you write: “the thing that is stored in the NFT deep down in the blockchain is and will always be just data that will never change” I absolut agree. But the idea about dynamic NFTs are, that they change it self. So one part of that “never change” data is programming code that change the property of the NFT, triggert by an event. An event could be a point in time or a external request to an api. That’s how I understand dynamic NFT’s.
I also can’t understand how people can spend so much money on NFT but you have to realize, they do it
Yeah, a kind of lottery. The chosen NFTs will have access to a real world event if the show up the “mutated” NFT. Cardano trees seems like something that goes in the right direction and what I’m looking for. Thank you for that link. But I need some programming guide how to do that. Actually I have no idea or glue to set it up like they did.
You are right, self-changing to some degree will probably be available if dApps are sold as NFTs or something like that. Don’t know what of that is possible, now.
Okay, have you thought about the fact that NFTs are basically public and – depending on how desirable entrance to that event is – people could just show a screenshot or a fake wallet with varying level of sophistication? You cannot prove that you, the person standing at an entrance, are the legitimate owner of a specific NFT in the real world, especially not if you use your own device that you could have arbitrarily tinkered with and probably will not want to give to the entrance people for a detailed analysis.
If it’s not that much of a high-stake event, this probably doesn’t matter that much. But if it doesn’t matter that much, you could just write them an e-mail that they can show at the entrance, couldn’t you?
That being said: The easiest way would still be that the image property of the NFTs points to images at your website. Then you can exchange the image for 10 of the 100 NFTs at your decision/revelation time. Nobody would have known before that, which of the 100 are the lucky ones. And maintaining the website until the event should be no problem.
Good point, but you can proof this by scaning the NFT and in this moment it could change a second time. So, you could be aware that it is the original NFT and it belongs to the visitor. Beside this, marketing is everything. It’s even better to apply an event with an NFT instead of an email. Maybe in the past people thought let’s send a letter as something newfangled like an email. Times are changing
Yes, you could at least be sure to see a live view of the NFT. It could still be someone else showing it to you. If they got it from the legitimate owner it’s not a big problem. But they could also have simply found it on the chain.
Might be that this attack vector is too outlandish for your application, but it might be possible.
Depending on your target group, this could backfire. Recently, Ubisoft (Crypto Fans Rejoice, Gamers Revolt as Ubisoft Announces NFT Plans), Kickstarter (https://www.cnbc.com/2021/12/18/web3-kickstarter-and-discord-face-backlash-over-moves-into-crypto.html), and Mozilla (Mozilla pauses accepting crypto donations following backlash - The Verge) all have faced considerable, more or less legitimate backlashes for plans to embrace crypto currencies.
If your event is a crypto conference it’s probably not a big problem.
If it is an event for the general public, the general (and often healthy) skepticism towards crypto currencies as well as the barrier to buy into one specific currency (“Okay, I have at least heart of these things, I would perhaps buy a fraction of a Bitcoin, but what is this Cardano?”) have to be taken into account.
Also: It sounds kind of off-putting to me to buy an NFT and not know if I get something at all. I’d be more open to something, where I get entrance in any case, but could win a meet-and-greet or a free drink or something like that, but that probably also depends on your specific event.
I have played around a bit. NFTs with HTTP/HTTPS URIs are perfectly compliant, but pool.pm does not support them up to now, and Nami does not change what is displayed if the picture on the server is exchanged. So, this is not an option right now.
Which leaves you with the way CardanoTrees and StellarHood do it: Implement a very minimised HTML/CSS/JS one-pager that is base64 encoded and then put into a
data: URI in the NFT.
Hi, the process is simple but not well documented.
As you have the policy keys, and they are not expired (you defined it on your policyScript) is possible.
Mint a new token usign the same policy and token name, and send it to an address you control.
Burn the new generated token (mint with quantity -1)
And that’s it. The Metadata will be updated to all tokens.
Only works if you did not specify a “before” in your policy, doesn’t it?
Ah, that’s why Minting NFTs | Cardano Developer Portal speaks about the “last” minting transaction in: “With this workaround of attaching metadata, third-party platforms like pool.pm can easily trace back to the last minting transaction, […]”?
Do you know, how aggressively pool.pm and Nami cache? Will such a metadata change be reflected immediately, after restart, after an hour, after a day?
Works if you specified a before value greater than the current slot.
I don’t know how pool.pm implements the cache. But you can test with blockfrost, and you can see that it’s reflected in orders of time near 1 minute (I suppose tx confirmed).
I suppose pool.pm and nami will be around it.