# Tipos de escrow

Trustless Work admite varios tipos de escrow, cada uno adaptado a diferentes flujos de trabajo. Ya sea que estés construyendo un mercado, una plataforma de subvenciones o una app de trabajos por encargo, elegir la lógica de escrow adecuada te ayuda a equilibrar simplicidad, flexibilidad y confianza.

***

### Escrow de liberación única

Un Escrow de liberación única retiene los fondos hasta *todos* los hitos (puntos de control verificables, como "diseño terminado" o "código desplegado") se completen y aprueben. Solo entonces se *monto* completo libera de una sola vez. Está diseñado para proyectos donde la confianza se construye a través de múltiples pasos pero el pago se realiza una vez.

**Constrúyelo así:**

1. **Depósito:** Los fondos se bloquean por adelantado por cualquier parte (p. ej., un cliente) a través de una billetera Stellar.
2. **Finalización del hito:** El Proveedor de Servicios (p. ej., un freelancer) marca cada hito como completado (p. ej., "Logo entregado", "Sitio en vivo").
3. **Aprobación y liberación:** El Aprobador (p. ej., el cliente) verifica *todos* los hitos. Una vez que todos estén aprobados, el Firmante de Liberación (p. ej., la plataforma) libera el monto total al Receptor, menos cualquier tarifa de la Plataforma.

<figure><img src="/files/68890f55155b35923c24bca5315fd27b25782cdd" alt="single-release"><figcaption></figcaption></figure>

**Ejemplo:** Un freelancer en un marketplace entrega un sitio web (hitos: wireframe, diseño, lanzamiento). El comprador (Aprobador) confirma que todo está hecho, y la plataforma (Firmante de Liberación) libera el pago completo.

***

### Escrow de liberación múltiple

Un Escrow de liberación múltiple libera fondos de forma incremental a medida que cada hito se completa y aprueba. Está diseñado para proyectos por etapas donde la confianza y los pagos se construyen paso a paso, reduciendo el riesgo.

**Constrúyelo así:**

1. **Depósito:** Los fondos se depositan por adelantado o en partes mediante billeteras Stellar.
2. **Finalización y revisión del hito:** El Proveedor de Servicios (p. ej., un contribuyente de DAO) marca cada hito como completado (p. ej., "Prototipo construido"). El Aprobador (p. ej., los votantes de la DAO) revisa cada uno.
3. **Liberación incremental:** Por cada hito aprobado, el Firmante de Liberación (p. ej., la plataforma) libera la porción de fondos correspondiente al Receptor. Los Resolutores de Disputas manejan conflictos, ajustando montos o cancelando si es necesario. (Nota: Los pagos por hito están en camino, según el documento.)

<figure><img src="/files/b65d9d3d70fd063b95e7e82ef0c4d5eca35c6a57" alt=""><figcaption></figcaption></figure>

**Ejemplo:** Una DAO financia a un desarrollador para un proyecto (hitos: código v1, v2, v3). La aprobación de cada hito libera una porción de stablecoins, con un Resolutor de Disputas interviniendo si los votantes cuestionan el progreso.

**¿Por qué usarlo?**

* ✅ Flexible: Paga por hito, no todo de una vez.

***

| Aspecto     | Liberación única                             | Liberación múltiple            |
| ----------- | -------------------------------------------- | ------------------------------ |
| Pagos       | Todo de una vez, tras todos los hitos        | Por hito                       |
| Caso de uso | Freelance con revisiones por etapas          | Desembolso de subvenciones     |
| Complejidad | Media (múltiples hitos, una sola liberación) | Alta (liberaciones por etapas) |

### Consejos rápidos:

* Usa **Liberación única** para comenzar rápido.
* Usa **Liberación múltiple** cuando necesitas control basado en hitos.
* Todos los escrows son **no custodiados**, programables y nativos de stablecoin.

***

### Ejemplos JSON

Aquí hay dos fragmentos JSON mínimos que destacan la diferencia estructural entre **Liberación única** y **Liberación múltiple** escrows. Estos no son esquemas completos, solo lo esencial para que un desarrollador pueda “verlo” de un vistazo.

***

### 📝 Ejemplo: Liberación única (con múltiples hitos)

```json
{
  "contractId": "C...ESCROWADDRESS",
  "engagementId": "order-123",
  "title": "Desarrollo de sitio web",
  "description": "Construir y entregar un sitio web de marketing",
  "roles": {
    "approver": "G...CLIENT",
    "serviceProvider": "G...FREELANCER",
    "releaseSigner": "G...SIGNER",
    "platformAddress": "G...PLATFORM",
    "disputeResolver": "G...RESOLVER",
    "receiver": "G...FREELANCER"
  },
  "amount": 1000,
  "platformFee": 0.5,
  "milestones": [
    {
      "description": "Entregar diseño de la página principal",
      "status": "Approved",
      "approved": true
    },
    {
      "description": "Desplegar sitio web completo",
      "status": "Pending",
      "approved": false
    }
  ],
  "flags": {
    "disputed": false,
    "released": false,
    "resolved": false
  },
  "trustline": {
    "address": "G...USDCISSUER",
  }
}
```

👉 Incluso con múltiples hitos, **todos deben ser aprobados** antes de que se realice el pago único de `1000` USDC sea liberado.

***

### 📝 Ejemplo: Liberación múltiple

```json
{
  "contractId": "C...ESCROWADDRESS",
  "engagementId": "grant-456",
  "title": "Subvención de investigación",
  "description": "Financiando proyecto en dos fases",
  "roles": {
    "approver": "G...FUNDER",
    "serviceProvider": "G...RESEARCHER",
    "releaseSigner": "G...SIGNER",
    "platformAddress": "G...PLATFORM",
    "disputeResolver": "G...RESOLVER",
  },
  "platformFee": 0.5,
  "milestones": [
    {
      "description": "Enviar informe provisional",
      "amount": 500,
      "status": "Approved",
      "flags": { "approved": true, "released": true, "disputed": false, "resolved": false },
      "receiver": "G...RESEARCHER"
    },
    {
      "description": "Publicar informe final",
      "amount": 500,
      "status": "Pending",
      "flags": { "approved": false, "released": false, "disputed": false, "resolved": false },
      "receiver": "G...RESEARCHER"
    }
  ],
  "trustline": {
    "address": "G...USDCISSUER",
  }
}
```

👉 Aquí, cada hito tiene su propio **monto** y **banderas**. Los fondos se liberan hito por hito (`500` + `500`).


---

# 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-es/introduccion/technology-overview/tipos-de-escrow.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.
