> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blockradar.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Pool de Liquidez

> Forneça liquidez e gerencie taxas de câmbio para pares de ativos

<Note>
  Em resumo<br />
  O Pool de Liquidez da Blockradar permite que Provedores de Liquidez (LPs) aprovados definam e gerenciem taxas de câmbio para pares de ativos. As taxas alimentam o motor interno de swap — quando um usuário inicia um swap, o sistema seleciona automaticamente a melhor taxa disponível dos LPs ativos, valida a liquidez e executa a transação.
</Note>

<img src="https://mintcdn.com/blockradar/JulBWGK83ekgPTqZ/images/rates.png?fit=max&auto=format&n=JulBWGK83ekgPTqZ&q=85&s=f84f7846199bb84fc2c0f5c7d3f5d2f2" alt="Taxas do Pool de Liquidez da Blockradar" width="3018" height="1722" data-path="images/rates.png" />

## Pré-requisitos

Antes de usar a API do Pool de Liquidez, certifique-se de ter:

<Steps>
  <Step title="Torne-se um Provedor de Liquidez">
    O Pool de Liquidez está disponível apenas para Provedores de Liquidez aprovados. Para começar, [preencha o formulário de candidatura a LP](https://airtable.com/appBkyXEaGJaQeMxF/pagmjSZwFRFa9OSme/form) e a equipe da Blockradar analisará sua solicitação e fará sua integração.
  </Step>

  <Step title="Chave API">
    Após a integração, gere uma chave API no [Painel da Blockradar](https://dashboard.blockradar.co). Navegue até **Developers** para criar uma.
  </Step>

  <Step title="Financie Suas Carteiras">
    Certifique-se de que suas carteiras de tesouraria tenham saldo suficiente dos ativos para os quais você planeja fornecer liquidez, além de tokens nativos para cobrir as taxas de rede.
  </Step>
</Steps>

## Como Funciona

Como Provedor de Liquidez, você define taxas de câmbio para pares de ativos (ex.: BNB → USDC). Quando um usuário na plataforma Blockradar inicia um swap, o sistema:

1. **Encontra taxas correspondentes** de todos os LPs ativos para o par de ativos solicitado.
2. **Classifica os candidatos** pela melhor taxa, prioridade do LP e horário de criação.
3. **Valida a liquidez** verificando se a carteira de tesouraria do LP selecionado tem saldo suficiente para cumprir o swap.
4. **Executa o swap** usando a taxa e a tesouraria do LP selecionado.

<CardGroup cols={2}>
  <Card title="Gerenciamento de Taxas" icon="sliders">
    Crie, atualize, desative e reative taxas de câmbio para qualquer par de ativos suportado.
  </Card>

  <Card title="Faixas de Valor" icon="ruler-horizontal">
    Defina valores mínimos e máximos de transação por taxa para controlar a exposição e segmentar níveis de preço.
  </Card>

  <Card title="Histórico de Versões" icon="clock-rotate-left">
    Cada alteração de taxa cria uma nova versão. O histórico completo é preservado para auditoria e análise.
  </Card>

  <Card title="Seleção Automática" icon="wand-magic-sparkles">
    O sistema seleciona automaticamente o melhor LP para cada swap com base na taxa, prioridade e liquidez disponível.
  </Card>
</CardGroup>

## Ciclo de Vida da Taxa

As taxas seguem um ciclo de vida claro com rastreamento completo de versões:

### 1. Criar uma Taxa

Defina uma nova taxa de câmbio para um par de ativos. A taxa inicia como **active** na versão 1.

<CodeGroup>
  ```bash Curl theme={null}
  curl --request POST \
    --url https://api.blockradar.co/v1/rates \
    --header 'Content-Type: application/json' \
    --header 'x-api-key: <api-key>' \
    --data '{
      "fromAsset": "BNB",
      "toAsset": "USDC",
      "rate": "605.50",
      "minAmount": "0.01",
      "maxAmount": "100"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.blockradar.co/v1/rates', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': apiKey
    },
    body: JSON.stringify({
      fromAsset: 'BNB',
      toAsset: 'USDC',
      rate: '605.50',
      minAmount: '0.01',
      maxAmount: '100'
    })
  }).then(r => r.json());

  console.log('Taxa criada:', response.data);
  ```
</CodeGroup>

### Parâmetros da Requisição

| Parâmetro   | Tipo   | Obrigatório | Descrição                                                                                    |
| ----------- | ------ | ----------- | -------------------------------------------------------------------------------------------- |
| `fromAsset` | string | Sim         | O símbolo do ativo de **origem** (ex.: `BNB`)                                                |
| `toAsset`   | string | Sim         | O símbolo do ativo de **destino** (ex.: `USDC`)                                              |
| `rate`      | string | Sim         | A taxa de câmbio. Fornecida como string para evitar problemas de precisão de ponto flutuante |
| `minAmount` | string | Sim         | Valor mínimo de transação para esta taxa (inclusivo)                                         |
| `maxAmount` | string | Não         | Valor máximo de transação (exclusivo). Omita para ilimitado                                  |

### Resposta de Criação

```json theme={null}
{
  "message": "Rate created successfully",
  "statusCode": 201,
  "data": {
    "id": "d69078ef-2467-40f4-bb00-63394efe32c0",
    "fromAsset": "BNB",
    "toAsset": "USDC",
    "rate": "605.50",
    "minAmount": "0.01",
    "maxAmount": "100",
    "isActive": true,
    "status": "active",
    "version": 1,
    "network": "testnet",
    "createdAt": "2026-02-19T07:50:17.042Z"
  }
}
```

### 2. Atualizar uma Taxa

Modifique a taxa ou as restrições de valor para uma taxa ativa existente. Isso cria uma **nova versão** — a versão anterior é automaticamente marcada como `superseded`.

<CodeGroup>
  ```bash Curl theme={null}
  curl --request PATCH \
    --url https://api.blockradar.co/v1/rates/{id} \
    --header 'Content-Type: application/json' \
    --header 'x-api-key: <api-key>' \
    --data '{
      "rate": "610.00",
      "minAmount": "0.005"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(`https://api.blockradar.co/v1/rates/${rateId}`, {
    method: 'PATCH',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': apiKey
    },
    body: JSON.stringify({
      rate: '610.00',
      minAmount: '0.005'
    })
  }).then(r => r.json());

  console.log('Taxa atualizada:', response.data);
  ```
</CodeGroup>

<Info>
  Forneça apenas os campos que você deseja alterar — atualizações parciais são suportadas.
</Info>

### 3. Desativar uma Taxa

Retire temporariamente uma taxa do ar. A taxa se torna **deactivated** e não será mais selecionada para swaps.

<CodeGroup>
  ```bash Curl theme={null}
  curl --request PATCH \
    --url https://api.blockradar.co/v1/rates/{id}/deactivate \
    --header 'Content-Type: application/json' \
    --header 'x-api-key: <api-key>' \
    --data '{
      "reason": "Pausing for maintenance"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    `https://api.blockradar.co/v1/rates/${rateId}/deactivate`,
    {
      method: 'PATCH',
      headers: {
        'Content-Type': 'application/json',
        'x-api-key': apiKey
      },
      body: JSON.stringify({
        reason: 'Pausing for maintenance'
      })
    }
  ).then(r => r.json());

  console.log('Taxa desativada:', response.data);
  ```
</CodeGroup>

### 4. Reativar uma Taxa

Recoloque uma taxa desativada no ar. Isso cria uma **nova versão** com status `active`.

<CodeGroup>
  ```bash Curl theme={null}
  curl --request PATCH \
    --url https://api.blockradar.co/v1/rates/{id}/reactivate \
    --header 'x-api-key: <api-key>'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    `https://api.blockradar.co/v1/rates/${rateId}/reactivate`,
    {
      method: 'PATCH',
      headers: { 'x-api-key': apiKey }
    }
  ).then(r => r.json());

  console.log('Taxa reativada:', response.data);
  ```
</CodeGroup>

## Versionamento de Taxas

Toda vez que uma taxa é atualizada ou reativada, uma nova versão é criada. A versão anterior é marcada como `superseded`. Isso fornece uma trilha de auditoria completa.

| Campo            | Descrição                                                                         |
| ---------------- | --------------------------------------------------------------------------------- |
| `version`        | Número de versão sequencial começando em 1                                        |
| `rootRateId`     | Aponta para a taxa original — todas as versões em uma cadeia compartilham este ID |
| `previousRateId` | Aponta para a versão imediatamente anterior                                       |

### Exemplo de Cadeia de Versões

```
v1 (active)  →  v2 (active, v1 superseded)  →  v3 (deactivated)  →  v4 (active, v3 superseded)
```

### Visualizar Histórico da Taxa

Recupere o histórico completo de versões de uma taxa:

<CodeGroup>
  ```bash Curl theme={null}
  curl --request GET \
    --url https://api.blockradar.co/v1/rates/{id}/history \
    --header 'x-api-key: <api-key>'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    `https://api.blockradar.co/v1/rates/${rateId}/history`,
    {
      headers: { 'x-api-key': apiKey }
    }
  ).then(r => r.json());

  console.log('Histórico:', response.data);
  console.log('Página:', response.meta.currentPage);
  ```
</CodeGroup>

### Resposta do Histórico

```json theme={null}
{
  "message": "Rate history retrieved successfully",
  "statusCode": 200,
  "data": [
    {
      "id": "d69078ef-2467-40f4-bb00-63394efe32c0",
      "fromAsset": "BNB",
      "toAsset": "USDC",
      "network": "testnet",
      "rate": "605.50",
      "minAmount": "0.01",
      "maxAmount": null,
      "isActive": false,
      "status": "deactivated",
      "version": 1,
      "previousRateId": null,
      "rootRateId": null,
      "createdBy": "86964e42-79dc-4267-a2ca-3612c4b095a8",
      "deactivatedBy": "86964e42-79dc-4267-a2ca-3612c4b095a8",
      "deactivatedAt": "2026-02-25T18:13:48.113Z",
      "deactivationReason": "re",
      "createdAt": "2026-02-19T07:50:17.042Z",
      "updatedAt": "2026-02-25T18:13:48.101Z"
    }
  ],
  "meta": {
    "totalItems": 1,
    "itemCount": 1,
    "itemsPerPage": 10,
    "totalPages": 1,
    "currentPage": 1
  }
}
```

## Status das Taxas

| Status        | Descrição                                                               |
| ------------- | ----------------------------------------------------------------------- |
| `active`      | Atualmente ativa e elegível para seleção de swap                        |
| `superseded`  | Substituída por uma versão mais recente (via atualização ou reativação) |
| `deactivated` | Retirada manualmente do ar — pode ser reativada                         |

<Warning>
  `superseded` é um estado terminal — esses registros são históricos e não podem ser modificados.
</Warning>

## Faixas de Valor

Cada taxa cobre uma faixa de valor de transação definida por `minAmount` e `maxAmount`:

* **`minAmount`** — O limite inferior inclusivo. Transações abaixo deste valor não usarão esta taxa.
* **`maxAmount`** — O limite superior exclusivo. Defina como `null` (omita) para ilimitado.

### Múltiplas Taxas para o Mesmo Par

Você pode criar múltiplas taxas para o mesmo par de ativos com diferentes faixas de valor para oferecer preços escalonados:

| Taxa   | Faixa         | Caso de Uso         |
| ------ | ------------- | ------------------- |
| 605.00 | 0.01 – 10 BNB | Transações pequenas |
| 606.50 | 10 – 100 BNB  | Transações médias   |
| 608.00 | 100+ BNB      | Transações grandes  |

<Warning>
  As faixas de valor para o mesmo par de ativos **não devem se sobrepor**. O sistema rejeitará uma taxa se sua faixa se sobrepuser a outra taxa ativa para o mesmo par.
</Warning>

## Validação de Liquidez

Antes de executar um swap usando sua taxa, o sistema valida que sua carteira de tesouraria possui:

1. **Saldo de tokens suficiente** do ativo de destino para cobrir a saída do swap (`valor x taxa`).
2. **Saldo suficiente de tokens nativos** (ETH, BNB, etc.) para cobrir as taxas de rede da transferência.

Se o saldo da sua carteira for insuficiente, o sistema ignora sua taxa e passa para o próximo LP disponível. Você receberá um alerta por e-mail quando sua liquidez estiver baixa.

<Tip>
  Mantenha suas carteiras de tesouraria bem financiadas para evitar oportunidades de swap perdidas. O sistema notificará você quando os saldos caírem abaixo dos limites.
</Tip>

## Melhores Práticas

### Gerenciamento de Taxas

* **Monitore as condições de mercado** e atualize as taxas regularmente para se manter competitivo
* **Use faixas de valor** para oferecer preços escalonados para diferentes tamanhos de transação
* **Desative taxas** durante manutenção ou alta volatilidade em vez de excluí-las
* **Revise o histórico de versões** para acompanhar as alterações de taxa ao longo do tempo

### Liquidez

* **Mantenha saldo suficiente** em suas carteiras de tesouraria tanto para o ativo de destino quanto para tokens nativos
* **Configure monitoramento** para alertas de saldo baixo
* **Financie carteiras proativamente** para evitar interrupções no serviço

## Referência da API

| Endpoint                                                                     | Descrição                                              |
| ---------------------------------------------------------------------------- | ------------------------------------------------------ |
| [Criar Taxa](/pt/api-reference/liquidity-pool/create-rate)                   | Criar uma nova taxa de câmbio para um par de ativos    |
| [Obter Taxa](/pt/api-reference/liquidity-pool/get-rate)                      | Recuperar uma única taxa por ID                        |
| [Atualizar Taxa](/pt/api-reference/liquidity-pool/update-rate)               | Atualizar uma taxa existente (cria uma nova versão)    |
| [Desativar Taxa](/pt/api-reference/liquidity-pool/deactivate-rate)           | Retirar uma taxa do ar                                 |
| [Reativar Taxa](/pt/api-reference/liquidity-pool/reactivate-rate)            | Recolocar uma taxa desativada no ar                    |
| [Obter Histórico da Taxa](/pt/api-reference/liquidity-pool/get-rate-history) | Visualizar o histórico completo de versões de uma taxa |

## Suporte

* **E-mail**: [support@blockradar.co](mailto:support@blockradar.co)
* **Torne-se um LP**: [Candidate-se aqui](https://airtable.com/appBkyXEaGJaQeMxF/pagmjSZwFRFa9OSme/form) para expressar seu interesse em se tornar um Provedor de Liquidez

<Note>
  O Pool de Liquidez é projetado para provedores de liquidez institucionais e profissionais. [Candidate-se para se tornar um LP](https://airtable.com/appBkyXEaGJaQeMxF/pagmjSZwFRFa9OSme/form) e, em seguida, teste suas configurações de taxa na testnet antes de entrar em produção.
</Note>
