Guia para Desenvolvedores

APIs Bitcoin &
Guia para Desenvolvedores

Construa com Bitcoin. De consultas a dados blockchain a aceitação de pagamentos Lightning, este guia cobre as APIs, bibliotecas e ferramentas que desenvolvedores precisam para integrar Bitcoin em aplicações.

Bitcoin.diy Editorial
·

O protocolo aberto e a blockchain transparente do Bitcoin fazem dele um dos sistemas financeiros mais amigáveis para desenvolvedores já criados. Se você quer construir uma integração de pagamento, analisar dados on-chain, acompanhar preços do Bitcoin, criar uma aplicação de carteira ou construir na Lightning Network, um rico ecossistema de APIs e bibliotecas está disponível. Este guia mapeia o panorama e ajuda você a escolher as ferramentas certas para seu projeto.

Que Tipos de APIs Bitcoin Existem?

APIs Bitcoin se dividem em quatro categorias principais, cada uma servindo diferentes necessidades de desenvolvimento.

APIs de Full-Node

Bitcoin Core JSON-RPC, Electrum Server. Rode seu próprio node para máxima privacidade e confiabilidade. Sem limites de taxa, sem dependência de terceiros. Melhor para aplicações de produção com volume significativo.

APIs de Serviço

Mempool.space, BlockCypher, Blockchain.com. Consulte dados blockchain sem rodar um node. Bom para prototipagem, aplicações pequenas e cargas de trabalho com muita leitura. Sujeito a limites de taxa e disponibilidade de terceiros.

APIs de Pagamento

BTCPay Greenfield API, Strike API, OpenNode API. Aceite pagamentos Bitcoin na sua aplicação. Lidam com faturamento, detecção de pagamento, webhooks e liquidação. Taxas variam de 0% (BTCPay) a 1% (OpenNode).

APIs de Dados & Analytics

Glassnode, CoinGecko, Blockchair. Métricas on-chain, dados de mercado e analytics blockchain. Usados para dashboards, ferramentas de pesquisa e aplicações de trading. Níveis gratuitos disponíveis na maioria dos provedores.

Começando: API do Mempool.space

Mempool.space é o ponto de partida recomendado para a maioria dos desenvolvedores. Fornece acesso gratuito e open-source a dados da blockchain Bitcoin sem necessidade de chave API.

Exemplo: Buscar Estimativas de Taxa Atuais

// JavaScript / Node.js
const response = await fetch(
  'https://mempool.space/api/v1/fees/recommended'
);
const fees = await response.json();
// { fastestFee: 12, halfHourFee: 8, hourFee: 4, economyFee: 2 }
console.log(`Taxa próximo bloco: ${fees.fastestFee} sat/vB`);

Exemplo: Consultar Saldo de Endereço

# Python
import requests

address = 'bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh'
url = f'https://mempool.space/api/address/{address}'
data = requests.get(url).json()

funded = data['chain_stats']['funded_txo_sum']
spent = data['chain_stats']['spent_txo_sum']
balance_sats = funded - spent
print(f'Saldo: {balance_sats} sats ({balance_sats/1e8} BTC)')

Bitcoin Core JSON-RPC

Para aplicações de produção, rodar seu próprio node Bitcoin Core fornece a fonte de dados mais confiável e privada. A API JSON-RPC expõe mais de 100 comandos para consultas blockchain, gerenciamento de transações e operações de carteira.

Exemplo: Obter Info do Bloco via Bitcoin Core RPC

# Usando curl com Bitcoin Core RPC
curl --user myuser:mypassword \
  --data-binary '{"jsonrpc":"1.0","method":"getblockcount"}' \
  -H 'Content-Type: text/plain;' \
  http://127.0.0.1:8332/

# Resposta: {"result":890123,"error":null,"id":null}

API de Preços do CoinGecko

CoinGecko fornece dados gratuitos de mercado de criptomoedas sem necessidade de chave API para uso básico. É a escolha mais popular para dados de preço, gráficos históricos e métricas de mercado.

Exemplo: Buscar Preço do Bitcoin em Múltiplas Moedas

