Загрузка центра документации API...
ЖИВЫЕ СМЕСИ
MATIC
862 MATIC
MATIC Смешано · 59сек назад
ETH
0.039000 ETH
ETH Смешано · 1мин назад
DOT
60 DOT
DOT Смешано · 1мин назад
BTC
0.023000 BTC
BTC Смешано · 1мин назад
BTC
0.015000 BTC
BTC Смешано · 1мин назад
ADA
508 ADA
ADA Смешано · 5мин назад
USDT
1,129 USDT
USDT Смешано · 5мин назад
TON
102.008901 TON
TON Смешано · 5мин назад
TON
39.394381 TON
TON Смешано · 5мин назад
LTC
9.833244 LTC
LTC Смешано · 9мин назад
MATIC
862 MATIC
MATIC Смешано · 59сек назад
ETH
0.039000 ETH
ETH Смешано · 1мин назад
DOT
60 DOT
DOT Смешано · 1мин назад
BTC
0.023000 BTC
BTC Смешано · 1мин назад
BTC
0.015000 BTC
BTC Смешано · 1мин назад
ADA
508 ADA
ADA Смешано · 5мин назад
USDT
1,129 USDT
USDT Смешано · 5мин назад
TON
102.008901 TON
TON Смешано · 5мин назад
TON
39.394381 TON
TON Смешано · 5мин назад
LTC
9.833244 LTC
LTC Смешано · 9мин назад

Документация SecretCryptos API

Безопасно. Быстро. Удобно для разработчиков.
Программный интерфейс
Интегрируйте функции криптовалютного миксера и обмена в своё приложение или сервис с помощью официального SecretCryptos API.
Документация SecretCryptos API для безопасной криптоинтеграции Руководство разработчика по интеграции SecretCryptos API Справочник API для криптомиксинга и обмена с SecretCryptos

Введение


SecretCryptos API предоставляет безопасный, простой и стабильный доступ к нашим сервисам Миксер и Обмен. Этот «Lite»-документ сосредоточен на основных конечных точках, чтобы вы могли быстро начать работу.

Базовый URL: https://api.secretcryptos.com/v1

Пример: GET /v1/pingпопробовать

Вы также можете открыть корневую страницу в реальном времени: api.secretcryptos.com.

Дополнительные ссылки: Хаб ссылокДокументация API (Swagger UI)Организация GitHub.

Аутентификация


  • Заголовок: Authorization: Bearer YOUR_API_KEY
  • Все запросы должны использовать HTTPS.
Никогда не вызывайте защищённые конечные точки из клиентского JavaScript. Храните API-ключ на сервере и передавайте ответы в браузер через прокси.

Получить API-ключ


  1. Создайте аккаунт или войдите на Партнёр.
  2. Откройте верхнее меню и нажмите вкладку API.
  3. Скопируйте ваш API-KEY (держите его в секрете; он работает и для Миксера, и для Обмена).

Безопасность API-ключа


Никогда не вызывайте защищённые конечные точки из клиентского JavaScript. Держите API-ключ на сервере и передавайте ответы в браузер через прокси.

cURL (серверная сторона)

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.secretcryptos.com/v1/meta/mixer"

PHP-прокси

<?php
$ch = curl_init("https://api.secretcryptos.com/v1/meta/exchange");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer YOUR_API_KEY"]);
echo curl_exec($ch);

Node.js (Express)

import express from "express";
import fetch from "node-fetch";
const app = express();

app.get("/api/meta/exchange", async (req, res) => {
  const r = await fetch("https://api.secretcryptos.com/v1/meta/exchange", {
    headers: { Authorization: "Bearer " + process.env.SECRETCRYPTOS_API_KEY }
  });
  res.status(r.status).type("application/json").send(await r.text());
});

app.listen(3000);

Python (Flask)

from flask import Flask, Response
import os, requests
app = Flask(__name__)

@app.get("/api/meta/mixer")
def mixer_meta():
    r = requests.get(
        "https://api.secretcryptos.com/v1/meta/mixer",
        headers={"Authorization": f"Bearer {os.environ['SECRETCRYPTOS_API_KEY']}"}
    )
    return Response(r.content, status=r.status_code, mimetype="application/json")

Ping


Простая проверка работоспособности и версии.

GET/v1/ping
GET https://api.secretcryptos.com/v1/ping
{
  "ok": true,
  "service": "SecretCryptos API",
  "version": "1.2.6",
  "ts": 1723800000
}
  • ts: Unix-время (секунды).
  • Аутентификация не требуется.

Meta


Корневое обнаружение доступных meta-эндпоинтов.

