Überblick

Die API bietet programmgesteuerten Zugriff auf Funktionen der unMineable-Plattform über HMAC-SHA256-Signaturauthentifizierung. Diese zustandslose API ist für Server-zu-Server-Integrationen und Power-User ausgelegt.

Basis-URL
https://api.unmineable.dev/v1
Authentifizierung
Public metadata and simulator routes do not require signing. All other requests must be signed with HMAC-SHA256 using your API credentials.
Ratenlimits
500 Anfragen pro Minute pro Token/IP
HMAC-Authentifizierung

Authenticated endpoints require three HTTP headers:

x-user-api-key
Der öffentliche Schlüssel Ihres API-Tokens
x-user-api-timestamp
13-stelliger Unix-Zeitstempel in Millisekunden
x-user-api-signature
HMAC-SHA256-Signatur in hexadezimaler Kleinschreibung

Signatur-Payload

Die Signatur wird berechnet, indem die folgenden Werte mit Zeilenumbrüchen verknüpft werden:

<HTTP_METHOD>
<Anfragepfad>
<roher Query-String (ohne ?)>
<x-user-api-timestamp>
<sha256-Hexwert des rohen Request-Bodys>

Scope-Regeln

read
Nur GET- und HEAD-Anfragen
read_write
GET-, POST-, PATCH- und DELETE-Anfragen

Fehlercodes

401 UNAUTHORIZED
Ungültige oder fehlende Zugangsdaten
401 INVALID_SIGNATURE
Die HMAC-Signaturprüfung ist fehlgeschlagen
401 INVALID_TIMESTAMP
Der Anfrage-Zeitstempel liegt außerhalb des 5-Minuten-Fensters
403 INSUFFICIENT_SCOPE
Dem Token fehlt der erforderliche Scope für diesen Vorgang
403 IP_NOT_ALLOWED
Die Anfrage-IP steht nicht in der Liste der erlaubten Token-IPs
409 USER_ALIAS_REQUIRED
Der Benutzer muss zuerst einen Standard-Alias erstellen

