Ir para o conteúdo

Acessando Feeds de Preços com o Band Protocol

Introdução

Band Protocol é uma rede de oracles descentralizada que fornece dados confiáveis, seguros e em tempo real para contratos inteligentes em várias redes blockchain.

O protocolo é construído sobre o BandChain, uma rede projetada para ser compatível com a maioria das cadeias compatíveis com EVM, como as redes EVM powered by Tanssi, e com frameworks de desenvolvimento. O protocolo busca oferecer uma solução:

  • Descentralizada, aproveitando o poder computacional de uma rede de validadores
  • Flexível, suportando ampla variedade de fontes e formatos de dados, facilitando integrações
  • Escalável, projetada para lidar com alto volume de requisições
  • Acessível, permitindo solicitar dados apenas quando necessário e pagar apenas as taxas associadas

Para implantar o oráculo na sua rede, entre em contato diretamente com a equipe do Band Protocol.

Este tutorial percorre as etapas para interagir com feeds de preços usando o oráculo do Band Protocol na rede EVM de demonstração da Tanssi.

Configuração na Rede de Demonstração EVM da Tanssi

O oráculo do Band Protocol já está implantado na rede EVM de demonstração da Tanssi e configurado para fornecer preços para os tokens ETH e DOT.

Os feeds de preços são enviados regularmente para um contrato inteligente acessível no endereço:

0x8c064bCf7C0DA3B3b090BAbFE8f3323534D84d68

O contrato pode ser utilizado via a interface:

IStdReference.sol
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.8.26;

interface IStdReference {
    /// A structure returned whenever someone requests for standard reference data.
    struct ReferenceData {
        uint256 rate; // base/quote exchange rate, multiplied by 1e18.
        uint256 lastUpdatedBase; // UNIX epoch of the last time when base price gets updated.
        uint256 lastUpdatedQuote; // UNIX epoch of the last time when quote price gets updated.
    } 

    /// Returns the price data for the given base/quote pair. Revert if not available.
    function getReferenceData(string memory _base, string memory _quote) external view returns (ReferenceData memory);

    /// Similar to getReferenceData, but with multiple base/quote pairs at once.
    function getReferenceDataBulk(string[] memory _bases, string[] memory _quotes) external view returns (ReferenceData[] memory);
}

Como visto acima, há duas funções para buscar dados:

getReferenceData(_base, _quote) — busca o preço de um par base/cotação
  • _base string memory - token cujo preço você quer obter
  • _quote string memory - token (ou USD) em que o preço é expresso
  • _base - ETH
  • _quote - USD
getReferenceDataBulk(_bases, _quotes) — busca preços para os pares base/cotação fornecidos simultaneamente
  • _bases string[] memory - lista de tokens base para os quais deseja obter preços
  • _quotes string[] memory - lista de tokens (ou USD) em que os preços são expressos
  • _bases - ["ETH", "DOT"]
  • _quotes - ["USD", "USD"]

A resposta de ambas as funções é composta pelos seguintes dados, agrupados em uma tupla no caso de getReferenceData e em uma lista de tuplas (uma por par) no caso de getReferenceDataBulk:

  • rate uint256 - preço do par base/cotação fornecido. Ajuste o resultado para considerar 18 casas decimais
  • lastUpdatedBase uint256 - timestamp de atualização do parâmetro _base, em epoch UNIX (segundos desde 01-01-1970 00:00:00 UT)
  • lastUpdatedQuote uint256 - timestamp de atualização do parâmetro _quote, em epoch UNIX (segundos desde 01-01-1970 00:00:00 UT)

Buscar Feeds de Preço usando Remix

Nesta seção, usaremos o Remix para buscar o preço do par ETH/USD.

Primeiro, certifique-se de ter uma carteira compatível com EVM conectada à rede EVM de demonstração. MetaMask é usada como exemplo. Em seguida, acesse o Remix, cole a interface IStdReference em um novo arquivo e compile.

Compilar contrato de interface

Depois, siga:

  1. Vá para a aba Deploy & Run Transactions
  2. Defina ENVIRONMENT como Injected Provider -- MetaMask
  3. Selecione o contrato IStdReference.sol no menu CONTRACT
  4. Informe o endereço do contrato de feed de dados 0x8c064bCf7C0DA3B3b090BAbFE8f3323534D84d68 da rede EVM de demonstração no campo At Address e clique em At Address

Acessar contrato de interface

O contrato estará acessível. Para interagir:

  1. Expanda o contrato IStdReference para ver as funções disponíveis
  2. Expanda getReferenceData e defina _base e _quote como ETH e USD
  3. Clique em Call
  4. O resultado exibirá três valores: o preço, o horário de atualização do parâmetro _base e o horário de atualização do parâmetro _quote

Checar dados de preço

Para obter um preço legível, ajuste pelas casas decimais do feed (18). No exemplo, 2361167929271984201806 corresponde a um preço de ETH de $2,361.167929271984201806 em USD. Observe também que os timestamps de atualização estão em epoch UNIX, ou seja, segundos desde 01-01-1970 00:00:00 UT.

As informações apresentadas aqui foram fornecidas por terceiros e estão disponíveis apenas para fins informativos gerais. A Tanssi não endossa nenhum projeto listado e descrito no Site de Documentação da Tanssi (https://docs.tanssi.network/). A Tanssi Foundation não garante a precisão, integridade ou utilidade dessas informações. Qualquer confiança depositada nelas é de sua exclusiva responsabilidade. A Tanssi Foundation se exime de toda responsabilidade decorrente de qualquer confiança que você ou qualquer outra pessoa possa ter em qualquer parte deste conteúdo. Todas as declarações e/ou opiniões expressas nesses materiais são de responsabilidade exclusiva da pessoa ou entidade que as fornece e não representam necessariamente a opinião da Tanssi Foundation. As informações aqui não devem ser interpretadas como aconselhamento profissional ou financeiro de qualquer tipo. Sempre busque orientação de um profissional devidamente qualificado em relação a qualquer assunto ou circunstância em particular. As informações aqui podem conter links ou integração com outros sites operados ou conteúdo fornecido por terceiros, e tais sites podem apontar para este site. A Tanssi Foundation não tem controle sobre esses sites ou seu conteúdo e não terá responsabilidade decorrente ou relacionada a eles. A existência de qualquer link não constitui endosso desses sites, de seu conteúdo ou de seus operadores. Esses links são fornecidos apenas para sua conveniência, e você isenta e exonera a Tanssi Foundation de qualquer responsabilidade decorrente do uso dessas informações ou das informações fornecidas por qualquer site ou serviço de terceiros.
Última atualização: 30 de dezembro de 2025
| Criada: 27 de novembro de 2025