GET/v1/meta
GET https://api.secretcryptos.com/v1/meta
{
  "ok": true,
  "version": "1.2.6",
  "server_time": {
    "iso": "2025-08-20T16:04:53+00:00",
    "unix": 1755705893
  },
  "docs": {
    "html": "https://secretcryptos.com/api"
  },
  "endpoints": [
    {
      "name": "Ping",
      "path": "/v1/ping",
      "method": "GET",
      "auth": false,
      "desc": "Простая проверка работоспособности."
    },
    {
      "name": "Meta (Mixer)",
      "path": "/v1/meta/mixer",
      "method": "GET",
      "auth": true,
      "desc": "Поддерживаемые монеты/сети и правила миксера."
    },
    {
      "name": "Meta (Exchange)",
      "path": "/v1/meta/exchange",
      "method": "GET",
      "auth": true,
      "desc": "Поддерживаемые торговые пары и лимиты обмена."
    },
    {
      "name": "Create Mixer Order",
      "path": "/v1/mixer/orders",
      "method": "POST",
      "auth": true,
      "desc": "Создать новый заказ миксера."
    },
    {
      "name": "Create Exchange Order",
      "path": "/v1/exchange/orders",
      "method": "POST",
      "auth": true,
      "desc": "Создать новый заказ обмена."
    },
    {
      "name": "Check Order",
      "path": "/v1/orders/check",
      "method": "POST",
      "auth": true,
      "desc": "Запросить статус заказа по trackcode."
    },
    {
      "name": "Delete Order",
      "path": "/v1/orders/delete",
      "method": "POST",
      "auth": true,
      "desc": "Удалить заказ (если разрешено)."
    },
    {
      "name": "Prices",
      "path": "/v1/prices",
      "method": "GET",
      "auth": true,
      "desc": "Текущие курсы и цены."
    },
    {
      "name": "Validate Signature",
      "path": "/v1/validate",
      "method": "POST",
      "auth": false,
      "desc": "Проверка подписи гарантийного письма."
    }
  ]
}
		
  • Аутентификация не требуется.

Meta / Миксер


Конфигурация миксера по каждой монете (мин/макс, ярлыки сетей, комиссии сервиса и за адрес, десятичные знаки, подтверждения).

GET/v1/meta/mixer
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.secretcryptos.com/v1/meta/mixer"
{
  "ok": true,
  "mixer": {
    "BTC": {
      "name": "Bitcoin",
      "symbol": "₿",
      "service_fee": 0.1,
      "maintenance": 0,
      "per_address_fee": "0.00005000",
      "decimals": 8,
      "confirmations": 1,
      "networks": {
        "btc": {
          "label": "Bitcoin (BTC)",
          "min": 0.001,
          "max": 20
        }
      }
    }
  }
}
  • Требуется аутентификация:Authorization: Bearer YOUR_API_KEY.
  • service_fee — процент (например, 0.1 = 0.1%).
  • per_address_fee — строка с 8 знаками после запятой в единицах монеты.

Meta / Обмен


Конфигурация обмена: техобслуживание, текущие цены в USD и лимиты/комиссии по сетям.

GET/v1/meta/exchange
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.secretcryptos.com/v1/meta/exchange"
{
  "ok": true,
  "exchange": {
    "maintenance": 0,
    "prices_usd": {
      "BTC": "117799.51713382",
      "ETH": "4409.46254479",
      "USDT": "1.0005594",
	  ...
    },
    "outputs": {
      "BTC": {
        "name": "Bitcoin",
        "symbol": "₿",
        "networks": {
          "btc": {
            "label": "Bitcoin (BTC)",
            "min_usd": "100",
            "max_usd": "182520",
            "service_fee": "0.5"
          }
        }
      },
	  ...
    }
  }
}
  • Требуется аутентификация:Authorization: Bearer YOUR_API_KEY.
  • service_fee — строка с процентом (например, "0.5" = 0.5%).
  • prices_usd — актуальные значения из базы данных.

МИКСЕР


API Миксера позволяет программно создавать анонимные транзакции. Вы указываете монету, сеть, сумму и один или несколько адресов получателей с процентами распределения и необязательными задержками. Мы выделяем адрес для депозита и возвращаем полный план (комиссии + выводы), чтобы вы могли автоматизировать приём платежей, выплаты или схемы, похожие на эскроу.

  • Примеры использования: безопасный приём платежей, автоматическое распределение доходов, выплаты на несколько кошельков, отложенные переводы.
  • Получите лимиты и комиссии через /v1/meta/mixer перед созданием заказов.
  • Все денежные поля указываются в единицах монеты, если не указано иное.
  • Все временные метки — Unix epoch (секунды, часовой пояс сервера: GMT-3).

МИКСЕР / Создать заказ


Создать новый заказ миксера. Вы указываете монету, сеть, сумму и один или несколько выходных адресов с процентами и задержками. Система выделяет депозитный адрес и возвращает детали заказа, включая комиссии и план распределения.

Правила валидации

  • amount: Должно быть в пределах min_amount и max_amount для выбранной монеты из /v1/meta/mixer.
  • addresses: от 1 до 10 выходов.
  • percent:
    • Формат: до 2 знаков после запятой (например, 10, 10.5, 10.50).
    • Минимум на один адрес: ≥ 1.00, максимум: ≤ 100.00.
    • Сумма всех выходов должна быть ровно 100.00.
    • Если есть только 1 выход, его процент должен быть ровно 100.00.
  • delay:
    • Принимаются минуты (например, 120) или метка (например, "2h 0m").
    • Максимум: 48h (т.е. 2880 минут).
  • service_fee(необязательное переопределение):
    • До 2 знаков после запятой.
    • Диапазон: 0.105.00 (%). Если не указано, используется системное значение по умолчанию для монеты.
  • address format: Должен соответствовать выбранной сети (например, BTC legacy/SegWit, ERC-20 0x…, TRC-20 T…, SOL и т.д.).
  • destination_tag / memo: Необязательно; требуется для некоторых сетей (например, XRP tag, TON memo).

