Vue d'ensemble

L'API fournit un accès programmatique aux fonctionnalités de la plateforme unMineable via une authentification par signature HMAC-SHA256. Cette API sans état est conçue pour les intégrations serveur à serveur et les utilisateurs avancés.

URL de base
https://api.unmineable.dev/v1
Authentification
Public metadata and simulator routes do not require signing. All other requests must be signed with HMAC-SHA256 using your API credentials.
Limites de débit
500 requêtes par minute par jeton/IP
Authentification HMAC

Authenticated endpoints require three HTTP headers:

x-user-api-key
La clé publique de votre jeton API
x-user-api-timestamp
Horodatage Unix sur 13 chiffres en millisecondes
x-user-api-signature
Signature HMAC-SHA256 hexadécimale en minuscules

Payload de signature

La signature est calculée en concaténant les valeurs suivantes avec des sauts de ligne :

<METHODE_HTTP>
<chemin de la requête>
<chaîne de requête brute (sans ?)>
<x-user-api-timestamp>
<sha256 hex du corps brut de la requête>

Règles de portée

read
Requêtes GET et HEAD uniquement
read_write
Requêtes GET, POST, PATCH et DELETE

Codes d'erreur

401 UNAUTHORIZED
Identifiants invalides ou manquants
401 INVALID_SIGNATURE
La vérification de la signature HMAC a échoué
401 INVALID_TIMESTAMP
L'horodatage de la requête est hors de la fenêtre de 5 minutes
403 INSUFFICIENT_SCOPE
Le jeton n'a pas la portée requise pour cette opération
403 IP_NOT_ALLOWED
L'IP de la requête ne figure pas dans la liste des IP autorisées du jeton
409 USER_ALIAS_REQUIRED
L'utilisateur doit d'abord créer un alias par défaut

