> For the complete documentation index, see [llms.txt](https://docs.chiliz.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chiliz.com/pt-br/desenvolver/avancado/feeds-de-preco-on-chain.md).

# Obter feeds de preço on-chain

A Chiliz Chain oferece um sistema de feeds de preço on-chain de nível institucional que fornece preços de ativos confiáveis e resistentes a adulterações diretamente para smart contracts. Ele implementa a **Chainlink AggregatorV3Interface**: qualquer dApp já integrada com feeds de dados Chainlink pode se conectar com alterações mínimas.

Os dados de preço são obtidos de múltiplas exchanges centralizadas de grande porte, agregados via VWAP (Volume Weighted Average Price), filtrados para outliers e enviados on-chain por um signatário com permissão em um pipeline totalmente automatizado e de alta frequência.

## Como Funciona

O sistema oracle é construído como um pipeline off-chain de três estágios que envia continuamente preços validados para contratos on-chain.

```mermaid
flowchart LR
    subgraph pipeline["Off-chain Pipeline"]
        direction LR
        FETCHER --> AGGREGATOR --> SIGNER
    end
    SIGNER --> pricefeed["Chiliz Chain\nPriceFeed Contracts"]
```

**Estágio 1: Fetcher**\
Coleta dados de mercado em tempo real de exchanges centralizadas via streams WebSocket (Binance, Bybit, Bitget, Mexc, OKX, BingX) e polling REST (Binance, Bybit, Bitget, Gate, Coinex), além de consultas a subgraphs (FanX). Todos os preços coletados são armazenados em um cache interno, prontos para o Aggregator.

**Estágio 2: Aggregator**\
Aplica o cálculo de VWAP, garantindo que venues com maior liquidez tenham mais peso, e filtra outliers. Decide se deve enviar uma atualização on-chain com base em duas regras:

* **Deviation threshold**: uma atualização é enviada se o preço agregado tiver se movido além de um percentual configurado (ex.: 0,5%) em relação ao último valor on-chain.
* **Heartbeat**: mesmo que o preço não tenha se movido além do deviation threshold, uma atualização é forçada após o intervalo de tempo máximo ter decorrido. Isso garante que o feed nunca fique desatualizado.

**Estágio 3: Signer**\
Recebe os jobs de preço validados do Aggregator e os envia on-chain via Fireblocks, uma solução de assinatura de nível institucional. O Signer só age quando o Aggregator indica que um preço está pronto.

## Sistema de Contratos

| Contrato                | Função                                                                                                                                                                           |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **PriceFeed**           | Um contrato por par de negociação. Este é o contrato que sua dApp lê. Implementa a Chainlink AggregatorV3Interface.                                                              |
| **OracleFactory**       | Registro e gerenciador. Mantém o mapeamento autoritativo do símbolo do par (ex.: `"PSG/USDT"`) para o endereço do oracle.                                                        |
| **OracleFactoryReader** | Contrato auxiliar somente de leitura. Busque todos os endereços de oracle ativos, resolva múltiplos pares ou verifique o status de saúde de todo o sistema em uma única chamada. |

Os contratos oracle foram auditados pela [Halborn](https://www.halborn.com/audits/chiliz/oracle-contracts-40e905) (janeiro de 2026).

## Endereços dos Contratos

Os parâmetros de rede para Mainnet e Testnet estão disponíveis na [Conectar via RPC](/pt-br/desenvolver/basico/conectar-a-chiliz-chain/conectar-via-rpc.md).

{% tabs %}
{% tab title="Chiliz Chain Mainnet" %}

<table><thead><tr><th width="253">Contract</th><th>Address</th></tr></thead><tbody><tr><td>OracleFactory</td><td><code>Coming soon...</code></td></tr><tr><td>OracleFactoryReader</td><td><code>Coming soon...</code></td></tr></tbody></table>
{% endtab %}

{% tab title="Spicy Testnet" %}

<table><thead><tr><th width="253">Contract</th><th>Address</th></tr></thead><tbody><tr><td>OracleFactory</td><td><code>0x824A1C121DD4baeA7f074f829294Af7DD10D9723</code></td></tr><tr><td>OracleFactoryReader</td><td><code>0x8908cd1586e90b399Dbc160Be98396172ef2F378</code></td></tr></tbody></table>
{% endtab %}
{% endtabs %}

O [Price Oracle Tracker](https://price-oracle-tracker.vercel.app/?network=mainnet) exibe todos os pares disponíveis com preços ao vivo, decimais, parâmetros de heartbeat e endereços individuais dos contratos.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.chiliz.com/pt-br/desenvolver/avancado/feeds-de-preco-on-chain.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
