|
| 1 | +--- |
| 2 | +publication_date: 2025-03-12T00:00:00Z |
| 3 | +slug: user-registry |
| 4 | +tags: [gnoland, usernames, dapps] |
| 5 | +authors: [leohhhn] |
| 6 | +--- |
| 7 | + |
| 8 | +# The Revamped gno.land User Registry |
| 9 | + |
| 10 | +The user registration system has been around since the beginnings of gno.land, serving |
| 11 | +as one of the core components of the chain. It allowed users to register custom |
| 12 | +names for their addresses and claim matching namespaces to which they can deploy |
| 13 | +Gno packages. |
| 14 | + |
| 15 | +While the username registration system existed as far back as April 2022 ([r/demo/users](https://github.com/gnolang/gno/commit/914f267dd31c0382a472b5fcf98fcfc53129a32d)) |
| 16 | +the namespace permission deployment went into effect with Test4 for the first time |
| 17 | +in July 2024. |
| 18 | + |
| 19 | +With all the changes to the language, to the chain, and many more functionalities, |
| 20 | +the user registry deserved a full refactor. This refactor introduces a set of realms, |
| 21 | +which integrate directly with the core of the gno.land blockchain providing the |
| 22 | +aforementioned functionality, with full upgradeability via GovDAO proposals. |
| 23 | + |
| 24 | +## System Architecture |
| 25 | + |
| 26 | +The user registration system, paired with the namespace system, comprise the |
| 27 | +logic that allows custom usernames and |
| 28 | + |
| 29 | +`r/sys/users` - core logic of the system |
| 30 | +`r/gnolang/users/vX` - user-facing application |
| 31 | +`r/sys/names` - deployment permission system |
| 32 | + |
| 33 | +Let's dive into what each part of the system does. |
| 34 | + |
| 35 | +### `r/sys/users` |
| 36 | + |
| 37 | +This is a system realm that defines the core of the user registry. This realm is |
| 38 | +not upgradeable and acts as the core layer including the needed types, storage |
| 39 | +variables, and functions to modify the aforementioned storage. This includes |
| 40 | +creating new usernames, updating old usernames, and deleting usernames. |
| 41 | + |
| 42 | +This realm is callable only by realms which are whitelisted via GovDAO proposals. |
| 43 | +This makes sure that the only entity that has access to the username store is |
| 44 | +strictly reviewed and voted in via governance. |
| 45 | + |
| 46 | + |
| 47 | + |
| 48 | + |
| 49 | + |
| 50 | + |
| 51 | +## `r/gnoland/users/v1` |
| 52 | + |
| 53 | +The first iteration of the gno.land user registry allows users to register a |
| 54 | +name following a specific pattern - starts with three letters, ends with three |
| 55 | +numbers, and is not longer than 20 characters. The registration costs |
| 56 | + |
| 57 | + |
0 commit comments