Codebeispiel (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
Ruft die Profilinformationen des aktuellen Kontos ab, einschließlich UUID, E-Mail, Benutzername, Empfehlungscode und Alias-Status.
Auth: erforderlich (scope: read)
Header
x-user-api-key: upk_abc123...
x-user-api-timestamp: 1743460800000
x-user-api-signature: a1b2c3d4...
POST
/v1/me
Aktualisiert genau ein Profilfeld pro Anfrage. Akzeptiert username (zum Erstellen des Standard-Alias) oder referrer_code, einschließlich null zum Löschen.
Auth: erforderlich (scope: read_write)
ANFRAGE (Benutzername)
{ "username": "myalias" }
Worker
GET
/v1/workers
Listet alle Worker mit Paginierung, Filtern und Sortierung auf. Gibt ungefilterte Zähler und gefilterte Aufschlüsselungszähler zurück.
Auth: erforderlich (scope: read, Alias erforderlich)
Query-Parameter:
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
Gibt Worker-Zähler zurück: gesamt, online und offline.
Auth: erforderlich (scope: read, Alias erforderlich)
Query-String
GET
/v1/workers/chart
Gibt Hashrate-Zeitreihendaten zurück, gruppiert nach Algorithmus für Diagramme.
Auth: erforderlich (scope: read, Alias erforderlich)
Query-Parameter:
chart_algo, period (1h|24h)
Query-String
?period=24h&chart_algo=randomx
Auszahlungen
GET
/v1/payments
Paginierte Benutzerauszahlungen mit Coin/Netzwerk-Anreicherung und gefilterten Zählern.
Auth: erforderlich (scope: read, Alias erforderlich)
Query-Parameter:
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
Fordert eine manuelle Auszahlung an. Der Auszahlungsbetrag wird aus dem Kontostand abgeleitet.
Auth: erforderlich (scope: read_write, Alias erforderlich)
ANFRAGE
{ "coin": "BTC", "uuid": "addr-uuid" }
GET
/v1/payments/:uuid/events
Gibt die Ereigniszeitleiste für eine bestimmte Auszahlung zurück.
Auth: erforderlich (scope: read, Alias erforderlich)
Pfad
/v1/payments/550e8400-e29b-41d4-a716-446655440001/events
Assets
GET
/v1/assets
Gibt den gemischten Asset-Katalog des Kontos zurück, einschließlich Coin-Assets und angehängter Legacy-Adressen.
Auth: erforderlich (scope: read, Alias erforderlich)
Query-Parameter:
is_active, sort, dir
Query-String
?is_active=true&sort=amount&dir=desc
GET
/v1/assets/:coin/stats
Gibt Statistiken auf Coin-Ebene zurück, einschließlich Saldo, Mining-Belohnungen, Empfehlungsbelohnungen und Auszahlungssummen.
Auth: erforderlich (scope: read, Alias erforderlich)
Pfad
/v1/assets/BTC/stats
POST
/v1/assets/update
Ersetzt die aktuelle Belohnungsverteilung für das angemeldete Konto. Akzeptiert { coins: [...] }, { targets: [...] } oder ein direktes Array.
Auth: erforderlich (scope: read_write, Alias erforderlich)
ANFRAGE
{
  "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 }
  ]
}
Legacy-Adressen
POST
/v1/legacy-addresses/attach
Hängt dem angemeldeten Konto eine vorhandene gemeinsame Legacy-Adresse an.
Auth: erforderlich (scope: read_write, Alias erforderlich)
ANFRAGE
{ "uuid": "legacy-address-uuid" }
GET
/v1/legacy-addresses/:uuid
Gibt die aktuellen Einstellungen für eine angehängte Legacy-Adresse zurück.
Auth: erforderlich (scope: read, Alias erforderlich)
Pfad
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002
GET
/v1/legacy-addresses/:uuid/stats
Gibt gemeinsame Legacy-Adressstatistiken zurück, einschließlich Saldo und Belohnungssummen.
Auth: erforderlich (scope: read, Alias erforderlich)
Pfad
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002/stats
PATCH
/v1/legacy-addresses/:uuid
Aktualisiert die Einstellungen für eine angehängte Legacy-Adresse.
Auth: erforderlich (scope: read_write, Alias erforderlich)
ANFRAGE
{ "auto_detach_on_payment": true }
DELETE
/v1/legacy-addresses/:uuid
Löst eine Legacy-Adresse vom angemeldeten Konto.
Auth: erforderlich (scope: read_write, Alias erforderlich)
Pfad
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002
POST
/v1/legacy-addresses/:uuid/payments
Fordert eine manuelle Auszahlung für eine angehängte Legacy-Adresse an.
Auth: erforderlich (scope: read_write, Alias erforderlich)
ANFRAGE
{ "platform": "api" }
Empfehlungen
GET
/v1/referrals
Listet empfohlene Worker des angemeldeten Kontos über account-flow- und legacy-Quellen hinweg auf.
Auth: erforderlich (scope: read)
Query-Parameter:
page, type, algorithm, online, sort, dir
Query-String
?page=1&type=user,legacy&online=true
Dashboard
GET
/v1/dashboard/assets
Minimale Asset-Ansicht für schnelles Dashboard-Rendering.
Auth: erforderlich (scope: read, Alias erforderlich)
Pfad
/v1/dashboard/assets
GET
/v1/dashboard/summary
Neueste zusammengefasste Momentaufnahme der Dashboard-Daten.
Auth: erforderlich (scope: read, Alias erforderlich)
Pfad
/v1/dashboard/summary
GET
/v1/dashboard/events
Paginierte Dashboard-Ereignisse einschließlich Worker-, Belohnungs- und Auszahlungsereignissen.
Auth: erforderlich (scope: read, Alias erforderlich)
Query-Parameter:
page, type, dir
Query-String
?page=1&type=worker,reward,payout&dir=desc
Adressen
GET
/v1/addresses
Listet alle Auszahlungsadressen auf, die dem aktuellen Konto gehören.
Auth: erforderlich (scope: read, Alias erforderlich)
Query-Parameter:
network, enabled, page, sort, dir
Query-String
?network=BTC,ETH&enabled=1&page=1
POST
/v1/addresses
Erstellt eine neue Auszahlungsadresse.
Auth: erforderlich (scope: read_write, Alias erforderlich)
ANFRAGE
{
  "network": "ETH",
  "alias": "Main Wallet",
  "address": "0xabc123...",
  "memo": "",
  "platform": "api"
}
PATCH
/v1/addresses/:uuid
Aktualisiert veränderbare Felder einer vorhandenen Auszahlungsadresse.
Auth: erforderlich (scope: read_write, Alias erforderlich)
Query-Parameter:
dry_run
ANFRAGE
{ "alias": "New Label", "platform": "api" }
DELETE
/v1/addresses/:uuid
Löscht eine Auszahlungsadresse logisch.
Auth: erforderlich (scope: read_write, Alias erforderlich)
Query-Parameter:
dry_run
Pfad
/v1/addresses/550e8400-e29b-41d4-a716-446655440098
Auszahlungseinstellungen
GET
/v1/assets/:coin/withdraw/address
Gibt die aktuelle Auszahlungseinstellung für ein bestimmtes Asset zurück.
Auth: erforderlich (scope: read, Alias erforderlich)
Pfad
/v1/assets/BTC/withdraw/address
POST
/v1/assets/:coin/withdraw/address
Legt Auszahlungseinstellungen für ein bestimmtes Asset fest.
Auth: erforderlich (scope: read_write, Alias erforderlich)
ANFRAGE
{
  "uuid": "addr-uuid",
  "payment_threshold": "0.005",
  "auto_withdraw": true
}
Metadaten
GET
/v1/meta/coin
Public coin metadata with optional compact mode and categories grouping.
Auth: none
Query-Parameter:
compact, categories
Query-String
?compact=true
GET
/v1/meta/coin/:coin
Public coin detail for a specific coin.
Auth: none
Pfad
/v1/meta/coin/ADA
Simulator
POST
/v1/simulator
Public forward mining simulator for advanced and device modes.
Auth: none
ANFRAGE
{
  "mode": "advanced",
  "coin": "BTC",
  "algorithm": "randomx",
  "hashrate_hs": "120000000",
  "scenario_set": "default",
  "referral_discount": false
}
Back to top