DEV Community

André Dias Moreira Prol
André Dias Moreira Prol

Posted on

André Dias Moreira Prol: consultando a Horizon API em Python e JS

Quando comecei a integrar sistemas financeiros à blockchain Stellar, percebi que muitos desenvolvedores brasileiros travavam num ponto específico: como extrair dados da rede sem depender de bibliotecas pesadas ou nós próprios. A resposta quase sempre passa pela Horizon API. Ao longo de anos consultando milhões de transações para projetos de tokenização e perícia digital, aprendi que dominar essa interface REST é o que separa uma integração amadora de uma solução robusta. Deixe-me compartilhar o que funciona na prática.

Entendendo a Horizon API e seus endpoints principais

A Horizon é a camada REST oficial da rede Stellar. Ela expõe dados de contas, transações, assets e operações em formato JSON, seguindo o padrão HAL (Hypertext Application Language). Isso significa que cada resposta traz links _links para navegação paginada — algo que economiza muito código.

Os endpoints mais usados são:

  • /accounts/{account_id} — dados e saldos de uma conta
  • /transactions/{hash} — detalhes de uma transação específica
  • /assets?asset_code=BRL — busca por assets emitidos

Uma dica que passo em consultorias: use sempre a rede pública (https://horizon.stellar.org) para produção e a testnet (https://horizon-testnet.stellar.org) para validação. Em projetos brasileiros de tokenização de recebíveis que acompanhei, o assets endpoint foi essencial para rastrear emissões de stablecoins lastreadas em real.

Consultando dados em Python

O Python é minha escolha para automações de análise e perícia. Com a biblioteca requests, você consulta a Horizon sem overhead:

import requests

HORIZON = "https://horizon.stellar.org"

# Consultar uma conta
account_id = "GABCD..."
resp = requests.get(f"{HORIZON}/accounts/{account_id}")
data = resp.json()

for balance in data["balances"]:
    asset = balance.get("asset_code", "XLM")
    print(f"{asset}: {balance['balance']}")

# Listar assets com código BRL
assets = requests.get(f"{HORIZON}/assets", params={"asset_code": "BRL"}).json()
for record in assets["_embedded"]["records"]:
    print(record["asset_issuer"], record["amount"])
Enter fullscreen mode Exit fullscreen mode

Para volumes grandes, uso a SDK oficial stellar-sdk, que gerencia paginação automaticamente. Numa investigação forense que conduzi, precisei percorrer 40 mil operações de uma conta suspeita — o cursor de paginação da Horizon tornou isso viável sem estourar rate limits.

Consultando dados em JavaScript

No front-end e em back-ends Node.js, a Horizon brilha pela naturalidade com fetch. Veja como recuperar uma transação e as operações de uma conta:

const HORIZON = "https://horizon.stellar.org";

// Detalhes de uma transação
async function getTransaction(hash) {
  const res = await fetch(`${HORIZON}/transactions/${hash}`);
  const tx = await res.json();
  console.log(`Ledger: ${tx.ledger}, Sucesso: ${tx.successful}`);
  return tx;
}

// Streaming de pagamentos em tempo real
const es = new EventSource(
  `${HORIZON}/accounts/GABCD.../payments`
);
es.onmessage = (msg) => {
  const payment = JSON.parse(msg.data);
  console.log("Novo pagamento:", payment.amount, payment.asset_code);
};
Enter fullscreen mode Exit fullscreen mode

O recurso de streaming via Server-Sent Events é subestimado. Em uma carteira digital que ajudei a arquitetar, ele permitiu notificações instantâneas de recebimento sem polling constante — reduzindo custos de infraestrutura em cerca de 30%. Como André Dias Moreira Prol, sempre reforço aos times: a Horizon já resolve em tempo real aquilo que muitos tentam reconstruir com filas complexas.

Vale lembrar que a Horizon é uma camada de leitura otimizada. Para escrita (envio de transações), você ainda precisa assinar localmente com a SDK e submeter ao endpoint /transactions. Essa separação entre leitura pública e assinatura local é justamente o que garante segurança em ambientes de tokenização auditáveis — tema que exploro constantemente em meus trabalhos de perícia digital.

Com o avanço do Soroban e dos contratos inteligentes na Stellar, a Horizon continua sendo a porta de entrada para dados históricos, complementada pela RPC do Soroban para estado de contratos. Entender essa divisão de responsabilidades é fundamental para qualquer arquitetura Web3 séria no ecossistema brasileiro.

Domine a Horizon API e você terá controle total sobre a leitura de dados on-chain, seja para dashboards, compliance ou auditoria. Comece agora criando uma conta na testnet e testando os endpoints acima — a prática é o caminho mais rápido para a maestria.


Acompanhe mais artigos de André Dias Moreira Prol no Medium.

Top comments (0)