Visão geral

A API fornece acesso programático aos recursos da plataforma unMineable usando autenticação por assinatura HMAC-SHA256. Esta API sem estado foi projetada para integrações servidor a servidor e usuários avançados.

URL base
https://api.unmineable.dev/v1
Autenticação
Public metadata and simulator routes do not require signing. All other requests must be signed with HMAC-SHA256 using your API credentials.
Limites de taxa
500 requisições por minuto por token/IP
Autenticação HMAC

Authenticated endpoints require three HTTP headers:

x-user-api-key
A chave pública do seu token de API
x-user-api-timestamp
Timestamp Unix de 13 dígitos em milissegundos
x-user-api-signature
Assinatura HMAC-SHA256 hexadecimal em minúsculas

Payload de assinatura

A assinatura é calculada concatenando os seguintes valores com quebras de linha:

<HTTP_METHOD>
<caminho da requisição>
<query string bruta (sem ?)>
<x-user-api-timestamp>
<sha256 hex do corpo bruto da requisição>

Regras de escopo

read
Apenas requisições GET e HEAD
read_write
Requisições GET, POST, PATCH e DELETE

Códigos de erro

401 UNAUTHORIZED
Credenciais inválidas ou ausentes
401 INVALID_SIGNATURE
A verificação da assinatura HMAC falhou
401 INVALID_TIMESTAMP
O timestamp da requisição está fora da janela de 5 minutos
403 INSUFFICIENT_SCOPE
O token não possui o escopo necessário para esta operação
403 IP_NOT_ALLOWED
O IP da requisição não está na lista de IPs permitidos do token
409 USER_ALIAS_REQUIRED
O usuário precisa criar primeiro um alias padrão

Exemplo de código (JavaScript)

const crypto = require('crypto');

function signRequest(method, path, queryString, body, timestamp, secret) {
  const payload = [
    method.toUpperCase(),
    path,
    queryString || '',
    timestamp,
    crypto.createHash('sha256').update(body || '').digest('hex')
  ].join('\n');
  return crypto.createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
}

