With Autonomous Agents recently activated on mainnet, we expect to see many dapps that will issue their tokens. Multiple stablecoins pegged to various assets and with varying parameters, prediction market shares for various events are just a few examples.

All these coins will be tradable on ODEX exchange, Oswap, and other exchanges and we need a fair, fast, scalable, and decentralized way of assigning human-friendly names to myriads of tokens.

There is already an asset registry operated by long-time community member Péter Miklós and the names from this registry are displayed in Obyte wallets. However those names are usually too long, and for good reason — to have a clear and fair naming system. It is good to have clear descriptive names in the wallets but they are not quite suitable for trading interfaces where traders are used to see short ticker symbols like AAPL, MSFT, BTC, etc. The asset registry does assign ticker symbols but they are not guaranteed to be unique.

AA-powered token registry

Now that we have AAs, we can build a token registry that is fair, fast, scalable, and decentralized.

The registry will be managed by a single Autonomous Agent that will allow to assign ticker symbols to tokens. The agent will store associations between asset IDs (44-character cryptic strings) and token symbols. The agent’s storage will be available to everybody, including other AAs and centralized apps.

The most interesting part is how these associations are created in a fair way. Some existing systems for assigning names, such as domain name registrations, are arguably not fair. They work on a first come, first served basis and early registrants get an unfair advantage, which incentivizes them to squat the available names for resale, not for use. Also, tying a name to a single owner makes it dependent on the whims of that owner. Which is not right for names of things that are not associated with any particular person or company, for example decentralized stablecoins.

To register a name for an asset, one needs to send the asset ID and name, plus some deposit, to the token registry AA. If the name is not taken yet and no other name is registered for this asset, the association between the asset and the proposed symbol name will be immediately created. The first registrant doesn’t get any particular privileges on the asset or name, he is just the first registrant. Anybody else can send the same name-asset pair along with his own deposit to increase the support for the pair. The supporters can withdraw their deposits without destroying the name-asset association.

What happens if somebody wants to associate an already registered name with another asset, or assign another name to a particular asset? They send their preferred name-asset pair to the AA, along with a deposit they want to lock in support of the new association. Multiple people can send their deposits in support of the new pair. As soon as the total support (in terms of the sum of all deposits) in favor of the new pair exceeds the support of the existing pair, a challenging period begins.

During the challenging period, which lasts for 30 days, the supporters of the current name-asset pair have a chance to mobilize and increase the total amount staked for the current pair. The community of challengers can try to retain its leadership by also increasing its total stake.

After the challenging period ends, the side that has garnered more support wins. If the incumbent side won, nothing changes. If the challenging side won, the name is assigned to another asset (or a new name is assigned to an existing asset, depending on what was challenged) and the old name-asset link is torn down.

Why do we need a challenging period and don’t reassign a name or asset immediately? To give the existing community time to mobilize and defend their name. They, and everybody else, are used to associating their asset with a particular name and don’t want to be caught by surprise and find that their token name is now associated with some other token by a whim of some whale.

Eventually, strong communities will be able to defend their names as long as their members are prepared to lock funds in support of the name. However, nothing lasts forever and as a token loses its community and falls into oblivion, its name can be easily snatched by another, stronger community. We believe it is fair to assign a name to a community that can garner the most support for the name.

Having ticker symbols re-assigned to other assets is already an established practice. For example, Visa Inc. trades on NYSE under ticker symbol V but previously the symbol belonged to Vivendi, and before that to New York New Haven & Hartford Railroad, Irving Bank Corp, Vivra Inc, and Viking General Corp. The ticker symbol C is now Citigroup, it was previously used by Chrysler.

To clarify, defending or seizing a name doesn’t require spending any money. The money is just locked in the AA and can be withdrawn in full (minus a small fee). The communities that compete for a name, compete to get more stake (deposits) locked in the AA. Therefore, supporting a losing name doesn’t make you lose money to the winning side. Only the name is lost, the money can be withdrawn in full.

Similarly, the winners don’t pay anything to those who supported a previous token for the name. Thus, squatting popular names doesn’t make sense.

To better defend their names, token communities can incentivize their members to lock money in various drawers with longer unlock periods: 1 day, 7 days, 30 days, 90 days, 180 days, and 360 days. This would ensure that the name always has significant support and is not easily lost to competitors. By default, drawer 0 is used, which allows the withdrawal of money at any time. Other drawers allow withdrawals after the corresponding warm-up period.

Will there be fights for vanity 1-letter names? We’ll see.

If you register a long name that nobody else wants, you don’t need to lock a large deposit on the AA for a long time. You can lock a minimum deposit just to register the pair and immediately withdraw the deposit. If somebody still “attacks” the name, you have 30 days to defend it.

The supporters of a name-asset pair have an option to vote for a short (up to 140 characters) description of their token and the number of decimals used when displaying amounts in this token. These parameters can be read from AA state and used by (d)apps that enable trading of the token, such as exchanges.

Next steps

The token registry AA is already written (writing AAs is really easy) and can be viewed in the Oscript editor. ODEX already uses the AA to display token symbols and amounts with the right decimals. Developers building apps and dapps can also already read its data.

We plan to implement a user friendly token registry UI in the coming months. Or, maybe you have good design and UX skills and want to implement the UI? Talk to us on discord and apply for a grant!