Resumen

La API proporciona acceso programático a funciones de la plataforma unMineable mediante autenticación por firma HMAC-SHA256. Esta API sin estado está diseñada para integraciones servidor a servidor y usuarios avanzados.

URL base
https://api.unmineable.dev/v1
Autenticación
Public metadata and simulator routes do not require signing. All other requests must be signed with HMAC-SHA256 using your API credentials.
Límites de tasa
500 solicitudes por minuto por token/IP
Autenticación HMAC

Authenticated endpoints require three HTTP headers:

x-user-api-key
La clave pública de tu token API
x-user-api-timestamp
Marca de tiempo Unix de 13 dígitos en milisegundos
x-user-api-signature
Firma HMAC-SHA256 hexadecimal en minúsculas

Payload de firma

La firma se calcula concatenando los siguientes valores con saltos de línea:

<METODO_HTTP>
<ruta de la solicitud>
<cadena query sin procesar (sin ?)>
<x-user-api-timestamp>
<sha256 hex del cuerpo bruto de la solicitud>

Reglas de alcance

read
Solo solicitudes GET y HEAD
read_write
Solicitudes GET, POST, PATCH y DELETE

Códigos de error

401 UNAUTHORIZED
Credenciales inválidas o ausentes
401 INVALID_SIGNATURE
La verificación de la firma HMAC falló
401 INVALID_TIMESTAMP
La marca de tiempo de la solicitud está fuera de la ventana de 5 minutos
403 INSUFFICIENT_SCOPE
El token no tiene el scope requerido para esta operación
403 IP_NOT_ALLOWED
La IP de la solicitud no está en la lista de IPs permitidas del token
409 USER_ALIAS_REQUIRED
El usuario debe crear primero un alias predeterminado

