# Integração da Prova de Reservas (PoR)

A Fact Finance oferece uma infraestrutura de Prova de Reservas (PoR) para emissores de ativos digitais, promovendo transparência contínua, verificação pública e integração descentralizada via oráculo on-chain.

Este guia descreve como incorporar a Prova de Reservas ao seu site, acessar os dados on-chain e obter os relatórios mensais.


# Integração Web (iframe ou link externo)

A página de Prova de Reservas pode ser incorporada diretamente ao seu site. Use a URL abaixo:

https://fact.finance/reserves/[client_name]?lang=pt-BR&frame

Substitua [client_name] pelo nome da entidade registrada, como tether.

# Suporte a idiomas

A interface da página de reservas suporta os seguintes idiomas por meio do parâmetro lang:

Código Idioma
en Inglês (padrão)
pt-BR Português (Brasil)
es Espanhol

⚠️ Se o parâmetro lang não for definido, o idioma padrão será Inglês.

# Exemplo com iframe:

<iframe 
  src="https://fact.finance/reserves/tether?lang=pt-BR&frame" 
  width="100%" 
  height="600" 
  frameborder="0" 
  style="border: none;">
</iframe>

# Exemplo com link externo:

<a href="https://fact.finance/reserves/?lang=pt-BR&frame" target="_blank">
  Ver Prova de Reservas da tether
</a>

# Integração On-Chain com Oráculo da Fact

# Pre requisito

Solidity Fact Oracle Interface file
FOInterfaceV1.sol 1.91KB

As reservas são gravadas on-chain via o Oráculo da Fact (IFactOraclePush) para garantir verificabilidade pública e imutabilidade.

# Solidity: exemplo de leitura do oráculo

IFactOraclePush public immutable factOracle;

constructor(address _factOracleAddress) {
    factOracle = IFactOraclePush(_factOracleAddress);
}

function consultarReservas(bytes32 dataFeedCode) external view returns (int128 value, uint32 updatedAt) {
    (
        int128 ratio,
        uint32 updatedAt,
        uint8 confidence,
        int24 aux0,
        uint32 reserve,
        uint32 circulation,
    ) = factOracle.latestData();

    return (ratio, updatedAt);
}

💡 Os dados são enviados periodicamente para o Oráculo Fact Finance através de processo validado e automatizado.

# dApp: exemplo de leitura para aplicações web

import { ethers } from "ethers";

// Defina as variáveis
const contractAddress = "0x...";
const convertedAbi = [/* ABI */];
const provider = new ethers.JsonRpcProvider("https://eth-mainnet.g.alchemy.com/v2/");
const wallet = new ethers.Wallet("private-key", provider);

// Instancia o contrato 
const oracleContract = new ethers.Contract(contractAddress, convertedAbi, wallet);

// Buscar os dados
async function getOracleData() {
  const [ratio, updatedAt, confidence,aux0, reserve, circulation] = await oracleContract.latestData();
  console.log({ ratio, updatedAt, confidence, reserve, circulation });
}

# 🗂️ Relatórios Mensais (PDF)

Relatórios mensais de Prova de Reservas podem ser acessados diretamente via URL:

http://fact.finance/reports/[client_name]/report_[month]_[year].pdf
  • month: mês com 3 letras em inglês (ex: jan, feb, dec)
  • year: ano com 4 dígitos

# Exemplo:

http://fact.finance/reports/tether/report_dec_2024.pdf

# 📫 Suporte

Para dúvidas, integrações customizadas ou relatórios:

📧 [email protected]