// JavaScript - CoinGecko API (sem chave necessária)
const response = await fetch(
  'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd,eur,gbp'
);
const data = await response.json();
// { bitcoin: { usd: 87500, eur: 80200, gbp: 69800 } }
console.log(`BTC/USD: $${data.bitcoin.usd.toLocaleString()}`);

API do Blockchain.info

Uma das APIs de dados Bitcoin mais antigas, Blockchain.info fornece endpoints REST simples para consultar transações, blocos e taxas de câmbio. Sem necessidade de chave API para consultas básicas.

Exemplo: Consultar Detalhes de Transação

# Python - Blockchain.info API
import requests

# Obter taxas de câmbio atuais do Bitcoin
rates = requests.get('https://blockchain.info/ticker').json()
usd_price = rates['USD']['last']
print(f'BTC/USD: ${usd_price:,.2f}')

# Obter contagem de transações do endereço
addr = 'bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh'
info = requests.get(f'https://blockchain.info/rawaddr/{addr}?limit=0').json()
print(f'Total de transações: {info["n_tx"]}')

Você Deveria Usar APIs Bitcoin Gratuitas ou Pagas?

ProvedorNível GratuitoLimite (Grátis)Pago a Partir deMelhor Para
Mempool.spaceAPI completaUso justoAuto-hospedarDados blockchain, taxas
CoinGeckoDados básicos10-50/min$129/mêsDados de preço, gráficos
BlockCypher200 req/hr200/hr$75/mêsWebhooks, monitoramento
Blockchain.infoConsultas básicas10K/8hrN/AConsultas simples
GlassnodeMétricas limitadas200/dia$29/mêsAnalytics on-chain
Bitcoin Core RPCIlimitadoNenhumAuto-hospedarFull node, produção

Como Construir um Rastreador de Preço do Bitcoin?

Aqui está um exemplo completo combinando múltiplas APIs para construir um rastreador simples de preço do Bitcoin com consciência de taxas. Este padrão é comum em dashboards, apps de portfólio e serviços de notificação.

Exemplo: Rastreador Combinado de Preço e Taxas (TypeScript)

interface BitcoinData {
  price: { usd: number; eur: number };
  fees: { fastest: number; halfHour: number; hour: number };
  blockHeight: number;
}

async function getBitcoinData(): Promise<BitcoinData> {
  const [priceRes, feeRes, blockRes] = await Promise.all([
    fetch('https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd,eur'),
    fetch('https://mempool.space/api/v1/fees/recommended'),
    fetch('https://mempool.space/api/blocks/tip/height'),
  ]);

  const price = await priceRes.json();
  const fees = await feeRes.json();
  const blockHeight = await blockRes.json();

  return {
    price: { usd: price.bitcoin.usd, eur: price.bitcoin.eur },
    fees: { fastest: fees.fastestFee, halfHour: fees.halfHourFee, hour: fees.hourFee },
    blockHeight,
  };
}

// Uso
const data = await getBitcoinData();
console.log(`BTC: $${data.price.usd.toLocaleString()}`);
console.log(`Taxa próximo bloco: ${data.fees.fastest} sat/vB`);
console.log(`Altura do bloco: ${data.blockHeight.toLocaleString()}`);

Como Construir na Lightning Network?

A Lightning Network permite pagamentos Bitcoin instantâneos e de baixo custo e é essencial para aplicações que exigem liquidação em frações de segundo. As principais implementações são LND (Go), Core Lightning (C) e Eclair (Scala), cada uma com APIs abrangentes. Para aplicações que precisam de Lightning sem rodar infraestrutura, soluções hospedadas como Strike API, Alby e Voltage fornecem acesso gerenciado à Lightning.

Quais APIs Suportam Dados Bitcoin em Tempo Real?

APIs REST são adequadas para polling periódico, mas aplicações em tempo real se beneficiam de conexões WebSocket que enviam atualizações conforme acontecem. Mempool.space fornece uma API WebSocket para dados ao vivo de mempool e blocos, enquanto exchanges como Kraken e Coinbase oferecem feeds WebSocket para dados de preço em tempo real.

Exemplo: Mempool.space WebSocket (Blocos em Tempo Real)

// Navegador ou Node.js com pacote ws
const ws = new WebSocket('wss://mempool.space/api/v1/ws');

ws.onopen = () => {
  // Inscrever-se para notificações de novos blocos
  ws.send(JSON.stringify({ action: 'want', data: ['blocks'] }));
};

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  if (data.block) {
    console.log(`Novo bloco: #${data.block.height}`);
    console.log(`Transações: ${data.block.tx_count}`);
    console.log(`Tamanho: ${(data.block.size / 1e6).toFixed(2)} MB`);
  }
};

Exemplo: Kraken WebSocket (Feed de Preço em Tempo Real)

const ws = new WebSocket('wss://ws.kraken.com');

ws.onopen = () => {
  ws.send(JSON.stringify({
    event: 'subscribe',
    pair: ['XBT/USD'],
    subscription: { name: 'ticker' },
  }));
};

ws.onmessage = (event) => {
  const msg = JSON.parse(event.data);
  if (Array.isArray(msg) && msg[2] === 'ticker') {
    const ticker = msg[1];
    console.log(`BTC/USD: $${parseFloat(ticker.c[0]).toLocaleString()}`);
  }
};

Ao usar conexões WebSocket em produção, implemente reconexão automática com backoff exponencial. Conexões cairão periodicamente devido a manutenção do servidor, instabilidade de rede ou timeouts de inatividade. Pings de keep-alive (tipicamente a cada 30 segundos) ajudam a detectar conexões obsoletas mais cedo.

Como Proteger Sua Integração de API Bitcoin?

Construir com Bitcoin requer atenção cuidadosa à segurança. Chaves de API, chaves privadas e dados de transação são alvos de alto valor. Siga estas práticas para proteger sua aplicação e seus usuários.

Nunca Exponha Chaves de API no Cliente

Mantenha chaves de API no servidor. Use variáveis de ambiente (nunca hardcode) e faça proxy das requisições pelo seu backend. JavaScript do lado do cliente é visível para qualquer um que veja o código fonte da página.

Valide Todas as Assinaturas de Webhook

Processadores de pagamento assinam payloads de webhook com HMAC. Sempre verifique essas assinaturas no servidor antes de processar eventos de pagamento. Um endpoint de webhook não verificado é uma porta aberta para atacantes marcarem pagamentos falsos como confirmados.

Verifique Valores de Pagamento no Servidor

Nunca confie em confirmação de pagamento do lado do cliente. Sempre verifique a blockchain (via seu node ou API confiável) para confirmar que o valor correto foi enviado ao endereço correto com confirmações suficientes antes de liberar bens ou serviços.

Use Rate Limiting e Cache

Faça cache das respostas de API para evitar atingir limites de taxa e reduzir latência. Dados de preço não precisam ser buscados a cada requisição. Um cache de 30-60 segundos para dados de preço e de 5 minutos para dados blockchain é suficiente para a maioria das aplicações.

Use Testnet para Desenvolvimento

Sempre desenvolva e teste contra a testnet ou signet do Bitcoin antes de implantar na mainnet. Moedas testnet não têm valor, então erros durante o desenvolvimento não custam nada. A maioria das APIs incluindo Mempool.space, BlockCypher e Bitcoin Core suportam endpoints testnet. Mude para mainnet somente após testes completos de construção de transações, estimativa de taxas e lógica de verificação de pagamentos.

Implemente Tratamento de Erros Adequado

Chamadas de API Bitcoin podem falhar devido a problemas de rede, rate limiting ou indisponibilidade de serviço. Sempre implemente lógica de retry com backoff exponencial, degradação graciosa quando APIs estão indisponíveis e provedores de fallback para operações críticas. Nunca deixe uma falha de API não tratada resultar em status de pagamento incorreto ou perda de dados de transação.

Início Rápido de Integração de Pagamentos

Para comerciantes e empresas que desejam aceitar pagamentos Bitcoin, o caminho mais rápido é a API do Strike (endpoints REST simples, suporte Lightning, 0,3% de taxa) ou a API Greenfield do BTCPay Server (auto-hospedado, zero taxas, controle total). Ambos suportam webhooks para notificações de pagamento, geração de faturas e conversão automática para moeda fiduciária.

Bibliotecas Essenciais por Linguagem