Примечания

  • expires_at: Когда депозитный адрес становится недействительным (epoch seconds).
  • outputs[i].time: Запланированное время вывода в формате epoch seconds (основано на delay_minutes).
  • Используйте ?pretty=1 для читаемого JSON во время тестирования.
  • Лимиты: стандартный дневной лимит на один API ключ; более высокие уровни доступны (см. «Ограничения скорости»).

Распространенные ошибки

{
  "ok": false,
  "code": "BAD_REQUEST",
  "message": "Sum of percents must be exactly 100.00"
}
  • BAD_REQUEST: Неверное тело запроса, неправильный формат адреса, процент не с двумя десятичными, комиссия вне диапазона, задержка > 48ч и т.д.
  • AMOUNT_TOO_LOW / AMOUNT_TOO_HIGH: Нарушение минимального/максимального значения для монеты.
  • SERVICE_UNAVAILABLE: Нет доступного депозитного адреса для этой сети.
  • TOO_MANY_REQUESTS: Достигнут дневной лимит API.
  • UNAUTHORIZED / FORBIDDEN: Неверный или отключенный API ключ.
POST/v1/mixer/orders

Заголовки

  • Authorization: Bearer YOUR_API_KEY
  • Content-Type: application/json

Тело запроса

{
  "action": "create_order",
  "addresses": [
    {
      "address": "35iMHbUZeTssxBodiHwEEkb32jpBfVueEL",
      "percent": "84.93",
      "delay": "0",
    },
    {
      "address": "1P279UBChDFPAky8S4DcKGaaxKEMYBK9MM",
      "percent": "15.07",
      "delay": "120",
    }
  ],
  "amount": "10.00000000",
  "crypto": "btc",
  "network": "btc",
  "partner": "YOUR_PARTNER_KEY",
  "service_fee": 0.45,
  "qrcode": 1
}

Тело запроса

{
  "action": "create_order",
  "addresses": [
    {
      "address": "raGXwk3P9yCtT2mGKD7nQdRNDCPSgwb2Kb",
      "percent": "100",
      "delay": "0",
      "destination_tag": "435757008"  
    }
  ],
  "amount": "10.00000000",
  "crypto": "btc",
  "network": "btc",
  "partner": "YOUR_PARTNER_KEY",
  "service_fee": 0.45,
  "qrcode": 1
}
  • addresses: Список выходных адресов. Каждый адрес должен содержать следующие поля:
    • address: Конечный адрес, на который будут отправлены средства.
    • percent: Процент от общей суммы для отправки на этот адрес (например, 100 для всей суммы или 50 для половины).
    • delay: Задержка перед выполнением транзакции. Может быть указана в минутах (например, 120) или в текстовом формате (например, "2h 0m").
    • destination_tag: Это поле обязательно для сетей XRP и TON. Если не требуется, можно опустить или оставить пустым (например, "").
  • amount: Общая сумма в единицах монеты для перевода. Используйте точку в качестве разделителя (например, 10.00000000).
  • crypto/ network: Монета и блокчейн-сеть (например, btc/ btc для Биткойна).
  • partner: Необязательно, но рекомендуется. Ваш PARTNER KEY доступен в Партнёрском кабинете на вкладке API (с вашим API-KEY). При использовании вы зарабатываете 30% от комиссии.
  • service_fee: Необязательное переопределение комиссии в процентах. Если не указано — используется системное значение. Если указано, должно быть числом от 0.1 до 5 включительно.
  • qrcode: Необязательно. 1 возвращает Base64 data URL в deposit.qr_code; 0 или отсутствие параметра — QR код не возвращается.
  • destination_tag: Обязательно для сетей XRP и TON. Если не нужно — можно опустить или оставить пустым ("").

Как использовать QR-код

Если qrcode установлен в 1, ответ будет содержать изображение в формате Base64 в поле deposit.qr_code. Это полноценный QR-код, который можно встроить на фронтенд как картинку, чтобы пользователи могли сканировать его в своих кошельках. Вот пример, как отобразить его на веб-странице:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="Сканируйте для оплаты" />

Пользователи могут отсканировать QR-код в своем приложении-кошельке, чтобы мгновенно заполнить адрес и сумму, обеспечивая быструю и безопасную транзакцию.

Ответ

