# Permission Delegation

## Why Enable It?

By delegating permissions, Upland can sign transactions on behalf of third-party developers, eliminating the need to sign each transaction to an escrow container manually.

## Available Transactions

* Transferring UPX to an escrow container
* Transferring NFTs to an escrow container
* The transactions above must be initiated from the third-party developer's account to a container created by one of their applications.

## Activation/Deactivation Process

To activate or deactivate the delegation feature, contact Upland and request to become an alpha tester. Upon approval, you will receive a message in your Upland account through the Message Center, where you can authorize the delegation.

## Utilizing the New API Structure After Activation

When delegation is enabled, the following endpoint will be enabled for your account.\
<https://api.prod.upland.me/developers-api/containers/:containerId/join\\>
\
This new endpoint has a different structure than the existing /join.

```
Parameters: Container ID
Authorization: App ID, Secret Key
```

```
Body:
{
    "containerId": 1,
    "upxAmount": 10000,
    "sparkAmount": 0,
    "assets": []
}
```

The third-party developer does not need to provide the EOSid, as this endpoint only transfers assets from the developer's account to their containers.

## Use Cases

* An app that maintains a balance on its account for later distribution to other players.
* An app that acquires NFTs to award as prizes to Upland players.
* An app that aims to sell Upland NFTs to Upland players.
* Other unmentioned possibilities.

<br>
