gnolang / gno

Gno: An interpreted, stack-based Go virtual machine to build succinct and composable apps + gno.land: a blockchain for timeless code and fair open-source.
https://gno.land/
Other
898 stars 376 forks source link

Making `r/users` package `grc721` compliant #297

Open lumtis opened 2 years ago

lumtis commented 2 years ago

Currently, the realm package users associates a user profile to an address, it seems the associated address for a name can no longer be updated after registration.

Is there a specific motivation or idea behind this not being possible?

This issue is about implementing the grc721 interface to make a User tokenised and transferable, which would allow:

moul commented 2 years ago

We discussed this w/ Jae; in our case, the r/users is not exactly like an ENS, and we want to make it more unique (no way to have multiple ones on an individual address), but we also want to allow transferring it to another account.

Let's keep this discussion open to get more feedback and decide later.

FYI, r/users will be a later central point of the governance and will eventually be moved to something like r/system/users. Maybe it makes more sense to split the governance usernames completely from those specialized for NFTs and 2nd market usages. Or perhaps make the grc721 and see how things are going.

If we want to make it grc721, we also need to support new features like "selecting the main one" so we can call the realm to get a username from an address and always have the same.

lumtis commented 2 years ago

FYI, r/users will be a later central point of the governance and will eventually be moved to something like r/system/users. Maybe it makes more sense to split the governance usernames completely from those specialized for NFTs and 2nd market usages. Or perhaps make the grc721 and see how things are going.

Thanks for bringing clarity on r/users, it makes sense to not consider grc721 if additional mechanisms like DAO approval are considered and it is more considered like a personal identity.

I saw some of the usage of r/users with r/boards and I was thinking of usage of the package where a user represents an organization identity and where the notion of NFT would make more sense IMO. But this could also actually be another package.

If we want to make it grc721, we also need to support new features like "selecting the main one" so we can call the realm to get a username from an address and always have the same.

You can actually keep an 1-1 relationship and be grc721 compliant, Transfer should fail if balance(recipient) != 0

moul commented 2 years ago

You can keep a 1-1 relationship and be grc721 compliant, Transfer should fail if balance(recipient) != 0

Yep, this can be the solution.


But this could also actually be another package.

And, this can be the other one.

I think we'll have both, and maybe the two packages can communicate somehow. Perhaps r/system/users could be the top-level TLD, while r/names could be a "subdomain" feature that can be easily transferred.