{
  "ok": true,
  "trackcode": "6A5FB3BA8A150EC9",
  "maintenance": 0,
  "deposit": {
    "address": "31wXuLH5AKBWoZsK4VJS5wG75nTUAWYnWf",
    "name": "Bitcoin",
    "symbol": "₿",
    "network": "btc",
    "network_label": "Bitcoin (BTC)",
    "deposit_amount": "10.00000000",
    "min_amount": 0.001,
    "max_amount": 20,
    "expires_at": 1755614593,
    "qr_code": "data:image/png;base64,iVBORw0....."
  },
  "fees": {
    "service_fee_percent": 0.45,
    "service_fee_value": "0.04500000",
    "fee_per_output": "0.00005000",
    "fee_outputs_total": "0.00010000",
    "fee_total": "0.04510000"
  },
  "outputs": [
    {
      "id": 1,
      "address": "35iMHbUZeTssxBodiHwEEkb32jpBfVueEL",
      "destination_tag": null,
      "share_percent": 84.93,
      "delay_minutes": 0,
      "delay_label": "0h 0m",
      "amount": "8.45469657",
      "time": 1755441793
    },
    {
      "id": 2,
      "address": "1P279UBChDFPAky8S4DcKGaaxKEMYBK9MM",
      "destination_tag": null,
      "share_percent": 15.07,
      "delay_minutes": 120,
      "delay_label": "2h 0m",
      "amount": "1.50020343",
      "time": 1755448993
    }
  ],
  "signature_text": "...."
}
  • trackcode: Уникальный идентификатор заказа.
  • deposit: Адрес, куда пользователь должен отправить средства.
  • fees: Все примененные комиссии.
  • outputs: Планируемое распределение средств с задержками.
  • time и expires_at: Метки времени Unix (часовой пояс GMT-3).
  • signature_text: Цифровая подпись для проверки.

Пример на PHP

<?php
$url = "https://api.secretcryptos.com/v1/mixer/orders";
$headers = [
  "Authorization: Bearer YOUR_API_KEY",
  "Content-Type: application/json"
];
$data = [
  "action" => "create_order",
  "addresses" => [
    ["address"=>"35iMHbUZeTssxBodiHwEEkb32jpBfVueEL", "percent"=>"84.93", "delay"=>"0"],
    ["address"=>"1P279UBChDFPAky8S4DcKGaaxKEMYBK9MM", "percent"=>"15.07", "delay"=>"120"]
  ],
     "amount"   => "10.00000000",
     "crypto"   => "btc",
     "network"  => "btc",
     "partner"  => "YOUR_PARTNER_KEY",
  "service_fee" => 0.45,
];
$ch = curl_init($url);
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER     => $headers,
  CURLOPT_POST           => true,
  CURLOPT_POSTFIELDS     => json_encode($data)
]);
echo curl_exec($ch);
curl_close($ch);

ОБМЕН


API обмена позволяет конвертировать депозит from_coin/ from_network в один адрес назначения to_coin/ to_network. Мы выделяем адрес для депозита, рассчитываем актуальный курс (с учётом лимитов в USD и комиссии) и возвращаем полный объект заказа, который можно опрашивать до его финансирования и выполнения.

  • Примеры использования: мгновенные обмены при оплате, «депозит в X → получение Y», мосты off-ramp/on-ramp между L1/L2.
  • Перед созданием заказов получите лимиты пары и комиссию по умолчанию через /v1/meta/exchange.
  • Все денежные поля указываются в монетах, если не оговорено иное; лимиты рассчитываются в USD.
  • Все временные метки — это Unix epoch (в секундах), часовой пояс сервера GMT-3.

ОБМЕН / Создать заказ


Создание нового ордера на обмен. Вы указываете сторону from_* (монета/сеть/сумма) и адрес назначения to_address для стороны to_* . Мы возвращаем адрес депозита в сети from_network, котировку и планируемый вывод.

Правила проверки

  • amount: значение в USD (сумма × цена from_coin) должно находиться в пределах min_usd/ max_usd для пары из /v1/meta/exchange.
  • формат адреса: должен соответствовать выбранной сети to_network (например, ERC-20 0x…, TRC-20 T…, BTC, DOGE, SOL и др.).
  • destination_tag / memo: необязательное, но требуется для некоторых сетей (например, тег XRP, мемо TON).
  • service_fee (необязательно, в процентах):
    • До 2 знаков после запятой (например, 0.6 = 0.60%).
    • Общие рамки: минимум 0.50%, максимум 3.00%.
    • Если указано ниже значения по умолчанию для пары — применяется значение по умолчанию. Если выше 3.00% — ограничивается 3.00%.
    • Если не указано, эффективная комиссия = max(значение_по_умолчанию, 0.50%).

Примечания

  • quote.final_usd = (сумма × цена from) × (1 − комиссия%).
  • quote.to.estimated_receive = final_usd ÷ цена to_coin.
  • receive.delay_label: планируемая задержка перед отправкой обмена (по умолчанию 0h 10m).
  • expires_at: окно депозита для выделенного адреса.
  • Используйте ?pretty=1 для форматированного JSON при тестировании.
POST/v1/exchange/orders

Заголовки

  • Authorization: Bearer YOUR_API_KEY
  • Content-Type: application/json

Тело запроса

