# A Recap: LAND Ownership & Deployment Permissions

**URL:** <https://forum.decentraland.org/t/a-recap-land-ownership-deployment-permissions/12>\
**Category:** Design Document\
**Created:** [April 9, 2020, 3:01am UTC](https://forum.decentraland.org/t/a-recap-land-ownership-deployment-permissions/12 "2020-04-09T03:01:42Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![esteban](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.decentraland.org/esteban/32/2_2.png) [@esteban](https://forum.decentraland.org/u/esteban)\
**Post date:** [April 9, 2020, 3:01am UTC](https://forum.decentraland.org/t/a-recap-land-ownership-deployment-permissions/12/1 "2020-04-09T03:01:42Z")

</div>

# LAND Ownership & Permissions

## The owner concept for ERC721s and LAND

The ERC721 standard defines the concept of [`owner`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol#L112) – the principal person allowed to transfer an ERC721. It also introduces the concept of [`approved`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol#L201) – someone who is able to transfer an ERC721, but can’t set other allowed users. Lastly, it has the concept of `approvedForAll`; an `owner`-wide role that can transfer any ERC721 of the owner, and also set `approved` roles.

| **Transfer Role** | **Object of the Role** | **Who can change it** |
| --- | --- | --- |
| owner | an nft | owner(nft), approved(nft), approvedForAll(owner) |
| approved | an nft | owner(nft), approvedForAll(owner(nft)) |
| approvedForAll | an address | the address itself; no need to have nfts to do this |

## Updating LAND

LAND in previous versions of Decentrtaland used to hold an IPFS or IPNS locator for the scene description in a field named “metadata”. It had a number of similarities with the `tokenURI` field in the final ERC721 spec; but currently; LAND has both: a `metadata` and a `tokenURI`. This Metadata field is deprecated, but it’s still used for the name of the tokens and their description in the marketplace.

This field introduced two extra roles initially, the `updateOperator and` the `updateOperatorForAll` ; and then a third role, `updateManager`, was added in 2019.

| **Update Role** | **Affects** | **Who can change it** |
| --- | --- | --- |
| updateOperator | an nft | updateManager, anyone who can transfer the NFT |
| updateManager | an address | the address itself, approvedForAll(address) |

Anyone with any permission above affecting an NFT or the address of the owner can update a LAND’s content. This means that any one of these conditions is enough for address `0xMyAddress` to be able to deploy to a LAND at `15,15`:

- `0xMyAddress` is the owner of `15,15`

- `0xOwner` is the owner of the land and has called `approve("15,15", 0xMyAddress)`

- `0xOwner` is the owner of the land and has called `approveForAll(0xMyAddress)`

- `0xOwner` is the owner of the land and has called `approveForAll(0xSomeoneElse)` and `0xSomeoneElse` has called `approve("15,15", 0xMyAddress)`

- `0xOwner` has called `setUpdateOperator("15,15", 0xMyAddress)`

- `0xOwner` has called `updateManager(0xMyAddress)`

- `0xOwner` has called `updateManager(0xSomeoneElse)` and `0xSomeoneElse` has called `updateOperator("15,15", 0xMyAddress)`

- `0xOwner` has called `approveForAll(0xSomeoneElse)` and `0xSomeoneElse` has called `setUpdateOperator("15,15", 0xMyAddress)`

- `0xOwner` has called `approveForAll(0xSomeoneElse)` and `0xSomeoneElse` has called `updateManager(0xMyAddress)`

- `0xOwner` has called `approve("15,15", 0xSomeoneElse)` and `0xSomeoneElse` has called `setUpdateOperator("15,15", 0xMyaddress)`

## Updating Estates

All the same names and logic applies to Estate NFTs. The Estates contract also have these five roles and the rules for updating them follow the same logic. They also allow updating their metadata, and they use the same method for determining the name of NFTs.

## Metadata in the blockchain

Right now, the NFTs for LAND and Estates use a CSV-formatted description:

| **Field** | **Description** |
| --- | --- |
| name | Name for the LAND or Estate, as shown in the Marketplace |
| description | Description for the LAND or Estate |
| contents | Link to IPFS or IPNS (not used anymore) |

The use of these `name` and `description` comes into conflict with scene definitions. We should be deprecating this fairly soon, so that Scene descriptions become more of a first-class citizen.
