# Implantar

### Liberação Única

```typescript
/**
 * Payload de Inicialização de Escrow de Liberação Única
 */
export type InitializeSingleReleaseEscrowPayload = {
  /**
   * Endereço do usuário que assina a transação do contrato
   */
  signer: string;

  /**
   * Identificador único para o escrow
   */
  engagementId: string;

  /**
   * Nome do escrow
   */
  title: string;

  /**
   * Papéis que compõem a estrutura do escrow
   */
  roles: {
    /**
     * Endereço da entidade que requer o serviço.
     */
    approver: string;

    /**
     * Endereço da entidade que fornece o serviço.
     */
    serviceProvider: string;

    /**
     * Endereço da entidade que é proprietária do escrow
     */
    platformAddress: string;

    /**
     * Endereço do usuário responsável por liberar os fundos do escrow ao prestador de serviço.
     */
    releaseSigner: string;

    /**
     * Endereço responsável por resolver disputas dentro do escrow.
     */
    disputeResolver: string;

    /**
     * Endereço para onde os recursos do escrow serão enviados
     */
    receiver: string;
  };

  /**
   * Texto descrevendo a função do escrow
   */
  description: string;

  /**
   * Quantia a ser transferida mediante conclusão dos marcos do escrow
   */
  amount: number;

  /**
   * Comissão que a plataforma receberá quando o escrow for concluído
   */
  platformFee: number;

  /**
   * Flags validando certos estados de vida do escrow
   */
  flags?: {
    /**
     * Flag indicando que um escrow está em disputa.
     */
    disputed?: boolean;

    /**
     * Flag indicando que os fundos do escrow já foram liberados.
     */
    released?: boolean;

    /**
     * Flag indicando que um escrow em disputa já foi resolvido.
     */
    resolved?: boolean;

    /**
     * Flag indicando se um marco foi aprovado pelo aprovador.
     */
    approved?: boolean;
  };

  /**
   * Informações sobre a trustline que gerenciará o movimento de fundos no escrow
   */
  trustline: {
    /**
     * Endereço público que estabelece permissão para aceitar e usar um token específico.
     */
    address: string;
    
    /**
     * Abreviação oficial que representa o token em carteiras, exchanges e documentação.
     */
    symbol: string;
  };

  /**
   * Objetivos a serem concluídos para definir o escrow como concluído
   */
  milestones: {
    /**
     * Texto descrevendo a função do marco
     */
    description: string;
  }[];
};
```

### Liberação Múltipla

```typescript
/**
 * Payload de Inicialização de Escrow de Liberação Múltipla
 */
export type InitializeMultiReleaseEscrowPayload = {
  /**
   * Endereço do usuário que assina a transação do contrato
   */
  signer: string;

  /**
   * Identificador único para o escrow
   */
  engagementId: string;

  /**
   * Nome do escrow
   */
  title: string;

  /**
   * Papéis que compõem a estrutura do escrow (sem receiver, pois cada marco tem seu próprio receiver)
   */
  roles: {
    /**
     * Endereço da entidade que requer o serviço.
     */
    approver: string;

    /**
     * Endereço da entidade que fornece o serviço.
     */
    serviceProvider: string;

    /**
     * Endereço da entidade que é proprietária do escrow
     */
    platformAddress: string;

    /**
     * Endereço do usuário responsável por liberar os fundos do escrow ao prestador de serviço.
     */
    releaseSigner: string;

    /**
     * Endereço responsável por resolver disputas dentro do escrow.
     */
    disputeResolver: string;
  };

  /**
   * Texto descrevendo a função do escrow
   */
  description: string;

  /**
   * Comissão que a plataforma receberá quando o escrow for concluído
   */
  platformFee: number;

  /**
   * Informações sobre a trustline que gerenciará o movimento de fundos no escrow
   */
  trustline: {
    /**
     * Endereço público que estabelece permissão para aceitar e usar um token específico.
     */
    address: string;
    
    /**
     * Abreviação oficial que representa o token em carteiras, exchanges e documentação.
     */
    symbol: string;
  };

  /**
   * Objetivos a serem concluídos para definir o escrow como concluído
   */
  milestones: {
    /**
     * Texto descrevendo a função do marco
     */
    description: string;
    /**
     * Quantia a ser transferida mediante conclusão deste marco
     */
    amount: number;
    /**
     * Endereço para onde os recursos deste marco serão enviados
     */
    receiver: string;
  }[];
};
```


---

# 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/tipos/payloads/implantar.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.