{
  "from_coin": "eth",
  "from_network": "eth",
  "to_coin": "doge",
  "to_network": "doge",
  "to_address": "DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p",
  "amount": "1.00000000",
  "service_fee": 0.6,           // необязательно; %0.60 → ограничивается правилами  "partner": "YOUR_PARTNER_KEY", // необязательно, даёт 30% комиссии платформы  "qrcode": 1                    // необязательно; добавляет base64 QR в deposit.qr_code}

Тело запроса (примеры для XRP / TON)

{
  "from_coin": "usdt",
  "from_network": "trx",
  "to_coin": "xrp",
  "to_network": "xrp",
  "to_address": "rLWyHZwAhsVrHCu8ahsfQfb9w9w7A5WTrS",
  "destination_tag": "123456",
  "amount": "250"
}
---
{
  "from_coin": "btc",
  "from_network": "btc",
  "to_coin": "ton",
  "to_network": "ton",
  "to_address": "UQDTQmCrngsFMbgBhWNX_Sg6Ko3sXUcdeliM5OoZO2Pt4NJx",
  "memo": "MYMEMO123",
  "amount": "0.015"
}

Ответ

{
  "ok": true,
  "type": "exchange",
  "trackcode": "D391FC08747E7B04",
  "pair": { "from": "ETH_eth", "to": "DOGE_doge" },
  "deposit": {
    "address": "0x7ed2bf650d12819171a8add77fe772a18dd77a10",
    "name": "Ethereum",
    "symbol": "Ξ",
    "network": "eth",
    "network_label": "Ethereum (ERC20)",
    "deposit_amount": "1.00000000",
    "min_usd": 100,
    "max_usd": 88565,
    "expires_at": 1755781843,
    "qr_code": "data:image/png;base64,..."  // только если qrcode=1  },
  "quote": {
    "from": { "coin":"ETH","network":"eth","price_usd":4300.8836,"amount":"1.00000000","amount_usd":"4300.88362842" },
    "to":   { "coin":"DOGE","network":"doge","price_usd":0.22014648,"estimated_receive":"19419.24455241" },
    "fee_percent": 0.6,
    "final_usd": "4275.07832665"
  },
  "receive": {
    "address":"DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p",
    "destination_tag": null,
    "coin":"DOGE","network":"doge",
    "percent":100,"delay_minutes":10,"delay_label":"0h 10m",
    "amount":"19419.24455241","time":1755609642
  },
  "outputs":[
    { "id":1, "address":"DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p", "destination_tag":null,
      "share_percent":100, "delay_minutes":10, "delay_label":"0h 10m",
      "amount":"19419.24455241", "time":1755609642 }
  ],
  "signature_text":"..."
}
  • trackcode: уникальный идентификатор заказа для проверки статуса.
  • deposit: куда пользователь должен отправить from_coin.
  • quote: снимок цены и применённой комиссии.
  • receive/ outputs: детали планируемого вывода после обмена.

Пример на PHP

<?php
$url = "https://api.secretcryptos.com/v1/exchange/orders";
$headers = [
  "Authorization: Bearer YOUR_API_KEY",
  "Content-Type: application/json"
];
$payload = [
  "from_coin"=>"eth","from_network"=>"eth",
  "to_coin"=>"doge","to_network"=>"doge",
  "to_address"=>"DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p",
  "amount"=>"1.00000000",
  "service_fee"=>0.6,
  "partner"=>"YOUR_PARTNER_KEY",
  "qrcode"=>1
];
$ch = curl_init($url);
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER=>true,
  CURLOPT_HTTPHEADER=>$headers,
  CURLOPT_POST=>true,
  CURLOPT_POSTFIELDS=>json_encode($payload, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES),
]);
echo curl_exec($ch);
curl_close($ch);

Как использовать QR-код

Когда qrcode установлен в 1 при создании, ответ включает Base64-кодированный QR в deposit.qr_code. Вставьте его напрямую как <img>, чтобы пользователи могли сканировать адрес депозита.

<img src="data:image/png;base64,..." alt="Сканируйте для оплаты" />

Цены


Получите актуальные рыночные цены в USD для поддерживаемых криптовалют. Можно запросить несколько символов сразу, разделив их запятой.

Эндпоинт

GET/v1/prices?symbols=BTC,ETH,DOGE

Параметры запроса

  • symbols(необязательно): список символов монет через запятую (например, BTC,ETH,USDT). Если не указано — возвращаются все поддерживаемые монеты.

Ответ

  • ok: true, если запрос выполнен успешно.
  • base: всегда USD.
  • ts: временная метка Unix (секунды).
  • prices: объект с отображением СИМВОЛ → "цена" (числа в виде строки).

Пример запроса (только BTC, ETH)

<?php
$url = "https://api.secretcryptos.com/v1/prices?symbols=" . urlencode("BTC,ETH");

$headers = [
  "Authorization: Bearer <API_KEY>",
];

$ch = curl_init($url);
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER     => $headers,
  CURLOPT_TIMEOUT        => 20,
]);

$result = curl_exec($ch);
if ($result === false) {
  echo "cURL error: " . curl_error($ch);
} else {
  echo $result;
}
curl_close($ch);

Пример запроса (все символы)

<?php
$url = "https://api.secretcryptos.com/v1/prices";

$headers = [
  "Authorization: Bearer <API_KEY>",
];

$ch = curl_init($url);
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER     => $headers,
  CURLOPT_TIMEOUT        => 20,
]);

$result = curl_exec($ch);
if ($result === false) {
  header("Content-Type: text/plain; charset=utf-8");
  echo "cURL error: " . curl_error($ch);
} else {
  header("Content-Type: application/json; charset=utf-8");
  echo $result;
}
curl_close($ch);

Пример ответа

{
  "ok": true,
  "base": "USD",
  "ts": 1755600000,
  "prices": {
    "BTC": "117799.51713382",
    "ETH": "4409.46254479",
    "USDT": "1.0005594"
  }
}

