# Esquema

Nesta seção você poderá ver o esboço dos tipos de escrow que o Trustless Work oferece. Com esses diagramas você poderá conhecer a estrutura e as propriedades de um escrow tanto em sua versão Single-Release quanto Multi-Release.

## Esquema de Escrow Single Release

#### Corpo do escrow:

| Chave        | Tipo              | Descrição                                                                     |
| ------------ | ----------------- | ----------------------------------------------------------------------------- |
| engagementId | string            | Identificador único do escrow                                                 |
| title        | string            | Nome do escrow                                                                |
| roles        | Objeto Roles      | Papéis que compõem a estrutura do escrow                                      |
| description  | string            | Texto descrevendo a função do escrow                                          |
| amount       | number            | Valor a ser transferido após a conclusão dos marcos do escrow                 |
| plataformFee | number            | Comissão que a plataforma receberá quando o escrow for concluído              |
| milestones   | Milestone\<Array> | Objetivos a serem concluídos para definir o escrow como finalizado            |
| flags        | Objeto Flags      | Flags validando certos estados de vida do escrow                              |
| trustline    | Objeto Trustline  | Informações sobre a trustline que gerenciará o movimento dos fundos em escrow |

#### Papéis:

| Nome             | Tipo   | Descrição                                                                                     |
| ---------------- | ------ | --------------------------------------------------------------------------------------------- |
| approver         | string | Endereço da entidade que solicita o serviço.                                                  |
| serviceProvider  | string | Endereço da entidade que fornece o serviço.                                                   |
| plataformAddress | string | Endereço da entidade que possui o escrow                                                      |
| releaseSigner    | string | Endereço do usuário responsável por liberar os fundos do escrow para o prestador de serviços. |
| disputeResolver  | string | Endereço responsável por resolver disputas dentro do escrow.                                  |
| receiver         | string | Endereço para onde os recursos do escrow serão enviados                                       |

#### Marco:

| Nome        | Tipo              | Descrição                                                   |
| ----------- | ----------------- | ----------------------------------------------------------- |
| description | string            | Texto descrevendo a função do marco.                        |
| status      | string            | Status do marco. Ex: Aprovado, Em disputa, etc...           |
| evidence    | string (opcional) | Evidência do trabalho realizado pelo prestador de serviços. |
| approved    | boolean           | Flag indicando se um marco foi aprovado pelo aprovador.     |

#### Flags:

| Nome     | Tipo    | Descrição                                                  |
| -------- | ------- | ---------------------------------------------------------- |
| disputed | boolean | Flag indicando que um escrow está em disputa.              |
| released | boolean | Flag indicando que os fundos do escrow já foram liberados. |
| resolved | boolean | Flag indicando que um escrow em disputa já foi resolvido.  |

#### Trustline:

| Nome    | Tipo   | Descrição                                                                          |
| ------- | ------ | ---------------------------------------------------------------------------------- |
| address | string | Endereço público que estabelece permissão para aceitar e usar um token específico. |
| symbol  | string | Abreviação oficial que representa o token em carteiras, exchanges e documentação.  |

### Fluxo do Escrow Single Release:

<figure><img src="/files/4e2d8341c5b378591fe188366d8f277928940bf5" alt=""><figcaption></figcaption></figure>

## Esquema de Escrow Multi Release

| Chave        | Tipo              | Descrição                                                                     |
| ------------ | ----------------- | ----------------------------------------------------------------------------- |
| engagementId | string            | Identificador único do escrow                                                 |
| title        | string            | Nome do escrow                                                                |
| description  | string            | Texto descrevendo a função do escrow                                          |
| roles        | Objeto Roles      | Papéis que compõem a estrutura do escrow                                      |
| plataformFee | number            | Comissão que a plataforma receberá quando o escrow for concluído              |
| milestones   | Milestone\<Array> | Objetivos a serem concluídos para definir o escrow como finalizado            |
| trustline    | Objeto Trustline  | Informações sobre a trustline que gerenciará o movimento dos fundos em escrow |

#### Papéis:

| Nome             | Tipo   | Descrição                                                                                     |
| ---------------- | ------ | --------------------------------------------------------------------------------------------- |
| approver         | string | Endereço da entidade que solicita o serviço.                                                  |
| serviceProvider  | string | Endereço da entidade que fornece o serviço.                                                   |
| plataformAddress | string | Endereço da entidade que possui o escrow                                                      |
| releaseSigner    | string | Endereço do usuário responsável por liberar os fundos do escrow para o prestador de serviços. |
| disputeResolver  | string | Endereço responsável por resolver disputas dentro do escrow.                                  |

#### Marco:

| Nome        | Tipo              | Descrição                                                      |
| ----------- | ----------------- | -------------------------------------------------------------- |
| description | string            | Texto descrevendo a função do marco.                           |
| status      | string            | Status do marco. Ex: Aprovado, Em disputa, etc...              |
| flags       | Objeto Flags      | Flags validando certos estados de vida do escrow.              |
| evidence    | string (opcional) | Evidência do trabalho realizado pelo prestador de serviços.    |
| amount      | number            | Valor a ser transferido após a conclusão dos marcos do escrow. |
| receiver    | string            | Endereço para onde os recursos do escrow serão enviados        |

#### Flags:

| Nome     | Tipo    | Descrição                                                  |
| -------- | ------- | ---------------------------------------------------------- |
| disputed | boolean | Flag indicando que um escrow está em disputa.              |
| released | boolean | Flag indicando que os fundos do escrow já foram liberados. |
| resolved | boolean | Flag indicando que um escrow em disputa já foi resolvido.  |
| approved | boolean | Flag indicando se um marco foi aprovado pelo aprovador.    |

#### Trustline:

| Nome    | Tipo   | Descrição                                                                          |
| ------- | ------ | ---------------------------------------------------------------------------------- |
| address | string | Endereço público que estabelece permissão para aceitar e usar um token específico. |
| symbol  | string | Abreviação oficial que representa o token em carteiras, exchanges e documentação.  |

### Fluxo do Escrow Multi Release:

<figure><img src="/files/02a40a2da46db6023f4ba645c8c7399251cc57b9" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.trustlesswork.com/trustless-work/v1-pt/introducao/developer-resources/schema.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
