#
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
:
⚠️ 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
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: