Skip to content

API REST

A API REST da Cloud Service fornece endpoints HTTP simples para consultar dados da blockchain sem autenticação para operações somente leitura.

URL Base

http://localhost:16180/rest/

Endpoints

Informações da Cadeia

GET /rest/chaininfo

Retorna informações da blockchain.

bash
curl http://localhost:16180/rest/chaininfo

Resposta:

json
{
    "chain": "main",
    "blocks": 524288,
    "headers": 524288,
    "bestblockhash": "0000...",
    "difficulty": 12345678.90,
    "verificationprogress": 0.999999
}

Detalhes do Bloco

GET /rest/block/<hash>

Retorna detalhes do bloco para o hash fornecido.

bash
curl http://localhost:16180/rest/block/0000...hash

GET /rest/block/notxdetails/<hash>

Retorna detalhes do bloco sem detalhes de transação.

bash
curl http://localhost:16180/rest/block/notxdetails/0000...hash

Informações de Transação

GET /rest/tx/<txid>

Retorna dados de transação para o ID de transação fornecido.

bash
curl http://localhost:16180/rest/tx/txid_aqui

UTXO (Saídas Não Gastas)

GET /rest/getutxos/<checkmempool>/<txid>-<n>/<txid>-<n>/...

Retorna informações de saída de transação não gasta.

bash
# Verificar UTXOs específicos
curl "http://localhost:16180/rest/getutxos/1/txid1-0/txid2-1"

Cabeçalhos de Bloco

GET /rest/headers/<count>/<hash>

Retorna os cabeçalhos count a partir do hash fornecido.

bash
# Obter 10 cabeçalhos
curl http://localhost:16180/rest/headers/10/hash_inicial

Pool de Memória

GET /rest/mempool/info

Retorna informações do pool de memória.

bash
curl http://localhost:16180/rest/mempool/info

Resposta:

json
{
    "loaded": true,
    "size": 5,
    "bytes": 2048,
    "usage": 4096,
    "maxmempool": 314572800,
    "mempoolminfee": 0.00001000
}

GET /rest/mempool/contents

Retorna transações no pool de memória.

bash
curl http://localhost:16180/rest/mempool/contents

Formatos de Resposta

A API REST suporta JSON e binário:

bash
# JSON (padrão)
curl http://localhost:16180/rest/chaininfo.json

# Binário
curl http://localhost:16180/rest/chaininfo.bin

# Hex
curl http://localhost:16180/rest/chaininfo.hex

Habilitando a API REST

Adicione ao cs.conf:

ini
rest=1

Ou inicie com a flag:

bash
csd -rest -daemon

Exemplos de Integração

Python

python
import requests

BASE_URL = "http://localhost:16180/rest"

def get_blockchain_info():
    response = requests.get(f"{BASE_URL}/chaininfo.json")
    return response.json()

def get_block(block_hash):
    response = requests.get(f"{BASE_URL}/block/{block_hash}.json")
    return response.json()

info = get_blockchain_info()
print(f"Blocos: {info['blocks']}")

JavaScript

javascript
const axios = require('axios');

const BASE_URL = 'http://localhost:16180/rest';

async function getBlockchainInfo() {
  const response = await axios.get(`${BASE_URL}/chaininfo.json`);
  return response.data;
}

async function main() {
  const info = await getBlockchainInfo();
  console.log(`Blocos: ${info.blocks}`);
}

main();

Próximos Passos

Lançado sob a Licença MIT.