Коды ошибок

  • BAD_REQUEST: неверный формат symbols.
  • UNAUTHORIZED / FORBIDDEN: ключ API отсутствует или неверен.
  • SERVER_ERROR: внутренняя ошибка сервера/БД.

Примечания

  • Неподдерживаемые тикеры просто опускаются в объекте prices.
  • Числовые значения возвращаются как строки для сохранения точности.

Статус заказа


Используйте единый endpoint для проверки статуса как mixer-, так и exchange-заказов. Вы можете явно указать тип заказа (mixer/exchange) или позволить API определить его автоматически.

Эндпоинт

POST/v1/orders/check

Тело запроса

  • trackcode(обязательно): 16-символьный код отслеживания заказа (заглавные буквы).
  • type(необязательно): mixer | exchange. Если не указано, API попытается определить автоматически.
  • outputs(необязательно): none | summary | full (по умолчанию: summary).
  • mask_addresses(необязательно): true=маскировать адреса (по умолчанию), false=возвращать полные адреса.

Ответ

  • type: mixer или exchange.
  • deposit.confirm_status: Статус подтверждения депозита:
    • 0: Платёж не получен.
    • 1: Платёж получен, но ещё в ожидании (ожидаются подтверждения или сумма не полностью внесена).
    • 2: Депозит полностью подтверждён и профинансирован.
  • deposit.delete_in_sec: Количество секунд до истечения 48-часового периода хранения.
  • Блок deposit.funding:
    • waiting_balance: Общая ожидаемая сумма.
    • received_balance: Уже полученная сумма.
    • remaining_need: Оставшаяся необходимая сумма.
    • is_fully_funded: Полностью ли профинансирован депозит.
    • can_start: true только если confirm_status==2 И is_fully_funded==true.
  • outputs:
    • none: Не возвращается.
    • summary: Возвращает count, sent_count, sent_total.
    • full: Для каждого вывода: index, address (замаскирован или нет), destination_tag, coin, network, share_percent, delay_label, delay_seconds, state, confirm, tx, amount, left_seconds.
  • status_reason: например, "INSUFFICIENT_FUNDS" (если депозит не полностью профинансирован).

Правила работы

  • Заказы не начнут выполняться, пока депозит не будет полностью профинансирован (is_fully_funded=false): выводы остаются неназначенными, партнёрские выплаты не начисляются.
  • Если confirm_status==2 И is_fully_funded==true:
    • Выводы получают временную метку один раз и остаются неизменными при последующих проверках.
    • Партнёрские начисления фиксируются один раз, когда заказ становится действительным.

Пример запроса (PHP)

// Пример для миксера (полные выводы, немаскированные адреса)<?php
$url = "https://api.secretcryptos.com/v1/orders/check";

$headers = [
  "Authorization: Bearer <API_KEY>",
  "Content-Type: application/json"
];

$data = [
  "trackcode"      => "554FEC10054743FD",
  "type"           => "mixer",     // mixer | exchange
  "outputs"        => "full",      // none | summary | full
  "mask_addresses" => false        // true(default)=masked, false=full
];

$ch = curl_init($url);
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER     => $headers,
  CURLOPT_POST           => true,
  CURLOPT_POSTFIELDS     => json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
]);

$result = curl_exec($ch);

if ($result === false) {
  header("Content-Type: text/plain; charset=utf-8");
  echo "cURL error: " . curl_error($ch);
} else {
  header("Content-Type: application/json; charset=utf-8");
  echo $result;
}
curl_close($ch);

Пример ответа — полностью профинансированный заказ

{
  "ok": true,
  "type": "mixer",
  "trackcode": "6A5FB3BA8A150EC9",
  "deposit": {
    "confirm_status": 2,
    "coin": "btc",
    "network": "btc",
    "delete_in_sec": 167812,
    "funding": {
      "waiting_balance": "10.00000000",
      "received_balance": "10.00000000",
      "remaining_need": "0.00000000",
      "is_fully_funded": true,
      "can_start": true
    }
  },
  "outputs": [
    {
      "index": 1,
      "address": "35iMHbUZeTssxBodiHwEEkb32jpBfVueEL",
      "destination_tag": null,
      "coin": "btc",
      "network": "btc",
      "share_percent": 84.93,
      "delay_label": "0h 0m",
      "delay_seconds": 0,
      "state": 2,
      "confirm": 1,
      "tx": "135f451af7f894....fafb578eee9e9c4",
      "amount": "8.45469657",
      "left_seconds": 0
    },
    {
      "index": 2,
      "address": "1P279UBChDFPAky8S4DcKGaaxKEMYBK9MM",
      "destination_tag": null,
      "coin": "btc",
      "network": "btc",
      "share_percent": 15.07,
      "delay_label": "2h 0m",
      "delay_seconds": 7200,
      "state": 1,
      "confirm": 0,
      "tx": "",
      "amount": "1.50020343",
      "left_seconds": 5916
    }
  ]
}

Пример ответа — недофинансированный заказ

