Tổng quan

API cung cấp quyền truy cập theo chương trình vào các tính năng của nền tảng unMineable bằng xác thực chữ ký HMAC-SHA256. API không trạng thái này được thiết kế cho các tích hợp server-to-server và người dùng nâng cao.

URL gốc
https://api.unmineable.dev/v1
Xác thực
Public metadata and simulator routes do not require signing. All other requests must be signed with HMAC-SHA256 using your API credentials.
Giới hạn tốc độ
500 yêu cầu mỗi phút cho mỗi token/IP
Xác thực HMAC

Authenticated endpoints require three HTTP headers:

x-user-api-key
Khóa công khai của token API của bạn
x-user-api-timestamp
Unix timestamp 13 chữ số tính bằng mili giây
x-user-api-signature
Chữ ký HMAC-SHA256 dạng hex chữ thường

Payload chữ ký

Chữ ký được tính bằng cách nối các giá trị sau bằng ký tự xuống dòng:

<HTTP_METHOD>
<đường dẫn yêu cầu>
<chuỗi query thô (không gồm ?)>
<x-user-api-timestamp>
<sha256 hex của phần thân yêu cầu thô>

Quy tắc phạm vi

read
Chỉ các yêu cầu GET và HEAD
read_write
Các yêu cầu GET, POST, PATCH và DELETE

Mã lỗi

401 UNAUTHORIZED
Thông tin xác thực không hợp lệ hoặc bị thiếu
401 INVALID_SIGNATURE
Xác minh chữ ký HMAC thất bại
401 INVALID_TIMESTAMP
Timestamp của yêu cầu nằm ngoài cửa sổ 5 phút
403 INSUFFICIENT_SCOPE
Token thiếu phạm vi cần thiết cho thao tác này
403 IP_NOT_ALLOWED
IP của yêu cầu không có trong danh sách IP được phép của token
409 USER_ALIAS_REQUIRED
Người dùng phải tạo alias mặc định trước