const timestamp = Date.now().toString();
const signature = signRequest('GET', '/v1/me', '', '', timestamp, 'your-secret');
Perfil
GET
/v1/me
Recupera as informações de perfil da conta atual, incluindo UUID, e-mail, nome de usuário, código de indicação e status do alias.
Auth: obrigatória (scope: read)
Cabeçalhos
x-user-api-key: upk_abc123...
x-user-api-timestamp: 1743460800000
x-user-api-signature: a1b2c3d4...
POST
/v1/me
Atualiza exatamente um campo de perfil por requisição. Aceita username (para criar o alias padrão) ou referrer_code, incluindo null para limpá-lo.
Auth: obrigatória (scope: read_write)
REQUISIÇÃO (Nome de usuário)
{ "username": "myalias" }
Workers
GET
/v1/workers
Lista todos os workers com paginação, filtros e ordenação. Retorna contagens sem filtro e contadores filtrados por divisão.
Auth: obrigatória (scope: read, alias obrigatório)
Parâmetros de query:
page, algorithm, online, region, name, chart_algo, period, sort, dir
Query string
?page=1&algorithm=randomx&online=true&chart_algo=randomx&period=24h&sort=last_seen&dir=desc
GET
/v1/workers/counts
Retorna as contagens de workers: total, online e offline.
Auth: obrigatória (scope: read, alias obrigatório)
Query string
GET
/v1/workers/chart
Retorna dados de hashrate em série temporal agrupados por algoritmo para gráficos.
Auth: obrigatória (scope: read, alias obrigatório)
Parâmetros de query:
chart_algo, period (1h|24h)
Query string
?period=24h&chart_algo=randomx
Pagamentos
GET
/v1/payments
Pagamentos do usuário paginados com enriquecimento de moeda/rede e contadores filtrados.
Auth: obrigatória (scope: read, alias obrigatório)
Parâmetros de query:
page, coin, network, date_from, date_to, tz, status, sort, dir
Query string
?page=1&coin=BTC&network=BTC&date_from=2026-03-01&date_to=2026-03-31&tz=-180&status=success&sort=timestamp&dir=desc
POST
/v1/payments
Solicita um saque manual. O valor do saque é derivado do saldo da conta.
Auth: obrigatória (scope: read_write, alias obrigatório)
REQUISIÇÃO
{ "coin": "BTC", "uuid": "addr-uuid" }
GET
/v1/payments/:uuid/events
Retorna a linha do tempo de eventos de um pagamento específico.
Auth: obrigatória (scope: read, alias obrigatório)
Caminho
/v1/payments/550e8400-e29b-41d4-a716-446655440001/events
Ativos
GET
/v1/assets
Retorna o catálogo misto de ativos da conta, incluindo ativos de moeda e endereços legados anexados.
Auth: obrigatória (scope: read, alias obrigatório)
Parâmetros de query:
is_active, sort, dir
Query string
?is_active=true&sort=amount&dir=desc
GET
/v1/assets/:coin/stats
Retorna estatísticas em nível de moeda, incluindo saldo, recompensas de mineração, recompensas de indicação e totais de pagamento.
Auth: obrigatória (scope: read, alias obrigatório)
Caminho
/v1/assets/BTC/stats
POST
/v1/assets/update
Substitui a distribuição atual de recompensas da conta autenticada. Aceita { coins: [...] }, { targets: [...] } ou um array simples.
Auth: obrigatória (scope: read_write, alias obrigatório)
REQUISIÇÃO
{
  "targets": [
    { "type": "coin", "coin": "BTC", "reward_hashrate_percentage": 0.6, "reward_algorithm": "randomx" },
    { "type": "legacy_address", "uuid": "legacy-address-uuid", "reward_hashrate_percentage": 0.4 }
  ]
}
Endereços legados
POST
/v1/legacy-addresses/attach
Anexa à conta autenticada um endereço legado compartilhado já existente.
Auth: obrigatória (scope: read_write, alias obrigatório)
REQUISIÇÃO
{ "uuid": "legacy-address-uuid" }
GET
/v1/legacy-addresses/:uuid
Retorna as configurações atuais de um endereço legado anexado.
Auth: obrigatória (scope: read, alias obrigatório)
Caminho
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002
GET
/v1/legacy-addresses/:uuid/stats
Retorna estatísticas compartilhadas do endereço legado, incluindo saldo e totais de recompensa.
Auth: obrigatória (scope: read, alias obrigatório)
Caminho
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002/stats
PATCH
/v1/legacy-addresses/:uuid
Atualiza as configurações de um endereço legado anexado.
Auth: obrigatória (scope: read_write, alias obrigatório)
REQUISIÇÃO
{ "auto_detach_on_payment": true }
DELETE
/v1/legacy-addresses/:uuid
Desvincula um endereço legado da conta autenticada.
Auth: obrigatória (scope: read_write, alias obrigatório)
Caminho
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002
POST
/v1/legacy-addresses/:uuid/payments
Solicita um pagamento manual para um endereço legado anexado.
Auth: obrigatória (scope: read_write, alias obrigatório)
REQUISIÇÃO
{ "platform": "api" }
Indicações
GET
/v1/referrals
Lista workers indicados da conta autenticada em fontes account-flow e legacy.
Auth: obrigatória (scope: read)
Parâmetros de query:
page, type, algorithm, online, sort, dir
Query string
?page=1&type=user,legacy&online=true
Painel
GET
/v1/dashboard/assets
Visualização mínima de ativos para renderização rápida do painel.
Auth: obrigatória (scope: read, alias obrigatório)
Caminho
/v1/dashboard/assets
GET
/v1/dashboard/summary
Instantâneo resumido mais recente dos dados do painel.
Auth: obrigatória (scope: read, alias obrigatório)
Caminho
/v1/dashboard/summary
GET
/v1/dashboard/events
Eventos do painel paginados, incluindo eventos de worker, recompensa e pagamento.
Auth: obrigatória (scope: read, alias obrigatório)
Parâmetros de query:
page, type, dir
Query string
?page=1&type=worker,reward,payout&dir=desc
Endereços
GET
/v1/addresses
Lista todos os endereços de saque pertencentes à conta atual.
Auth: obrigatória (scope: read, alias obrigatório)
Parâmetros de query:
network, enabled, page, sort, dir
Query string
?network=BTC,ETH&enabled=1&page=1
POST
/v1/addresses
Cria um novo endereço de saque.
Auth: obrigatória (scope: read_write, alias obrigatório)
REQUISIÇÃO
{
  "network": "ETH",
  "alias": "Main Wallet",
  "address": "0xabc123...",
  "memo": "",
  "platform": "api"
}
PATCH
/v1/addresses/:uuid
Atualiza campos mutáveis de um endereço de saque existente.
Auth: obrigatória (scope: read_write, alias obrigatório)
Parâmetros de query:
dry_run
REQUISIÇÃO
{ "alias": "New Label", "platform": "api" }
DELETE
/v1/addresses/:uuid
Faz a exclusão lógica de um endereço de saque.
Auth: obrigatória (scope: read_write, alias obrigatório)
Parâmetros de query:
dry_run
Caminho
/v1/addresses/550e8400-e29b-41d4-a716-446655440098
Configurações de saque
GET
/v1/assets/:coin/withdraw/address
Retorna a preferência atual de saque para um ativo específico.
Auth: obrigatória (scope: read, alias obrigatório)
Caminho
/v1/assets/BTC/withdraw/address
POST
/v1/assets/:coin/withdraw/address
Define as preferências de saque para um ativo específico.
Auth: obrigatória (scope: read_write, alias obrigatório)
REQUISIÇÃO
{
  "uuid": "addr-uuid",
  "payment_threshold": "0.005",
  "auto_withdraw": true
}
Metadados
GET
/v1/meta/coin
Public coin metadata with optional compact mode and categories grouping.
Auth: none
Parâmetros de query:
compact, categories
Query string
?compact=true
GET
/v1/meta/coin/:coin
Public coin detail for a specific coin.
Auth: none
Caminho
/v1/meta/coin/ADA
Simulator
POST
/v1/simulator
Public forward mining simulator for advanced and device modes.
Auth: none
REQUISIÇÃO
{
  "mode": "advanced",
  "coin": "BTC",
  "algorithm": "randomx",
  "hashrate_hs": "120000000",
  "scenario_set": "default",
  "referral_discount": false
}
Back to top