{
  "ok": true,
  "type": "exchange",
  "trackcode": "A1B2C3D4E5F6A7B8",
  "deposit": {
    "confirm_status": 2,
    "coin": "usdt",
    "network": "erc20",
    "delete_in_sec": 14321,
    "funding": {
      "waiting_balance": "500.00000000",
      "received_balance": "420.00000000",
      "remaining_need": "80.00000000",
      "is_fully_funded": false,
      "can_start": false
    }
  },
  "status_reason": "INSUFFICIENT_FUNDS",
  "outputs": {
    "count": 3,
    "sent_count": 0,
    "sent_total": "0.00000000"
  }
}

Пояснение по выводам

  • index: Последовательный номер вывода в заказе.
  • address: Адрес назначения, куда отправляются средства.
  • destination_tag: Дополнительный тег/мемо для XRP, XLM и др. (null, если не требуется).
  • coin: Код криптовалюты вывода (например, btc, eth).
  • network: Сеть, используемая для перевода (например, btc, eth).
  • share_percent: Процент от общего депозита, назначенный этому выводу.
  • delay_label: Читаемая метка времени, показывающая, когда будет обработан вывод (например, 2h 0m).
  • delay_seconds: Задержка в секундах до начала обработки вывода.
  • state: Статус вывода:
    • 0 → Ожидание (депозит ещё не подтверждён полностью).
    • 1 → В процессе (запланирован; начнётся, когда delay_seconds достигнет 0).
    • 2 → Завершён (перевод выполнен).
  • confirm: Статус подтверждения перевода (актуален только при state=2):
    • 0 → Транзакция отправлена, но ещё не подтверждена (в ожидании).
    • 1 → Транзакция подтверждена (как минимум 1 подтверждение блокчейна).
  • tx: Хэш транзакции в блокчейне для этого вывода.
  • amount: Сумма, отправленная на этот адрес вывода.
  • left_seconds: Оставшееся количество секунд до запланированной отправки.
    Примечание: Этот отсчёт запускается только после того, как deposit.confirm_status=2 (полностью подтверждён). Пример: если установлено 600 секунд (10 минут), отсчёт начинается только после подтверждения депозита.

Примечание: Данные о платежах и выводах обновляются примерно раз в минуту.

Коды ошибок

  • BAD_REQUEST: Отсутствует/неверный trackcode, неверное тело запроса.
  • NOT_FOUND: Заказ не найден.
  • UNAUTHORIZED / FORBIDDEN: API-ключ неверен или отключён.
  • TOO_MANY_REQUESTS: Превышен дневной лимит запросов.
  • SERVER_ERROR: Неожиданная ошибка сервера.

  • mask_addresses: управляется параметром mask_addresses (по умолчанию: true).
  • delay_seconds: числовой эквивалент delay_label (возвращается только в режиме full).

Удалить заказ


Удалите существующий заказ, чтобы он больше не был доступен через API. После удаления заказ становится навсегда недоступным для дальнейших запросов.

Endpoint (конечная точка)

POST/v1/orders/delete

Тело запроса

  • trackcode(обязательно): 16-символьный код отслеживания в верхнем регистре.
  • type(необязательно): mixer | exchange. Если не указано — определяется автоматически.

Ответ

  • ok: true в случае успеха.
  • trackcode: Возврат запрошенного кода отслеживания.
  • type: Тип заказа ( mixer или exchange).
  • deleted: true, если заказ был удалён.

Поведение

  • Если заказ уже удалён или не найден, API возвращает 404 NOT_FOUND.
  • Если указан type, проверяется только этот тип; иначе определяется автоматически.

Пример запроса (PHP)

<?php
$url = "https://api.secretcryptos.com/v1/orders/delete";

$headers = [
  "Authorization: Bearer <API_KEY>",
  "Content-Type: application/json"
];

$data = [
  "trackcode" => "D391FC08747E7B04"
  // "type" => "exchange"
];

$ch = curl_init($url);
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER     => $headers,
  CURLOPT_POST           => true,
  CURLOPT_POSTFIELDS     => json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
  CURLOPT_TIMEOUT        => 20,
]);

$result = curl_exec($ch);
if ($result === false) {
  echo "cURL error: " . curl_error($ch);
} else {
  echo $result;
}
curl_close($ch);

Пример ответа — Успешно

{
  "ok": true,
  "trackcode": "D391FC08747E7B04",
  "type": "exchange",
  "deleted": true
}

Пример ответа — Не найден

{
  "ok": false,
  "code": "NOT_FOUND",
  "message": "Order not found or already deleted"
}

Коды ошибок

  • BAD_REQUEST: Неверный trackcode или type.
  • NOT_FOUND: Заказ не найден или уже удалён.
  • UNAUTHORIZED / FORBIDDEN: Неверный или отсутствующий API-ключ.
  • SERVER_ERROR: Внутренняя ошибка сервера.

Проверка подписи


Проверка цифровой подписи (подпись Письма-гарантии). При успешной расшифровке API возвращает проверенный набор данных, связанных с заказом (mixer или exchange), пригодный для клиентской проверки и отображения статуса.

Endpoint (конечная точка)

POST/v1/validate

Тело запроса

  • signature(обязательно): Блок цифровой подписи, либо в формате Base64, либо с BEGIN/END строками.