Ví dụ mã (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');
Hồ sơ
GET
/v1/me
Lấy thông tin hồ sơ của tài khoản hiện tại, bao gồm UUID, email, tên người dùng, mã giới thiệu và trạng thái alias.
Auth: bắt buộc (scope: read)
Header
x-user-api-key: upk_abc123...
x-user-api-timestamp: 1743460800000
x-user-api-signature: a1b2c3d4...
POST
/v1/me
Cập nhật chính xác một trường hồ sơ cho mỗi yêu cầu. Chấp nhận username (để tạo alias mặc định) hoặc referrer_code, bao gồm null để xóa.
Auth: bắt buộc (scope: read_write)
YÊU CẦU (Tên người dùng)
{ "username": "myalias" }
Workers
GET
/v1/workers
Liệt kê tất cả workers với phân trang, bộ lọc và sắp xếp. Trả về các bộ đếm chưa lọc và các bộ đếm phân rã đã lọc.
Auth: bắt buộc (scope: read, cần alias)
Tham số query:
page, algorithm, online, region, name, chart_algo, period, sort, dir
Chuỗi query
?page=1&algorithm=randomx&online=true&chart_algo=randomx&period=24h&sort=last_seen&dir=desc
GET
/v1/workers/counts
Trả về số lượng workers: tổng, online và offline.
Auth: bắt buộc (scope: read, cần alias)
Chuỗi query
GET
/v1/workers/chart
Trả về dữ liệu hashrate theo chuỗi thời gian được nhóm theo thuật toán để vẽ biểu đồ.
Auth: bắt buộc (scope: read, cần alias)
Tham số query:
chart_algo, period (1h|24h)
Chuỗi query
?period=24h&chart_algo=randomx
Thanh toán
GET
/v1/payments
Các khoản thanh toán của người dùng có phân trang với dữ liệu bổ sung theo coin/network và các bộ đếm đã lọc.
Auth: bắt buộc (scope: read, cần alias)
Tham số query:
page, coin, network, date_from, date_to, tz, status, sort, dir
Chuỗi query
?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
Yêu cầu một khoản rút thủ công. Số tiền rút được suy ra từ số dư tài khoản.
Auth: bắt buộc (scope: read_write, cần alias)
YÊU CẦU
{ "coin": "BTC", "uuid": "addr-uuid" }
GET
/v1/payments/:uuid/events
Trả về dòng thời gian các sự kiện cho một khoản thanh toán cụ thể.
Auth: bắt buộc (scope: read, cần alias)
Đường dẫn
/v1/payments/550e8400-e29b-41d4-a716-446655440001/events
Tài sản
GET
/v1/assets
Trả về danh mục tài sản hỗn hợp của tài khoản, bao gồm tài sản coin và các địa chỉ legacy đã đính kèm.
Auth: bắt buộc (scope: read, cần alias)
Tham số query:
is_active, sort, dir
Chuỗi query
?is_active=true&sort=amount&dir=desc
GET
/v1/assets/:coin/stats
Trả về số liệu thống kê cấp coin, bao gồm số dư, phần thưởng đào, phần thưởng giới thiệu và tổng thanh toán.
Auth: bắt buộc (scope: read, cần alias)
Đường dẫn
/v1/assets/BTC/stats
POST
/v1/assets/update
Thay thế phân phối phần thưởng hiện tại cho tài khoản đã đăng nhập. Chấp nhận { coins: [...] }, { targets: [...] } hoặc một mảng thuần.
Auth: bắt buộc (scope: read_write, cần alias)
YÊU CẦU
{
  "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 }
  ]
}
Địa chỉ legacy
POST
/v1/legacy-addresses/attach
Đính kèm một địa chỉ legacy dùng chung đã tồn tại vào tài khoản đã đăng nhập.
Auth: bắt buộc (scope: read_write, cần alias)
YÊU CẦU
{ "uuid": "legacy-address-uuid" }
GET
/v1/legacy-addresses/:uuid
Trả về cài đặt hiện tại của một địa chỉ legacy đã đính kèm.
Auth: bắt buộc (scope: read, cần alias)
Đường dẫn
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002
GET
/v1/legacy-addresses/:uuid/stats
Trả về số liệu thống kê dùng chung của địa chỉ legacy, bao gồm số dư và tổng phần thưởng.
Auth: bắt buộc (scope: read, cần alias)
Đường dẫn
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002/stats
PATCH
/v1/legacy-addresses/:uuid
Cập nhật cài đặt cho một địa chỉ legacy đã đính kèm.
Auth: bắt buộc (scope: read_write, cần alias)
YÊU CẦU
{ "auto_detach_on_payment": true }
DELETE
/v1/legacy-addresses/:uuid
Gỡ một địa chỉ legacy khỏi tài khoản đã đăng nhập.
Auth: bắt buộc (scope: read_write, cần alias)
Đường dẫn
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002
POST
/v1/legacy-addresses/:uuid/payments
Yêu cầu một khoản thanh toán thủ công cho một địa chỉ legacy đã đính kèm.
Auth: bắt buộc (scope: read_write, cần alias)
YÊU CẦU
{ "platform": "api" }
Giới thiệu
GET
/v1/referrals
Liệt kê các workers được giới thiệu của tài khoản đã đăng nhập trên các nguồn account-flow và legacy.
Auth: bắt buộc (scope: read)
Tham số query:
page, type, algorithm, online, sort, dir
Chuỗi query
?page=1&type=user,legacy&online=true
Bảng điều khiển
GET
/v1/dashboard/assets
Chế độ xem tài sản tối giản để dựng bảng điều khiển nhanh.
Auth: bắt buộc (scope: read, cần alias)
Đường dẫn
/v1/dashboard/assets
GET
/v1/dashboard/summary
Ảnh chụp tóm tắt mới nhất của dữ liệu bảng điều khiển.
Auth: bắt buộc (scope: read, cần alias)
Đường dẫn
/v1/dashboard/summary
GET
/v1/dashboard/events
Các sự kiện của bảng điều khiển có phân trang, bao gồm sự kiện worker, phần thưởng và thanh toán.
Auth: bắt buộc (scope: read, cần alias)
Tham số query:
page, type, dir
Chuỗi query
?page=1&type=worker,reward,payout&dir=desc
Địa chỉ
GET
/v1/addresses
Liệt kê tất cả các địa chỉ rút tiền thuộc về tài khoản hiện tại.
Auth: bắt buộc (scope: read, cần alias)
Tham số query:
network, enabled, page, sort, dir
Chuỗi query
?network=BTC,ETH&enabled=1&page=1
POST
/v1/addresses
Tạo một địa chỉ rút tiền mới.
Auth: bắt buộc (scope: read_write, cần alias)
YÊU CẦU
{
  "network": "ETH",
  "alias": "Main Wallet",
  "address": "0xabc123...",
  "memo": "",
  "platform": "api"
}
PATCH
/v1/addresses/:uuid
Cập nhật các trường có thể thay đổi của một địa chỉ rút tiền hiện có.
Auth: bắt buộc (scope: read_write, cần alias)
Tham số query:
dry_run
YÊU CẦU
{ "alias": "New Label", "platform": "api" }
DELETE
/v1/addresses/:uuid
Xóa mềm một địa chỉ rút tiền.
Auth: bắt buộc (scope: read_write, cần alias)
Tham số query:
dry_run
Đường dẫn
/v1/addresses/550e8400-e29b-41d4-a716-446655440098
Cài đặt rút tiền
GET
/v1/assets/:coin/withdraw/address
Trả về tùy chọn rút tiền hiện tại cho một tài sản cụ thể.
Auth: bắt buộc (scope: read, cần alias)
Đường dẫn
/v1/assets/BTC/withdraw/address
POST
/v1/assets/:coin/withdraw/address
Đặt tùy chọn rút tiền cho một tài sản cụ thể.
Auth: bắt buộc (scope: read_write, cần alias)
YÊU CẦU
{
  "uuid": "addr-uuid",
  "payment_threshold": "0.005",
  "auto_withdraw": true
}
Metadata
GET
/v1/meta/coin
Public coin metadata with optional compact mode and categories grouping.
Auth: none
Tham số query:
compact, categories
Chuỗi query
?compact=true
GET
/v1/meta/coin/:coin
Public coin detail for a specific coin.
Auth: none
Đường dẫn
/v1/meta/coin/ADA
Simulator
POST
/v1/simulator
Public forward mining simulator for advanced and device modes.
Auth: none
YÊU CẦU
{
  "mode": "advanced",
  "coin": "BTC",
  "algorithm": "randomx",
  "hashrate_hs": "120000000",
  "scenario_set": "default",
  "referral_discount": false
}
Back to top