# Signed Fetch

El `SignedFetch` módulo proporciona una implementación de la `fetch` interfaz que es transparentemente compatible con el [signed fetch](https://github.com/decentraland/docs/blob/main/auth/signed_fetch/README.md) protocolo, que define cómo adjuntar firmadas [cadenas de autenticación](https://github.com/decentraland/docs/blob/main/auth/authchain/README.md) a solicitudes salientes.

Los procedimientos para firmar y verificar esta solicitud se detallan en el [auth chain](https://github.com/decentraland/docs/blob/main/contributor/auth/authchain/README.md) página.

Usando `SignedFetch` desde una escena requiere el [`USE_FETCH`](https://github.com/decentraland/docs/blob/main/contributor/content/entity-types/scenes/README.md#permissions) permission.

### Métodos

**`signedFetch`**

Realiza una solicitud HTTP como lo harías con ([`fetch`](https://github.com/decentraland/docs/blob/main/contributor/globals/README.md#http)), agregando automáticamente las cabeceras de verificación.

```ts
interface Request {
  // La URL objetivo de la solicitud:
  url: string;

  // Parámetros opcionales y autoexplicativos para la solicitud:
  init?: {
    method?: string;
    body?: string;
    headers: { [key: string]: string };
  };
}

interface Response {
  // Si la solicitud HTTP se realizó con éxito (códigos distintos de 2xx no son fallos)
  ok: boolean;

  // Los detalles autoexplicativos de la respuesta:
  status: number;
  statusText: string;
  headers: { [key: string]: string };
  body: string;
}

function signedFetch(Request): Promise<Response>;
```