Exemple de code (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');
Profil
GET
/v1/me
Récupère les informations du profil du compte actuel, y compris l'UUID, l'e-mail, le nom d'utilisateur, le code de parrainage et l'état de l'alias.
Auth: requise (scope: read)
En-têtes
x-user-api-key: upk_abc123...
x-user-api-timestamp: 1743460800000
x-user-api-signature: a1b2c3d4...
POST
/v1/me
Met à jour exactement un champ de profil par requête. Accepte username (pour créer l'alias par défaut) ou referrer_code, y compris null pour l'effacer.
Auth: requise (scope: read_write)
REQUÊTE (Nom d'utilisateur)
{ "username": "myalias" }
Workers
GET
/v1/workers
Liste tous les workers avec pagination, filtres et tri. Retourne les comptes non filtrés et des compteurs ventilés filtrés.
Auth: requise (scope: read, alias requis)
Paramètres de requête :
page, algorithm, online, region, name, chart_algo, period, sort, dir
Chaîne de requête
?page=1&algorithm=randomx&online=true&chart_algo=randomx&period=24h&sort=last_seen&dir=desc
GET
/v1/workers/counts
Retourne le nombre de workers : total, en ligne et hors ligne.
Auth: requise (scope: read, alias requis)
Chaîne de requête
GET
/v1/workers/chart
Retourne des données de hashrate en série temporelle regroupées par algorithme pour les graphiques.
Auth: requise (scope: read, alias requis)
Paramètres de requête :
chart_algo, period (1h|24h)
Chaîne de requête
?period=24h&chart_algo=randomx
Paiements
GET
/v1/payments
Paiements utilisateur paginés avec enrichissement monnaie/réseau et compteurs filtrés.
Auth: requise (scope: read, alias requis)
Paramètres de requête :
page, coin, network, date_from, date_to, tz, status, sort, dir
Chaîne de requête
?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
Demande un retrait manuel. Le montant du retrait est dérivé du solde du compte.
Auth: requise (scope: read_write, alias requis)
REQUÊTE
{ "coin": "BTC", "uuid": "addr-uuid" }
GET
/v1/payments/:uuid/events
Retourne la chronologie des événements d'un paiement spécifique.
Auth: requise (scope: read, alias requis)
Chemin
/v1/payments/550e8400-e29b-41d4-a716-446655440001/events
Actifs
GET
/v1/assets
Retourne le catalogue mixte des actifs du compte, y compris les actifs de monnaie et les adresses héritées attachées.
Auth: requise (scope: read, alias requis)
Paramètres de requête :
is_active, sort, dir
Chaîne de requête
?is_active=true&sort=amount&dir=desc
GET
/v1/assets/:coin/stats
Retourne des statistiques au niveau de la monnaie, y compris le solde, les récompenses de minage, les récompenses de parrainage et les totaux de paiement.
Auth: requise (scope: read, alias requis)
Chemin
/v1/assets/BTC/stats
POST
/v1/assets/update
Remplace la répartition actuelle des récompenses du compte connecté. Accepte { coins: [...] }, { targets: [...] } ou un tableau brut.
Auth: requise (scope: read_write, alias requis)
REQUÊTE
{
  "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 }
  ]
}
Adresses héritées
POST
/v1/legacy-addresses/attach
Attache au compte connecté une adresse héritée partagée existante.
Auth: requise (scope: read_write, alias requis)
REQUÊTE
{ "uuid": "legacy-address-uuid" }
GET
/v1/legacy-addresses/:uuid
Retourne les paramètres actuels d'une adresse héritée attachée.
Auth: requise (scope: read, alias requis)
Chemin
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002
GET
/v1/legacy-addresses/:uuid/stats
Retourne les statistiques partagées d'une adresse héritée, y compris le solde et les totaux de récompense.
Auth: requise (scope: read, alias requis)
Chemin
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002/stats
PATCH
/v1/legacy-addresses/:uuid
Met à jour les paramètres d'une adresse héritée attachée.
Auth: requise (scope: read_write, alias requis)
REQUÊTE
{ "auto_detach_on_payment": true }
DELETE
/v1/legacy-addresses/:uuid
Détache une adresse héritée du compte connecté.
Auth: requise (scope: read_write, alias requis)
Chemin
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002
POST
/v1/legacy-addresses/:uuid/payments
Demande un paiement manuel pour une adresse héritée attachée.
Auth: requise (scope: read_write, alias requis)
REQUÊTE
{ "platform": "api" }
Parrainages
GET
/v1/referrals
Liste les workers parrainés du compte connecté à travers les sources account-flow et legacy.
Auth: requise (scope: read)
Paramètres de requête :
page, type, algorithm, online, sort, dir
Chaîne de requête
?page=1&type=user,legacy&online=true
Tableau de bord
GET
/v1/dashboard/assets
Vue minimale des actifs pour un rendu rapide du tableau de bord.
Auth: requise (scope: read, alias requis)
Chemin
/v1/dashboard/assets
GET
/v1/dashboard/summary
Dernier instantané résumé des données du tableau de bord.
Auth: requise (scope: read, alias requis)
Chemin
/v1/dashboard/summary
GET
/v1/dashboard/events
Événements paginés du tableau de bord, y compris les événements worker, récompense et paiement.
Auth: requise (scope: read, alias requis)
Paramètres de requête :
page, type, dir
Chaîne de requête
?page=1&type=worker,reward,payout&dir=desc
Adresses
GET
/v1/addresses
Liste toutes les adresses de retrait appartenant au compte actuel.
Auth: requise (scope: read, alias requis)
Paramètres de requête :
network, enabled, page, sort, dir
Chaîne de requête
?network=BTC,ETH&enabled=1&page=1
POST
/v1/addresses
Crée une nouvelle adresse de retrait.
Auth: requise (scope: read_write, alias requis)
REQUÊTE
{
  "network": "ETH",
  "alias": "Main Wallet",
  "address": "0xabc123...",
  "memo": "",
  "platform": "api"
}
PATCH
/v1/addresses/:uuid
Met à jour les champs modifiables d'une adresse de retrait existante.
Auth: requise (scope: read_write, alias requis)
Paramètres de requête :
dry_run
REQUÊTE
{ "alias": "New Label", "platform": "api" }
DELETE
/v1/addresses/:uuid
Supprime logiquement une adresse de retrait.
Auth: requise (scope: read_write, alias requis)
Paramètres de requête :
dry_run
Chemin
/v1/addresses/550e8400-e29b-41d4-a716-446655440098
Paramètres de retrait
GET
/v1/assets/:coin/withdraw/address
Retourne la préférence de retrait actuelle pour un actif spécifique.
Auth: requise (scope: read, alias requis)
Chemin
/v1/assets/BTC/withdraw/address
POST
/v1/assets/:coin/withdraw/address
Définit les préférences de retrait pour un actif spécifique.
Auth: requise (scope: read_write, alias requis)
REQUÊTE
{
  "uuid": "addr-uuid",
  "payment_threshold": "0.005",
  "auto_withdraw": true
}
Métadonnées
GET
/v1/meta/coin
Public coin metadata with optional compact mode and categories grouping.
Auth: none
Paramètres de requête :
compact, categories
Chaîne de requête
?compact=true
GET
/v1/meta/coin/:coin
Public coin detail for a specific coin.
Auth: none
Chemin
/v1/meta/coin/ADA
Simulator
POST
/v1/simulator
Public forward mining simulator for advanced and device modes.
Auth: none
REQUÊTE
{
  "mode": "advanced",
  "coin": "BTC",
  "algorithm": "randomx",
  "hashrate_hs": "120000000",
  "scenario_set": "default",
  "referral_discount": false
}
Back to top