ADO Ownership

In this section, we will be looking ADO ownership, what it means, and how it can be transferred from one user to another.

What is ADO Ownership

Whenever an ADO is created, it registers an owner address inside the ADO's state. By default, this ownership is assigned to the address that has created the ADO. This owner address is the only address allowed to call the owner restricted execute messages on the ADO. These messages are usually used to set up the ADO or update it's state. An example would be updating who receives funds from a splitter.

ADO Ownership Transfer

In some cases, a user might want to transfer ownership to another user/address. All our ADOs have this functionality built in, allowing an owner to send a request to another user for ownership transfer. Whenever the request is sent, the second user needs to accept the request for the transfer to occur. This is to prevent users from sending unwanted ADOs to other users without their permission.

Let us go through a small example of tranferring an ADO to another address. In the ADO Builder, create a new App with any component:

Now after publishing, go to the assets page, and from the list of execute messages, select "Ownership":

This will open up the ownership panel:

To send a transfership request, select "Update Onwer". Here we can specify the following:

  • Expiration: Specify the time when the request expires. After it is reached, the second user can no longer accept ownership of the ADO.

  • New Owner: The address you are sending the request to.

Once these are specified, you can publish the message. This will take you to the asset view for the component:

In order to complete the transfer, we need to accept the offer using the address that we specified as the new owner.

The easiest way to do this, is to share the URL of the asset page of the component. When the second users pastes it into their browser, they will get the following:

You can notice a small tag in yellow next to the ADO type that sais "External ADO". This signifies that the ADO you are viewing is not owned by your connected address. Now lets change that by accepting the ownership request we have sent to this address.

Select "Modifiers" and then "Ownership" like we did earlier. Then select "Option 1" and from the dropdown list, select "Accept Ownership":

Once published, the ADO ownership transfer is complete and this address is now the new owner of the ADO. Looking at the assets page, we can see that the timelock is now in the new owner's assets:

Disown an ADO

Another option that users have, is to disown an ADO. To disown an ADO, means to relinquish ownership from that ADO forever, making it impossible for anyone to ever own it again.

This can be used in cases where the owner of an application wants to ensure the users that the configurations of the ADO will never be changed ever again. Whether that be the % royalty on NFTs or a fee taken by the ADO, once the ADO is disowned, these will remain the same forever.

To disown an ADO, we also use the "Ownership" execute message and select "Option 1" and then the "Disown" option from the dropdown:

Once published, if you select the eye symbol for the ADO from the assets page, you will notice the owner address is now "null":

Last updated