Ответ

  • ok: true при успешной проверке.
  • message: Человекочитаемое сообщение о статусе.
  • type: mixer | exchange.
  • route: Для mixer: confirm | deposit | mixing. Для exchange: exc-deposit | exc-send.
  • trackcode: Определённый код отслеживания.
  • order:
    • deposit_address (строка)
    • service_fee (строка, 2 знака после запятой)
    • coin (строка)
    • network (строка)
    • waiting_balance (строка, 8 знаков после запятой)
    • created_at (целое число, Unix-время)
  • outputs (массив):
    • coin, network, address, destination_tag
    • share_percent (строка, 2 знака после запятой)
    • delay_minutes (целое число), delay_label (например: 2ч 0м)
    • amount (строка, 8 знаков после запятой)
  • outputs_count (целое число)

Поведение

  • Предоставленная цифровая подпись проверяется системой.
  • Проверке подлежат только недавние заказы (в пределах 48 часов). Старые заказы могли быть автоматически удалены.
  • Если действительный заказ не найден, API возвращает 404 NOT_FOUND.

Пример запроса (PHP)

<?php
$url = "https://api.secretcryptos.com/v1/validate";

$signatureBlock = <<<SIG
-----BEGIN DIGITAL SIGNATURE-----
eyJ0cmFjayI6ICJEMzkxRkMwODc0N0U3QjA0IiwgInR5cGUiOiAibWl4ZXIiLCAiZXh0cmEiOiAiLi4uIn0=
-----END DIGITAL SIGNATURE-----
SIG;

$headers = [
  "Authorization: Bearer <API_KEY>",
  "Content-Type: application/json",
  "Accept: application/json",
];

$payload = [
  "signature" => $signatureBlock
];

$ch = curl_init($url);
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER     => $headers,
  CURLOPT_POST           => true,
  CURLOPT_POSTFIELDS     => json_encode($payload, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES),
  CURLOPT_TIMEOUT        => 20,
  CURLOPT_SSL_VERIFYPEER => true,
  CURLOPT_SSL_VERIFYHOST => 2,
]);

$result = curl_exec($ch);
if ($result === false) {
  header("Content-Type: text/plain; charset=utf-8");
  echo "cURL error: " . curl_error($ch);
} else {
  header("Content-Type: application/json; charset=utf-8");
  echo $result;
}
curl_close($ch);

Пример ответа — Успешно

{
  "ok": true,
  "message": "The signature has been validated successfully.",
  "type": "mixer",
  "route": "deposit",
  "trackcode": "6A5FB3BA8A150EC9",
  "order": {
    "deposit_address": "31wXuLH5AKBWoZsK4VJS5wG75nTUAWYnWf",
    "service_fee": "0.45",
    "coin": "btc",
    "network": "btc",
    "waiting_balance": "10.00000000",
    "created_at": "1755698732"
  },
  "outputs": [
    {
      "coin": "btc",
      "network": "btc",
      "address": "35iMHbUZeTssxBodiHwEEkb32jpBfVueEL",
      "destination_tag": "",
      "share_percent": "84.93",
      "delay_minutes": 0,
      "delay_label": "0h 0m",
      "amount": "8.45469657"
    },

    {
      "coin": "btc",
      "network": "btc",
      "address": "1P279UBChDFPAky8S4DcKGaaxKEMYBK9MM",
      "destination_tag": "",
      "share_percent": "15.07",
      "delay_minutes": 120,
      "delay_label": "2h 0m",
      "amount": "1.50020343"
    }
  ],
  "outputs_count": 2
}

Пример ответа — Ошибки

{
  "ok": false,
  "error": "BAD_REQUEST",
  "message": "Требуется цифровая подпись"
}
---
{
  "ok": false,
  "error": "INVALID_SIGNATURE",
  "message": "Предоставленные данные не являются допустимым Base64 или слишком коротки"
}
---
{
  "ok": false,
  "error": "DECRYPTION_FAILED",
  "message": "Ошибка расшифровки. Убедитесь, что предоставленная подпись действительна, и повторите попытку."
}
---
{
  "ok": false,
  "error": "MISSING_TRACKCODE",
  "message": "Trackcode обязателен в блоке подписи."
}
---
{
  "ok": false,
  "error": "NOT_FOUND",
  "message": "Не удалось найти данные о запрошенном заказе."
}

Коды ошибок

  • BAD_REQUEST: Отсутствует signature или некорректное тело запроса.
  • INVALID_SIGNATURE: Неверный Base64 или блок подписи слишком короткий.
  • DECRYPTION_FAILED: Ошибка расшифровки AES-GCM.
  • INVALID_PAYLOAD: Расшифрованный блок не является корректным JSON.
  • MISSING_TRACKCODE: Поле track отсутствует в блоке.
  • NOT_FOUND: Заказ не найден за последние 48 часов.
  • UNAUTHORIZED / FORBIDDEN: Неверный или отсутствующий API-ключ.
  • SERVER_ERROR: Внутренняя ошибка сервера.

Примечания

  • Числовая точность: waiting_balance и amount → 8 знаков после запятой (строка), share_percent → 2 знака (строка), service_fee → 2 знака (строка).
  • Задержки: возвращаются и человекочитаемый формат ( delay_label), и машинное значение в минутах ( delay_minutes).

Ограничения запросов


Лимит: 1000 запросов / день / API-ключ.