I have a scenario where I would like to be able to assign ownership of an NFT to an account/identity that does not exist yet. I would like to be able to assign the NFT to a new address and then let a new user create an identity and claim that address using some sort of proof. Is that at all possible on Concordium?
Yes, but the details depend on how you want the proof to look.
The proof could be a signature, and your “temporary address” is a public key.
That is what I thought as well, I could use a temporary address which is not a real Concordium account address. Then one more step would be needed: update the owner of the NFT to match the newly created account address.
On NEAR there is the possibility to use “implicit accounts” that can later be claimed. There is no such notion on Concordium, right?
In principle the user can generate an account address before creating an account like with these implicit accounts.
However they will need a seed phrase for that so I’m not sure how practical that is. The tools currently don’t support just generating addresses without first getting identities. But that is a user-interface issue more than a fundamental one.
I’m not sure what the expected user flow is meant to be with this. The user is going to have to generate something and give it to you. They’ll have a seed phrase already.
Maybe you could implement a smart contract to temporarily hold NFTs, tracking which public key owns each, the user would then send a proof to this contract to claim it after creating an identity.
Thank you both for your answers. The implicit account gives you the ability to load an account with assets and then be able to pass it on to somebody else. But if this is not in the standard user flow of concordium it makes little sense to leverage it IMO.
I will implement the alternative: bind the NFTs to an alternative identification and later let the user transfer them to an existing account.