LinguagemBibliotecaCaso de Uso
JavaScriptbitcoinjs-libConstrução de transações, assinatura
Pythonpython-bitcoinlibScripting, prototipagem, interação RPC
Rustrust-bitcoin + LDKAlta performance, integração Lightning
Gobtcsuite / LNDFull-node, daemon Lightning

Checklist de Início para Desenvolvedores

1

Comece com a API do Mempool.space para consultas blockchain. Sem chave necessária, limites de taxa generosos e documentação excelente.

2

Adicione CoinGecko para dados de preço. O nível gratuito suporta a maioria dos desenvolvimentos e aplicações pequenas em produção.

3

Escolha uma biblioteca Bitcoin para sua linguagem: bitcoinjs-lib (JS/TS), python-bitcoinlib (Python) ou rust-bitcoin (Rust).

4

Para integração de pagamentos, avalie BTCPay Server vs Strike com base nos seus requisitos de custódia e taxas.

5

Quando sua aplicação crescer, rode seu próprio node Bitcoin Core para máxima confiabilidade, privacidade e acesso ilimitado à API.

Por Onde Começar Com APIs Bitcoin?

O ecossistema de APIs do Bitcoin é maduro, bem documentado e acessível a desenvolvedores de todos os níveis. Comece com Mempool.space para operações de leitura, adicione Strike ou BTCPay para pagamentos, e use as ferramentas de estimativa de taxas para otimizar custos de transação. Evolua para rodar seu próprio node conforme sua aplicação cresce. A natureza open-source do Bitcoin significa que você nunca fica preso a um único provedor, e a comunidade está entre as mais prestativas em todo o desenvolvimento de software.

Perguntas Frequentes

