# Indexer

### Componentes clave

* **Transacción externa**: Este endpoint maneja casos donde el XDR generado por cualquier endpoint de nuestra API REST es firmado y enviado directamente por aplicaciones externas.
* **Cola interna**: La información generada inicialmente por la aplicación se almacena en una cola interna, a la espera de asociarse con una transacción específica identificada por su hash (`txHash`).
* **Almacenamiento en Firebase**: Una vez recuperada de la cola interna, la información se almacena de forma permanente en Firebase.

### Roles involucrados

* **Aplicación externa**: Firma y envía el XDR sin usar el endpoint estándar (`helper/send-transaction`).
* **Indexer**: Responsable de recuperar información de la cola interna y almacenarla en Firebase al recibir el hash de la transacción (`txHash`).

### Flujo del endpoint

1. El XDR se obtiene de cualquier transacción (no firmada) generada con cualquiera de los endpoints de nuestra API REST.
2. El XDR generado se firma y envía externamente (sin usar `helper/send-transaction`).
3. La aplicación externa proporciona el correspondiente `txHash`.
4. El `txHash` se envía a `indexer/update-from-txHash`.
5. El endpoint recupera la información almacenada en la cola interna y la guarda en Firebase.

### Ejemplo de uso

* **Solicitud**:

```json
{
  "txHash": "tu-valor-txHash"
}
```

* **Respuesta**:

La información asociada con el proporcionado `txHash` se almacena con éxito en Firebase, asegurando la integridad del escrow generado.

### Beneficios de uso

* Permite integraciones externas manteniendo la coherencia de la información.
* Previene la pérdida de datos al eludir el flujo de trabajo estándar.
* Garantiza el almacenamiento seguro y preciso en Firebase utilizando el hash de la transacción.

Este endpoint mejora la flexibilidad y robustez del sistema, asegurando que todas las transacciones, independientemente del método utilizado, queden debidamente registradas en Firebase.

<figure><img src="/files/25fd695d3ff65547bc6e9de782f09980b07ab8d5" 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-es/api-rest/indexer.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.