Ejemplo 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 la información del perfil de la cuenta actual, incluyendo UUID, correo electrónico, nombre de usuario, código de referido y estado del alias.
Auth: requerida (scope: read)
Cabeceras
x-user-api-key: upk_abc123...
x-user-api-timestamp: 1743460800000
x-user-api-signature: a1b2c3d4...
POST
/v1/me
Actualiza exactamente un campo del perfil por solicitud. Acepta username (para crear el alias predeterminado) o referrer_code, incluyendo null para borrarlo.
Auth: requerida (scope: read_write)
SOLICITUD (Nombre de usuario)
{ "username": "myalias" }
Workers
GET
/v1/workers
Lista todos los workers con paginación, filtros y ordenación. Devuelve conteos sin filtrar y contadores desglosados filtrados.
Auth: requerida (scope: read, alias requerido)
Parámetros de query:
page, algorithm, online, region, name, chart_algo, period, sort, dir
Cadena de consulta
?page=1&algorithm=randomx&online=true&chart_algo=randomx&period=24h&sort=last_seen&dir=desc
GET
/v1/workers/counts
Devuelve los conteos de workers: total, en línea y fuera de línea.
Auth: requerida (scope: read, alias requerido)
Cadena de consulta
GET
/v1/workers/chart
Devuelve datos de hashrate en serie temporal agrupados por algoritmo para gráficos.
Auth: requerida (scope: read, alias requerido)
Parámetros de query:
chart_algo, period (1h|24h)
Cadena de consulta
?period=24h&chart_algo=randomx
Pagos
GET
/v1/payments
Pagos de usuario paginados con enriquecimiento de moneda/red y contadores filtrados.
Auth: requerida (scope: read, alias requerido)
Parámetros de query:
page, coin, network, date_from, date_to, tz, status, sort, dir
Cadena de consulta
?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 un retiro manual. El importe del retiro se deriva del saldo de la cuenta.
Auth: requerida (scope: read_write, alias requerido)
SOLICITUD
{ "coin": "BTC", "uuid": "addr-uuid" }
GET
/v1/payments/:uuid/events
Devuelve la cronología de eventos de un pago específico.
Auth: requerida (scope: read, alias requerido)
Ruta
/v1/payments/550e8400-e29b-41d4-a716-446655440001/events
Activos
GET
/v1/assets
Devuelve el catálogo mixto de activos de la cuenta, incluyendo activos de moneda y direcciones heredadas adjuntas.
Auth: requerida (scope: read, alias requerido)
Parámetros de query:
is_active, sort, dir
Cadena de consulta
?is_active=true&sort=amount&dir=desc
GET
/v1/assets/:coin/stats
Devuelve estadísticas a nivel de moneda, incluyendo saldo, recompensas de minería, recompensas por referidos y totales de pagos.
Auth: requerida (scope: read, alias requerido)
Ruta
/v1/assets/BTC/stats
POST
/v1/assets/update
Reemplaza la distribución actual de recompensas de la cuenta autenticada. Acepta { coins: [...] }, { targets: [...] } o un arreglo directo.
Auth: requerida (scope: read_write, alias requerido)
SOLICITUD
{
  "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 }
  ]
}
Direcciones heredadas
POST
/v1/legacy-addresses/attach
Adjunta a la cuenta autenticada una dirección heredada compartida ya existente.
Auth: requerida (scope: read_write, alias requerido)
SOLICITUD
{ "uuid": "legacy-address-uuid" }
GET
/v1/legacy-addresses/:uuid
Devuelve la configuración actual de una dirección heredada adjunta.
Auth: requerida (scope: read, alias requerido)
Ruta
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002
GET
/v1/legacy-addresses/:uuid/stats
Devuelve estadísticas compartidas de la dirección heredada, incluyendo saldo y totales de recompensas.
Auth: requerida (scope: read, alias requerido)
Ruta
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002/stats
PATCH
/v1/legacy-addresses/:uuid
Actualiza la configuración de una dirección heredada adjunta.
Auth: requerida (scope: read_write, alias requerido)
SOLICITUD
{ "auto_detach_on_payment": true }
DELETE
/v1/legacy-addresses/:uuid
Desvincula una dirección heredada de la cuenta autenticada.
Auth: requerida (scope: read_write, alias requerido)
Ruta
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002
POST
/v1/legacy-addresses/:uuid/payments
Solicita un pago manual para una dirección heredada adjunta.
Auth: requerida (scope: read_write, alias requerido)
SOLICITUD
{ "platform": "api" }
Referidos
GET
/v1/referrals
Lista los workers referidos de la cuenta autenticada en fuentes account-flow y legacy.
Auth: requerida (scope: read)
Parámetros de query:
page, type, algorithm, online, sort, dir
Cadena de consulta
?page=1&type=user,legacy&online=true
Panel
GET
/v1/dashboard/assets
Vista mínima de activos para un renderizado rápido del panel.
Auth: requerida (scope: read, alias requerido)
Ruta
/v1/dashboard/assets
GET
/v1/dashboard/summary
Última instantánea resumida de los datos del panel.
Auth: requerida (scope: read, alias requerido)
Ruta
/v1/dashboard/summary
GET
/v1/dashboard/events
Eventos del panel paginados, incluyendo eventos de worker, recompensa y pago.
Auth: requerida (scope: read, alias requerido)
Parámetros de query:
page, type, dir
Cadena de consulta
?page=1&type=worker,reward,payout&dir=desc
Direcciones
GET
/v1/addresses
Lista todas las direcciones de retiro propiedad de la cuenta actual.
Auth: requerida (scope: read, alias requerido)
Parámetros de query:
network, enabled, page, sort, dir
Cadena de consulta
?network=BTC,ETH&enabled=1&page=1
POST
/v1/addresses
Crea una nueva dirección de retiro.
Auth: requerida (scope: read_write, alias requerido)
SOLICITUD
{
  "network": "ETH",
  "alias": "Main Wallet",
  "address": "0xabc123...",
  "memo": "",
  "platform": "api"
}
PATCH
/v1/addresses/:uuid
Actualiza los campos mutables de una dirección de retiro existente.
Auth: requerida (scope: read_write, alias requerido)
Parámetros de query:
dry_run
SOLICITUD
{ "alias": "New Label", "platform": "api" }
DELETE
/v1/addresses/:uuid
Elimina lógicamente una dirección de retiro.
Auth: requerida (scope: read_write, alias requerido)
Parámetros de query:
dry_run
Ruta
/v1/addresses/550e8400-e29b-41d4-a716-446655440098
Configuración de retiros
GET
/v1/assets/:coin/withdraw/address
Devuelve la preferencia actual de retiro para un activo específico.
Auth: requerida (scope: read, alias requerido)
Ruta
/v1/assets/BTC/withdraw/address
POST
/v1/assets/:coin/withdraw/address
Configura las preferencias de retiro para un activo específico.
Auth: requerida (scope: read_write, alias requerido)
SOLICITUD
{
  "uuid": "addr-uuid",
  "payment_threshold": "0.005",
  "auto_withdraw": true
}
Meta
GET
/v1/meta/coin
Public coin metadata with optional compact mode and categories grouping.
Auth: none
Parámetros de query:
compact, categories
Cadena de consulta
?compact=true
GET
/v1/meta/coin/:coin
Public coin detail for a specific coin.
Auth: none
Ruta
/v1/meta/coin/ADA
Simulator
POST
/v1/simulator
Public forward mining simulator for advanced and device modes.
Auth: none
SOLICITUD
{
  "mode": "advanced",
  "coin": "BTC",
  "algorithm": "randomx",
  "hashrate_hs": "120000000",
  "scenario_set": "default",
  "referral_discount": false
}
Back to top