> For the complete documentation index, see [llms.txt](https://docs.developers.upland.me/upland-developers/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.developers.upland.me/upland-developers/api-definitions/escrow-container-management.md).

# Escrow Container Management

In order to use a user’s assets for your application, you must first require the user to transfer their ownership temporarily to Upland. Upland, in turn, locks these assets in a vault-like account. In Upland terminology, this vault-like account, controlled by Upland, is called an ***escrow account**.*

The developer is responsible for specifying necessary assets the users have to transfer to the escrow account to use your application (for example, a drag car-racing application will need a user to place at least one block explore and one car in the escrow to participate).

Within the escrow account, each application is assigned an ***escrow container***, which contains transferred assets necessary to use the application.

At junctions determined by your application logic, your application can request a ***resolution of its escrow container*** (for example, at the end of a drag car-racing application, the loser loses his block explore to the winner).

You can also query the content of your application’s escrow container, request to extend its validity, etc.

{% hint style="info" %}
The available assets the developers can use so far are:

1. Block Explorers
2. Structured Ornaments
3. Spirit Legits
4. Upx
5. 3D Assets
   {% endhint %}

{% hint style="warning" %}
Branded assets such as FIFA, Stock Car, and others need permission to be used.
{% endhint %}

## Escrow Containers Transactions Status

#### **Expired** - Transactions not accepted/rejected in time;&#x20;

#### **Rejected** - Transaction which players rejected;

#### **User\_signature\_requested** - When the app sends the request to players';

#### **Changing\_ownership** - When the transaction is being registered in the blockchain (It can take up to three minutes); - Player to Escrow or Escrow to player

#### **In\_escrow** - Assets inside the container ready for resolution;

#### **Refunded** - Transactions in which assets were given back to players;

#### **Removed** - Transactions that were deleted from the container before players' acceptance or rejection;

## API Definition

{% hint style="info" %}
These endpoints require Basic Authentication. [Click here](broken://pages/jcE1CpHZKSl2NSb8eC9I) to read more about how to generate valid credentials.
{% endhint %}

{% openapi src="/files/GpMILvLdsLzpxfHE75oW" path="/containers" method="post" %}
[developers-api-v.1.0.6.json](https://4004808113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpybRHoch9jMpkMbfNu9%2Fuploads%2FTCA08eoTeYK6GiYnceQC%2Fdevelopers-api-v.1.0.6.json?alt=media\&token=0e17e5e0-3d6d-4712-88a0-329771fbaabf)
{% endopenapi %}

{% openapi src="/files/GpMILvLdsLzpxfHE75oW" path="/containers/{containerId}" method="get" %}
[developers-api-v.1.0.6.json](https://4004808113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpybRHoch9jMpkMbfNu9%2Fuploads%2FTCA08eoTeYK6GiYnceQC%2Fdevelopers-api-v.1.0.6.json?alt=media\&token=0e17e5e0-3d6d-4712-88a0-329771fbaabf)
{% endopenapi %}

{% openapi src="/files/GpMILvLdsLzpxfHE75oW" path="/containers/{containerId}/refresh-expiration-time" method="post" %}
[developers-api-v.1.0.6.json](https://4004808113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpybRHoch9jMpkMbfNu9%2Fuploads%2FTCA08eoTeYK6GiYnceQC%2Fdevelopers-api-v.1.0.6.json?alt=media\&token=0e17e5e0-3d6d-4712-88a0-329771fbaabf)
{% endopenapi %}

{% openapi src="/files/GpMILvLdsLzpxfHE75oW" path="/containers/{containerId}/lock" method="post" %}
[developers-api-v.1.0.6.json](https://4004808113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpybRHoch9jMpkMbfNu9%2Fuploads%2FTCA08eoTeYK6GiYnceQC%2Fdevelopers-api-v.1.0.6.json?alt=media\&token=0e17e5e0-3d6d-4712-88a0-329771fbaabf)
{% endopenapi %}

{% hint style="warning" %}
&#x20;To use the ***resolve*** endpoint, all assets inside the container must have the status "in\_scrow".
{% endhint %}

{% openapi src="/files/GpMILvLdsLzpxfHE75oW" path="/containers/{containerId}/resolve" method="post" %}
[developers-api-v.1.0.6.json](https://4004808113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpybRHoch9jMpkMbfNu9%2Fuploads%2FTCA08eoTeYK6GiYnceQC%2Fdevelopers-api-v.1.0.6.json?alt=media\&token=0e17e5e0-3d6d-4712-88a0-329771fbaabf)
{% endopenapi %}

{% openapi src="/files/GpMILvLdsLzpxfHE75oW" path="/containers/{containerId}/refund" method="post" %}
[developers-api-v.1.0.6.json](https://4004808113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpybRHoch9jMpkMbfNu9%2Fuploads%2FTCA08eoTeYK6GiYnceQC%2Fdevelopers-api-v.1.0.6.json?alt=media\&token=0e17e5e0-3d6d-4712-88a0-329771fbaabf)
{% endopenapi %}

{% openapi src="/files/GpMILvLdsLzpxfHE75oW" path="/containers/{containerId}/transactions/{transactionId}" method="delete" %}
[developers-api-v.1.0.6.json](https://4004808113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpybRHoch9jMpkMbfNu9%2Fuploads%2FTCA08eoTeYK6GiYnceQC%2Fdevelopers-api-v.1.0.6.json?alt=media\&token=0e17e5e0-3d6d-4712-88a0-329771fbaabf)
{% endopenapi %}

{% hint style="info" %}
You must provide a Code to your users generated across the endpoint /auth/opt/init. Then, when Upland User grants access to the developer App, a webhook will be sent with a valid access token. [Click here ](/upland-developers/sign-up-and-authentication/1.-developers-sign-up.md)to check the authentication session.
{% endhint %}

{% openapi src="/files/GpMILvLdsLzpxfHE75oW" path="/user/join" method="post" %}
[developers-api-v.1.0.6.json](https://4004808113-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpybRHoch9jMpkMbfNu9%2Fuploads%2FTCA08eoTeYK6GiYnceQC%2Fdevelopers-api-v.1.0.6.json?alt=media\&token=0e17e5e0-3d6d-4712-88a0-329771fbaabf)
{% endopenapi %}