Qual é a melhor API de Bitcoin para iniciantes?
Mempool.space é o melhor ponto de partida para a maioria dos desenvolvedores. Fornece uma API REST gratuita e open-source para consultar dados da blockchain do Bitcoin (transações, blocos, endereços, taxas) sem precisar de registro ou chaves de API. A API é bem documentada, limites de taxa são generosos e roda na infraestrutura pública do Bitcoin. Para integração de pagamentos, a API do Strike oferece o caminho mais simples para aceitar pagamentos Bitcoin com suporte a Lightning Network.
Preciso rodar um node de Bitcoin para usar APIs Bitcoin?
Não. APIs de serviço como Mempool.space, BlockCypher e Blockchain.com fornecem acesso a dados da blockchain sem rodar seu próprio node. Porém, rodar seu próprio node (Bitcoin Core) oferece o mais alto nível de privacidade, confiabilidade e independência. Se você está construindo uma aplicação de produção que lida com volume significativo de transações, rodar seu próprio node com sua API JSON-RPC é recomendado para evitar dependência de terceiros e limites de taxa.
Como obtenho dados de preço do Bitcoin em tempo real via API?
CoinGecko (gratuito, sem chave API para uso básico, 10-50 chamadas/minuto), CoinMarketCap (nível gratuito disponível, chave API necessária), Kraken (API WebSocket para feeds de preço em tempo real) e Binance (REST + WebSocket, dados de mercado extensos). Para dados históricos de preço, CoinGecko e Messari fornecem datasets abrangentes. A maioria das aplicações deve cachear dados de preço e atualizar em intervalos razoáveis em vez de fazer uma requisição a cada carregamento de página.
O que é a API JSON-RPC do Bitcoin Core?
O Bitcoin Core, a implementação de referência do protocolo Bitcoin, expõe uma API JSON-RPC que permite interagir diretamente com um node Bitcoin. Através desta API você pode criar e enviar transações, consultar dados da blockchain, gerenciar carteiras e monitorar a mempool. É a fonte de dados mais autoritativa possível porque você está consultando sua própria cópia validada da blockchain em vez de confiar em terceiros. O acesso requer rodar o Bitcoin Core e configurar autenticação RPC.
Como aceito pagamentos em Bitcoin programaticamente?
A abordagem recomendada depende dos seus requisitos. Para pagamentos auto-hospedados sem taxa, use a API Greenfield do BTCPay Server. Para integração simples com suporte Lightning, use a API do Strike (0,3% de taxa) ou API do OpenNode (1% de taxa). Para soluções custodiais, a API do Coinbase Commerce lida com fluxo de pagamento, conversão e liquidação. Cada um fornece webhooks para notificar sua aplicação quando pagamentos são recebidos e confirmados. BTCPay é preferido para empresas que querem controle total; Strike é preferido pela simplicidade.
Quais são os limites de taxa para APIs Bitcoin populares?
Limites de taxa variam por provedor. Mempool.space: sem limites publicados, mas pede uso justo. BlockCypher: 200 requisições/hora (gratuito), 200.000/hora (pago). Blockchain.com: 10.000 requisições/8 horas. CoinGecko: 10-50 chamadas/minuto (gratuito), mais em níveis pagos. Bitcoin Core JSON-RPC: sem limites (auto-hospedado). Para aplicações de produção, implemente cache, use conexões WebSocket quando disponível e considere rodar seu próprio node para eliminar totalmente a dependência de limites externos.
Como construo uma aplicação de carteira Bitcoin?
Construir uma carteira Bitcoin requer lidar com geração de chaves, derivação de endereços, construção de transações, assinatura e transmissão. Bibliotecas como bitcoinjs-lib (JavaScript), python-bitcoinlib (Python) e BTCLib (Go) fornecem as primitivas criptográficas. Para gerenciamento de chaves, use BIP-39 (seed phrases mnemônicas), BIP-32 (carteiras determinísticas hierárquicas) e BIP-84 (endereços native SegWit). Segurança é primordial: chaves privadas nunca devem ser transmitidas pela rede ou armazenadas em texto simples. A maioria dos desenvolvedores deve usar bibliotecas de carteira estabelecidas em vez de implementar criptografia do zero.
O que é o ecossistema de API da Lightning Network?
A Lightning Network tem várias implementações principais, cada uma com sua própria API. LND (Lightning Network Daemon) expõe API gRPC e REST para gerenciar canais, enviar/receber pagamentos e consultar estado da rede. Core Lightning (anteriormente c-lightning) fornece interface JSON-RPC. Eclair oferece API REST mais simples. Para aplicações que precisam de Lightning sem rodar um node, serviços como Strike, Alby e Voltage fornecem APIs Lightning hospedadas. Os protocolos LNURL e Lightning Address padronizam fluxos de pagamento entre implementações.
Como consulto dados on-chain do Bitcoin para analytics?
Para analytics on-chain, Glassnode fornece métricas abrangentes (SOPR, NVT, fluxos de exchange) via API REST com níveis gratuitos e pagos. Blockchain.com oferece dados brutos da blockchain através de sua API. Mempool.space fornece dados de transação, bloco e taxa. Para análise customizada, Blockchair oferece linguagem de consulta tipo SQL para dados blockchain. Chainalysis e Elliptic oferecem APIs focadas em compliance para rastreamento de transações. Para máxima flexibilidade, consulte seu próprio node Bitcoin Core usando os comandos RPC getblock, getrawtransaction e getblockstats.
Quais linguagens de programação são melhores para desenvolvimento Bitcoin?
O Bitcoin Core é escrito em C++, mas você pode interagir com Bitcoin em qualquer linguagem. As escolhas mais populares são Python (python-bitcoinlib, ecossistema amplo), JavaScript/TypeScript (bitcoinjs-lib, integração web), Rust (rust-bitcoin, crescendo no ecossistema Bitcoin) e Go (btcd, btcsuite). Para desenvolvimento Lightning, Go (LND) e Rust (LDK) são dominantes. Para aplicações web que interagem com APIs Bitcoin, TypeScript/JavaScript é a escolha mais prática devido ao ferramental nativo da web.
Como lido com webhooks e notificações de pagamento Bitcoin?
A maioria dos processadores de pagamento (BTCPay, Strike, OpenNode) suporta webhooks que enviam POST JSON para seu servidor quando eventos de pagamento ocorrem (pagamento recebido, confirmado, expirado). Implemente um endpoint que valide a assinatura do webhook, processe o evento e retorne status 200. Para soluções auto-hospedadas, as opções walletnotify e blocknotify do Bitcoin Core podem acionar scripts quando transações são detectadas. Sempre verifique valores e confirmações de pagamento no servidor em vez de confiar em dados do lado do cliente.

Construa com Bitcoin

Aprenda sobre soluções de escalabilidade do Bitcoin e como comerciantes estão usando essas APIs em produção.