Access Control Lists

When a team (more than one person) are contributing to the development of a scene, it may be beneficial to have each contributor have the ability to publish the scene under a single NAME. As stated above, the NAME owner is the only one allowed to run such deployment.

So the concept of Access Control List (or ACL for short) was introduced. The idea is that the owner of the NAME can grant other wallets permission to publish a scene under his NAME. This way the whole team (or a group of selected members) can be added to the world ACL and those will be able to publish the scene.

This ACL is stored in the World Content Server where the world is deployed. It is not stored on the blockchain. This makes it much more flexible, giving more granular control. For e.g. if you want to deploy a scene under the same NAME in two different World Content Server hosting providers, then you can have different sets of permissions in each server. And also, there is no transaction fees involved in maintaining the ACL (granting or revoking permissions).

A new command has been added to Decentraland CLI that allows to show the current ACL stored in the Worlds Content Server for a given NAME, and it also allows granting access to more wallets or revoking access to wallets that are already in the ACL.

In order to grant permission for publishing a scene to another wallet you have to:

  • Make sure to have the latest version of Decentraland CLI (v3.16.2 or later).

  • Make sure you own the NAME for which you want to manage the ACL.

  • Use command dcl world-acl NAME.dcl.eth grant 0x1 0x2 ... 0xn where those 0xn are a list of addresses separated by spaces.

By default, world-acl will act on worlds-content-server.decentraland.org. If you are using a different hosting provider, make sure to add --target-content https://your-hosting.com to each of the subcommands (show, grant and revoke).

Last updated