# Why do we need blockchain names? Engines such as Dojo are making it easier to spin up composables and persistent games running entirely on the blockchain. The architecture relies on having a world contract listing down all the systems, components and entities in that particular world, making it easy to follow changes and providing a single point of entry to the world. ![](https://hackmd.io/_uploads/rJKa4sUW6.png) Let's say we built a game built with Dojo and deployed it on the blockchain. The world contract of this game will have its own dedicated address and that's all well and good. But how do you find this world? You can find it by googling the name of the game, the team, and find one client that is serving this game. But how do you know for *sure* the world contract address is the real one? When deploying a world contract you give it a name, but there could be multiple world contracts with the same name, making it difficult to find which is the legitimate one. ![](https://hackmd.io/_uploads/rJ6fUiUZp.png) This is not an uncommon problem in blockchain. When sending funds to a friend you need to be extra careful you're using the correct address: that you haven't made any mistake and that it was indeed your friend who sent you their address and not someone impersonating them. These issues can be mitigated by using a naming system, like the [Ethereum Naming System](https://ens.domains/). ENS allows users to register a name, similarly to a domain name, that will resolve to their address. Rather than sending funds to `0xc0ffee254729296a45a3885639AC7E10F9d54979`, you send the funds to `myfirstname.eth` through compatible wallets and the resolver will take care of using the correct address. ![](https://hackmd.io/_uploads/Skk3KjUZ6.png) Users will pay a fee to register their name for a period of time. On ENS the price depends on the duration of the registration, and how many letters the name name has. What if we used a similar system to register and name worlds contracts? # The world registry Imagine a world registry where worlds creators would register their world contract address and give it a name. This would have several benefits: * It would be easier to know what's the legitimate world contract of a given world and make transactions easier to audit: you know you've interacted with briq.world rather than anything else. * It would allow anyone to easily query the list of available world and make (https://book.starknet.io/chapter_3/account_abstraction.html)) * Help game aggregators like the one built by [Cartridge](https://cartridge.gg/) discover and list worlds. We could even imagine different registries for different usage: all the games in the RPG registry would need to use the "RPG-compliant" systems, the Dojo official registry would require games to be built using Dojo. Registering a world to a given registry would require passing an onchain test attesting the world contract and the systems/components/entities comply with a set of rules. ![](https://hackmd.io/_uploads/BJ30vJvba.png) # Some more ideas * IPFS resolver to host the official version of the client: similarly to ENS which allows hosting websites such as vitalik.eth on IPFS and resolve the URL to this website, the "official" client of a game could be hosted and resolved through the world registry. * Subdomains for games within worlds: the [Realms](https://realms.world/) ecosystem has built two games, [Loot Survivors](https://survivor.realms.world/) and [Eternum](https://realms.world/games/realms-adventurers). Both of these games exist within the Realms world. They could therefore be registered as subdomains or subworlds (survivors.realms.world, eternum.realms.world), similarly to how one can generate subdomains from their ENS. Future games could even apply to be added as subworlds to the registry and pay a fee to the owner address of the main world to be registered as an official subworld. # Problems * [Domain squatting](https://en.wikipedia.org/wiki/Cybersquatting): what if someone registers realms.world before the legitimate team and uses it to scam people? It's a common problem for naming systems which can be mitigated in certain ways through a sort of tax (see [this](https://vitalik.eth.limo/general/2022/09/09/ens.html), [this](https://mirror.xyz/nick.eth/EAH91vsu24WlvIqs3os-ISEpgnqIic0Y3z_asUVtGy4) and [this](https://vitalik.eth.limo/general/2022/09/09/ens.html)). In the context of autonomous worlds the tax paid could be indexed on the gas usage of the world, as an indicator of how much usage the game has and therefore how valuable its name is. * Fair pricing of the domains: pricing domain names is notoriously hard, and there are countless discussions on the topic on the ENS forum. ENS has chosen to base their pricing on the number of letters in the name and how long the name will be held on. For worlds I don't think pricing based on the number of letter makes much sense. Price indexing based on the gas usage of a world would be a way to map to popularity.