API-Dokumentationszentrum wird geladen...
LIVE-MIXE
BTC
0.015000 BTC
BTC Gemischt · 45s vor
ADA
508 ADA
ADA Gemischt · 3m vor
USDT
1,129 USDT
USDT Gemischt · 3m vor
TON
102.008901 TON
TON Gemischt · 3m vor
TON
39.394381 TON
TON Gemischt · 4m vor
LTC
9.833244 LTC
LTC Gemischt · 8m vor
USDT
2,845 USDT
USDT Gemischt · 11m vor
BTC
0.009999 BTC
BTC Gemischt · 11m vor
BTC
0.037000 BTC
BTC Gemischt · 11m vor
DOGE
12,220 DOGE
DOGE Gemischt · 11m vor
BTC
0.015000 BTC
BTC Gemischt · 45s vor
ADA
508 ADA
ADA Gemischt · 3m vor
USDT
1,129 USDT
USDT Gemischt · 3m vor
TON
102.008901 TON
TON Gemischt · 3m vor
TON
39.394381 TON
TON Gemischt · 4m vor
LTC
9.833244 LTC
LTC Gemischt · 8m vor
USDT
2,845 USDT
USDT Gemischt · 11m vor
BTC
0.009999 BTC
BTC Gemischt · 11m vor
BTC
0.037000 BTC
BTC Gemischt · 11m vor
DOGE
12,220 DOGE
DOGE Gemischt · 11m vor

SecretCryptos API-Dokumentation

Sicher. Schnell. Entwicklerfreundlich.
API-Schnittstelle
Integrieren Sie Krypto-Mixing- und Exchange-Funktionen in Ihre App oder Ihren Service mit der offiziellen SecretCryptos API.
SecretCryptos API-Dokumentation für sichere Krypto-Integration Entwicklerhandbuch für die SecretCryptos API-Integration API-Referenz für Krypto-Mixing und Exchange mit SecretCryptos

Einführung


Die SecretCryptos API bietet sicheren, einfachen und konsistenten Zugriff auf unsere Mixer- und Exchange-Dienste. Dieses „Lite“-Dokument konzentriert sich auf die wichtigsten Endpunkte, um Ihnen den schnellen Einstieg zu erleichtern.

Basis-URL: https://api.secretcryptos.com/v1

Beispiel: GET /v1/pingausprobieren

Sie können auch die Live-Root-Seite unter api.secretcryptos.com erkunden.

Weitere Links: Link-HubAPI-Dokumentation (Swagger UI)GitHub-Organisation.

Authentifizierung


  • Header: Authorization: Bearer YOUR_API_KEY
  • Alle Anfragen müssen HTTPS verwenden.
Rufen Sie niemals authentifizierte Endpunkte aus clientseitigem JavaScript auf. Bewahren Sie Ihren API-Schlüssel auf dem Server auf und leiten Sie die Antwort an den Browser weiter.

API-Schlüssel erhalten


  1. Erstellen Sie ein Konto oder melden Sie sich an unter Partner.
  2. Öffnen Sie das obere Menü und klicken Sie auf den Reiter API.
  3. Kopieren Sie Ihren API-KEY (geheim halten; er funktioniert sowohl für Mixer als auch für Exchange).

API-Schlüsselsicherheit


Rufen Sie niemals authentifizierte Endpunkte aus clientseitigem JavaScript auf. Bewahren Sie Ihren API-Schlüssel auf dem Server auf und leiten Sie Antworten an den Browser weiter.

cURL (serverseitig)

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

PHP-Proxy

<?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


Einfache Gesundheitsprüfung und Version.

GET/v1/ping
GET https://api.secretcryptos.com/v1/ping
{
  "ok": true,
  "service": "SecretCryptos API",
  "version": "1.2.6",
  "ts": 1723800000
}
  • ts: Unix-Epoche (Sekunden).
  • Keine Authentifizierung erforderlich.

Meta


Root-Erkennung für verfügbare Meta-Endpunkte.

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": "Einfache Statusprüfung."
    },
    {
      "name": "Meta (Mixer)",
      "path": "/v1/meta/mixer",
      "method": "GET",
      "auth": true,
      "desc": "Unterstützte Coins/Netzwerke und Mixer-Regeln."
    },
    {
      "name": "Meta (Exchange)",
      "path": "/v1/meta/exchange",
      "method": "GET",
      "auth": true,
      "desc": "Unterstützte Handelspaare und Exchange-Limits."
    },
    {
      "name": "Create Mixer Order",
      "path": "/v1/mixer/orders",
      "method": "POST",
      "auth": true,
      "desc": "Eine neue Mixer-Bestellung erstellen."
    },
    {
      "name": "Create Exchange Order",
      "path": "/v1/exchange/orders",
      "method": "POST",
      "auth": true,
      "desc": "Eine neue Exchange-Bestellung erstellen."
    },
    {
      "name": "Check Order",
      "path": "/v1/orders/check",
      "method": "POST",
      "auth": true,
      "desc": "Bestellstatus per Trackcode abfragen."
    },
    {
      "name": "Delete Order",
      "path": "/v1/orders/delete",
      "method": "POST",
      "auth": true,
      "desc": "Eine Bestellung löschen (falls erlaubt)."
    },
    {
      "name": "Prices",
      "path": "/v1/prices",
      "method": "GET",
      "auth": true,
      "desc": "Aktuelle Wechselkurse und Preise."
    },
    {
      "name": "Validate Signature",
      "path": "/v1/validate",
      "method": "POST",
      "auth": false,
      "desc": "Digitale Signatur eines Garantieschreibens validieren."
    }
  ]
}
		
  • Keine Authentifizierung erforderlich.

Meta / Mixer


Pro-Coin-Mixer-Konfiguration (min/max, Netzwerkbezeichnungen, Service-/pro-Adresse-Gebühren, Dezimalstellen, Bestätigungen).

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
        }
      }
    }
  }
}
  • Auth erforderlich:Authorization: Bearer YOUR_API_KEY.
  • service_fee ist ein Prozentsatz (z. B. 0.1 = 0.1%).
  • per_address_fee ist ein String mit 8 Dezimalstellen in Coin-Einheiten.

Meta / Exchange


Exchange-Konfiguration: Wartung, Live-USD-Preise und netzwerkspezifische Limits/Gebühren.

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"
          }
        }
      },
	  ...
    }
  }
}
  • Auth erforderlich:Authorization: Bearer YOUR_API_KEY.
  • service_fee ist ein Prozent-String (z. B. "0.5" = 0.5%).
  • prices_usd sind Live-Werte aus der Datenbank.

MIXER


Die Mixer API ermöglicht es Ihnen, programmgesteuert transaktionsbasierte Datenschutzvorgänge zu erstellen. Sie definieren die Coin, das Netzwerk, den Betrag und eine oder mehrere Ausgabeadressen mit Prozentanteilen und optionalen Verzögerungen. Wir stellen eine Einzahlungsadresse bereit und geben einen vollständigen Plan zurück (Gebühren + Ausgaben), damit Sie Eingänge, Auszahlungen oder escrow-ähnliche Abläufe automatisieren können.

  • Anwendungsfälle: sichere Zahlungsannahme, automatisierte Umsatzaufteilung, Auszahlungen an mehrere Wallets, verzögerte Ausschüttungen.
  • Abrufen von Limits & Gebühren über /v1/meta/mixer, bevor Sie Bestellungen erstellen.
  • Alle Geldfelder sind in Coin-Einheiten, sofern nicht anders angegeben.
  • Alle Zeitstempel sind Unix-Epochen-Sekunden (Zeitzone: GMT-3 auf dem Server).

MIXER / Bestellung erstellen


Erstellen Sie eine neue Mixer-Bestellung. Sie geben Coin, Netzwerk, Betrag und eine oder mehrere Ausgabeadressen mit Prozentsätzen und Verzögerungen an. Das System weist eine Einzahlungsadresse zu und gibt Bestelldetails einschließlich Gebühren und Auszahlungsplan zurück.

Validierungsregeln

  • amount: Muss zwischen coin-spezifischem min_amount und max_amount aus /v1/meta/mixer liegen.
  • addresses: 1–10 Ausgaben.
  • percent:
    • Format: bis zu 2 Dezimalstellen (z. B. 10, 10.5, 10.50).
    • Mindestbetrag pro Adresse: ≥ 1.00, Maximum: ≤ 100.00.
    • Die Summe aller Ausgaben muss genau 100.00 betragen.
    • Wenn es nur 1 Ausgabe gibt, muss ihr Prozentsatz genau 100.00 sein.
  • delay:
    • Akzeptiert Minuten (z. B. 120) oder Label (z. B. "2h 0m").
    • Maximum: 48h (d. h. 2880 Minuten).
  • service_fee(optionales Override):
    • Bis zu 2 Dezimalstellen.
    • Bereich: 0.105.00 (%). Falls weggelassen, wird der Systemstandard für den Coin verwendet.
  • address format: Muss dem ausgewählten Netzwerk entsprechen (z. B. BTC Legacy/SegWit, ERC-20 0x…, TRC-20 T…, SOL usw.).
  • destination_tag / memo: Optional; erforderlich für einige Netzwerke (z. B. XRP-Tag, TON-Memo).

Hinweise

  • expires_at: Zeitpunkt, wann die Einzahlungsadresse abläuft (Epoch-Sekunden).
  • outputs[i].time: Geplante Auszahlungszeit in Epoch-Sekunden (basierend auf delay_minutes).
  • Verwenden Sie ?pretty=1 für menschenlesbares JSON während des Testens.
  • Rate Limits: Standard-Tageslimit pro API-Key; höhere Stufen verfügbar (siehe „Rate Limits“).

Häufige Fehler

{
  "ok": false,
  "code": "BAD_REQUEST",
  "message": "Sum of percents must be exactly 100.00"
}
  • BAD_REQUEST: Ungültiger Body, falsches Adressformat, Prozent nicht mit 2 Dezimalstellen, Gebühr außerhalb des Bereichs, Verzögerung > 48h usw.
  • AMOUNT_TOO_LOW / AMOUNT_TOO_HIGH: Verstößt gegen min/max pro Coin.
  • SERVICE_UNAVAILABLE: Keine verfügbare Einzahlungsadresse für dieses Netzwerk.
  • TOO_MANY_REQUESTS: Tägliches API-Limit erreicht.
  • UNAUTHORIZED / FORBIDDEN: Ungültiger/deaktivierter API-Key.
POST/v1/mixer/orders

Header

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

Request Body

{
  "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
}

Request Body

{
  "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: Liste der Ausgabedestinationen. Jede Adresse sollte die folgenden Felder haben:
    • address: Die Zieladresse, an die die Gelder gesendet werden.
    • percent: Der Prozentsatz des Gesamtbetrags, der an diese Adresse gesendet wird (z. B. 100 für den Gesamtbetrag oder 50 für die Hälfte).
    • delay: Die Verzögerung, bevor die Transaktion verarbeitet wird. Kann in Minuten angegeben werden (z. B. 120) oder im Textformat (z. B. "2h 0m").
    • destination_tag: Dieses Feld ist für XRP- und TON-Netzwerke erforderlich. Falls nicht benötigt, kann es weggelassen oder leer gelassen werden (z. B. "").
  • amount: Der Gesamtbetrag in Coin-Einheiten, der übertragen werden soll. Bitte verwenden Sie einen Punkt als Dezimaltrennzeichen (z. B. 10.00000000).
  • crypto/ network: Coin und Blockchain-Netzwerk (z. B. btc/ btc für Bitcoin).
  • partner: Optional, aber empfohlen. Ihr PARTNER KEY ist unter Partner unter dem API-Tab (mit Ihrem API-KEY) verfügbar. Bei Verwendung verdienen Sie 30% der Servicegebühr.
  • service_fee: Optionales Override für die Servicegebühr in Prozent. Wenn weggelassen, gilt der Systemstandard. Falls angegeben, muss es eine Zahl zwischen 0.1 und 5 sein (einschließlich).
  • qrcode: Optional. 1 liefert eine Base64-Daten-URL unter deposit.qr_code; 0 oder weggelassen liefert keinen QR-Code.
  • destination_tag: Erforderlich für XRP- und TON-Netzwerke. Falls nicht benötigt, kann es weggelassen oder leer gelassen werden ("").

So verwenden Sie den QR-Code

Wenn qrcode auf 1 gesetzt ist, enthält die Antwort ein Base64-kodiertes Bild im Feld deposit.qr_code. Dies ist ein vollständig funktionaler QR-Code, den Sie in Ihr Frontend als Bild einbetten können, sodass Benutzer ihn mit ihren Wallet-Anwendungen scannen können. Hier ein Beispiel, wie man ihn auf einer Webseite anzeigt:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="Zum Bezahlen scannen" />

Benutzer können den QR-Code mit ihrer bevorzugten Wallet-App scannen, um Zieladresse und Betrag sofort auszufüllen und so eine schnelle und sichere Transaktion zu ermöglichen.

Antwort

{
  "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: Eindeutige Bestellkennung.
  • deposit: Wohin der Benutzer Gelder senden soll.
  • fees: Alle angewendeten Gebühren.
  • outputs: Geplante Verteilung der Gelder mit Verzögerungen.
  • time und expires_at: Unix-Zeitstempel (Zeitzone: GMT-3).
  • signature_text: Digitale gepanzerte Signatur zur Validierung.

PHP-Beispiel

<?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);

EXCHANGE


Die Exchange API ermöglicht es Ihnen, eine Einzahlung in from_coin/ from_network in eine einzelne Zieladresse mit to_coin/ to_network zu tauschen. Wir stellen eine Einzahlungsadresse bereit, berechnen ein Live-Angebot (USD-basierte Limits & angewandte Gebühr) und geben das vollständige Bestellobjekt zurück, das Sie abfragen können, bis es finanziert und ausgeführt wird.

  • Anwendungsfälle: sofortige Swaps beim Checkout, „Einzahlung in X → Empfang Y“, Off-Ramp/On-Ramp-Brücken zwischen L1/L2s.
  • Abrufen von Paar-Limits & Standardgebühr über /v1/meta/exchange, bevor Bestellungen erstellt werden.
  • Alle Geldfelder sind in Coin-Einheiten, sofern nicht anders angegeben; Limits sind USD-basiert.
  • Alle Zeitstempel sind Unix-Epochen-Sekunden (Server-Zeitzone GMT-3).

EXCHANGE / Bestellung erstellen


Erstellen Sie eine neue Exchange-Bestellung. Sie geben die from_* -Seite (Coin/Netzwerk/Betrag) und die Ziel-to_address für die to_* -Seite an. Wir geben eine Einzahlungsadresse im from_network, ein Angebot und die geplante Ausgabe zurück.

Validierungsregeln

  • amount: USD-Wert (Betrag × from_coin-Preis) muss innerhalb der paar-spezifischen min_usd/ max_usd von /v1/meta/exchange liegen.
  • address format: Muss dem ausgewählten to_network entsprechen (z. B. ERC-20 0x…, TRC-20 T…, BTC, DOGE, SOL usw.).
  • destination_tag / memo: Optional, aber für einige Netzwerke erforderlich (z. B. XRP-Tag, TON-Memo).
  • service_fee (optional, Prozent):
    • Bis zu 2 Dezimalstellen (z. B. 0.6 = 0.60%).
    • Globaler Rahmen: min 0.50%, max 3.00%.
    • Wenn unterhalb des Seitenstandards für dieses Paar angegeben, gilt der Seitenstandard. Wenn über 3.00%, wird es auf 3.00% begrenzt.
    • Falls weggelassen, gilt: effektive Gebühr = max(seitenstandard, 0.50%).

Hinweise

  • quote.final_usd = (Betrag × from-Preis) × (1 − Gebühr%).
  • quote.to.estimated_receive = final_usd ÷ to_coin-Preis.
  • receive.delay_label: Geplante Verzögerung, bevor wir den Swap senden (Standard 0h 10m).
  • expires_at: Einzahlungsfenster für die zugewiesene Adresse.
  • Verwenden Sie ?pretty=1 für formatiertes JSON beim Testen.
POST/v1/exchange/orders

Header

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

Request Body

{
  "from_coin": "eth",
  "from_network": "eth",
  "to_coin": "doge",
  "to_network": "doge",
  "to_address": "DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p",
  "amount": "1.00000000",
  "service_fee": 0.6,           // optional; %0.60 → durch Regeln begrenzt  "partner": "YOUR_PARTNER_KEY", // optional, verdient 30% der Plattformgebühr  "qrcode": 1                    // optional; fügt Base64-QR bei deposit.qr_code hinzu}

Request Body (XRP / TON Beispiele)

{
  "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"
}

Antwort

{
  "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,..."  // nur wenn 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: Eindeutiger Bestell-Identifier zum Abfragen des Status.
  • deposit: Wohin der Benutzer from_coin senden muss.
  • quote: Preis-Snapshot und effektive Gebühr.
  • receive/ outputs: Geplante Swap-Ausgabedetails.

PHP-Beispiel

<?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);

So verwenden Sie den QR-Code

Wenn qrcode in Create auf 1 gesetzt ist, enthält die Antwort einen Base64-kodierten QR unter deposit.qr_code. Betten Sie ihn direkt als <img> ein, damit Benutzer die Einzahlungsadresse scannen können.

<img src="data:image/png;base64,..." alt="Zum Bezahlen scannen" />

Preise


Abrufen der neuesten Marktpreise in USD für unterstützte Kryptowährungen. Sie können mehrere Symbole gleichzeitig abfragen, indem Sie sie durch Kommas trennen.

Endpunkt

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

Abfrageparameter

  • symbols(optional): Kommagetrennte Liste von Coin-Symbolen (z. B. BTC,ETH,USDT). Wenn weggelassen, werden alle unterstützten Coins zurückgegeben.

Antwort

  • ok: true, wenn die Anfrage erfolgreich war.
  • base: Immer USD.
  • ts: Unix-Timestamp (Sekunden).
  • prices: Objektzuordnung SYMBOL → "Preis" (Zahlen als Strings).

Beispielanfrage (nur 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);

Beispielanfrage (alle Symbole)

<?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);

Beispielantwort

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

Fehlercodes

  • BAD_REQUEST: Ungültiges symbols-Format.
  • UNAUTHORIZED / FORBIDDEN: API-Key ungültig oder fehlt.
  • SERVER_ERROR: Interner Server-/Datenbankfehler.

Hinweise

  • Nicht unterstützte Ticker werden einfach aus dem prices-Objekt weggelassen.
  • Numerische Werte werden als Strings zurückgegeben, um die Genauigkeit zu erhalten.

Bestellstatus


Verwenden Sie einen einzigen Endpunkt, um den Status von Mixer- und Exchange-Bestellungen zu prüfen. Sie können den Bestelltyp explizit setzen (mixer/ exchange) oder die API automatisch erkennen lassen.

Endpunkt

POST/v1/orders/check

Request Body

  • trackcode(erforderlich): Der 16-stellige Tracking-Code der Bestellung in Großbuchstaben.
  • type(optional): mixer | exchange. Wenn weggelassen, versucht die API, automatisch zu erkennen.
  • outputs(optional): none | summary | full (Standard: summary).
  • mask_addresses(optional): true=Adressen maskieren (Standard), false=volle Adressen zurückgeben.

Antwort

  • type: mixer oder exchange.
  • deposit.confirm_status: Status der Einzahlung:
    • 0: Keine Zahlung eingegangen.
    • 1: Zahlung eingegangen, aber noch ausstehend (entweder wartend auf Bestätigungen oder noch nicht vollständig gedeckt).
    • 2: Einzahlung vollständig bestätigt und gedeckt.
  • deposit.delete_in_sec: Verbleibende Sekunden bis zum Ablauf der 48-Stunden-Aufbewahrung.
  • deposit.funding-Block:
    • waiting_balance: Gesamterwartungsbetrag.
    • received_balance: Bisher erhaltener Betrag.
    • remaining_need: Noch benötigter Betrag.
    • is_fully_funded: Ob vollständig gedeckt.
    • can_start: nur true, wenn confirm_status==2 UND is_fully_funded==true.
  • outputs:
    • none: Nicht zurückgegeben.
    • summary: Gibt count, sent_count, sent_total zurück.
    • full: Für jede Ausgabe: index, address (maskiert oder nicht), destination_tag, coin, network, share_percent, delay_label, delay_seconds, state, confirm, tx, amount, left_seconds.
  • status_reason: z. B. "INSUFFICIENT_FUNDS" (falls nicht vollständig gedeckt).

Geschäftsregeln

  • Bestellungen starten nicht, solange sie nicht vollständig gedeckt sind (is_fully_funded=false): Ausgaben bleiben unzugewiesen und keine Partnervergütung wird generiert.
  • Wenn confirm_status==2 UND is_fully_funded==true:
    • Ausgaben werden einmal mit Zeitstempeln versehen und bleiben bei wiederholten Abfragen konsistent.
    • Partnervergütungen werden einmalig gutgeschrieben, wenn die Bestellung gültig wird.

Beispielanfrage (PHP)

// Mixer-Beispiel (volle Ausgaben, unmaskierte Adressen)<?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);

Beispielantwort — Vollständig gedeckt

{
  "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
    }
  ]
}

Beispielantwort — Unterdeckt

{
  "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"
  }
}

Ausgabenerklärung

  • index: Fortlaufende Ausgabennummer in der Bestellung.
  • address: Zieladresse, an die Gelder gesendet werden.
  • destination_tag: Optionales Tag/Memo für XRP, XLM usw. (null, falls nicht erforderlich).
  • coin: Kryptowährungscode der Ausgabe (z. B. btc, eth).
  • network: Netzwerkname, der für die Übertragung verwendet wird (z. B. btc, eth).
  • share_percent: Prozentsatz der Gesamteinzahlung, der dieser Ausgabe zugewiesen wird.
  • delay_label: Menschlich lesbares Label, wann diese Ausgabe verarbeitet wird (z. B. 2h 0m).
  • delay_seconds: Verzögerung in Sekunden, bis die Ausgabe verarbeitet werden kann.
  • state: Ausgabestatus:
    • 0 → Wartend (Einzahlung noch nicht vollständig bestätigt).
    • 1 → Verarbeitung (geplant; beginnt, wenn delay_seconds 0 erreicht).
    • 2 → Abgeschlossen (Übertragung beendet).
  • confirm: Transferbestätigungsstatus (nur relevant bei state=2):
    • 0 → Transaktion gesendet, aber noch nicht bestätigt (ausstehend).
    • 1 → Transaktion bestätigt (mindestens 1 Blockchain-Bestätigung).
  • tx: Blockchain-Transaktionshash für diese Ausgabe.
  • amount: An diese Ausgabedresse gesendeter Betrag.
  • left_seconds: Verbleibende Sekunden bis zur geplanten Sendezeit.
    Hinweis: Dieser Countdown startet erst, wenn deposit.confirm_status=2 (vollständig bestätigt) ist. Beispiel: wenn 600 Sekunden (10 Minuten) eingestellt sind, beginnt der Countdown erst nach Einzahlungsbestätigung.

Hinweis: Zahlungs- und Ausgabedaten werden etwa jede Minute aktualisiert.

Fehlercodes

  • BAD_REQUEST: Fehlender/ungültiger trackcode, fehlerhafter Request Body.
  • NOT_FOUND: Bestellung nicht gefunden.
  • UNAUTHORIZED / FORBIDDEN: API-Key ungültig oder deaktiviert.
  • TOO_MANY_REQUESTS: Tägliches Anfrage-Limit überschritten.
  • SERVER_ERROR: Unerwarteter Serverfehler.

  • mask_addresses: gesteuert durch mask_addresses (Standard: true).
  • delay_seconds: numerisches Äquivalent zu delay_label (nur im full-Modus zurückgegeben).

Bestellung löschen


Löschen Sie eine bestehende Bestellung, sodass sie nicht mehr über die API zugänglich ist. Nach dem Löschen ist die Bestellung dauerhaft für weitere Abfragen nicht verfügbar.

Endpunkt

POST/v1/orders/delete

Request Body

  • trackcode(erforderlich): Der 16-stellige Tracking-Code in Großbuchstaben.
  • type(optional): mixer | exchange. Wenn weggelassen, erfolgt die Erkennung automatisch.

Antwort

  • ok: true bei Erfolg.
  • trackcode: Echo des angefragten Tracking-Codes.
  • type: Der Bestelltyp (mixer oder exchange).
  • deleted: true, wenn die Bestellung gelöscht wurde.

Verhalten

  • Wenn die Bestellung bereits gelöscht oder nicht gefunden wurde, gibt die API 404 NOT_FOUND zurück.
  • Wenn type angegeben ist, wird nur dieser Typ geprüft; andernfalls erfolgt die Erkennung automatisch.

Beispielanfrage (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);

Beispielantwort — Erfolg

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

Beispielantwort — Nicht gefunden

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

Fehlercodes

  • BAD_REQUEST: Ungültiger trackcode oder type.
  • NOT_FOUND: Bestellung nicht gefunden oder bereits gelöscht.
  • UNAUTHORIZED / FORBIDDEN: API-Key ungültig oder fehlt.
  • SERVER_ERROR: Interner Serverfehler.

Signaturprüfung


Validieren Sie eine digital signierte Nutzlast (Letter-of-Guarantee-Signatur). Bei erfolgreicher Entschlüsselung gibt die API eine verifizierte Teilmenge der zugehörigen Bestelldetails (Mixer oder Exchange) zurück, geeignet für Client-seitige Prüfungen und Statusanzeigen.

Endpunkt

POST/v1/validate

Request Body

  • signature(erforderlich): Der digitale Signaturblock, entweder als Base64-Rohwert oder mit BEGIN/END-Zeilen.

Antwort

  • ok: true bei Erfolg.
  • message: Menschlich lesbare Statusmeldung.
  • type: mixer | exchange.
  • route: Für Mixer: confirm | deposit | mixing. Für Exchange: exc-deposit | exc-send.
  • trackcode: Aufgelöster Tracking-Code.
  • order:
    • deposit_address (String)
    • service_fee (String, 2 Dezimalstellen)
    • coin (String)
    • network (String)
    • waiting_balance (String, 8 Dezimalstellen)
    • created_at (Integer, Unix-Timestamp)
  • outputs (Array):
    • coin, network, address, destination_tag
    • share_percent (String, 2 Dezimalstellen)
    • delay_minutes (Integer), delay_label (z. B. 2h 0m)
    • amount (String, 8 Dezimalstellen)
  • outputs_count (Integer)

Verhalten

  • Die bereitgestellte digitale Signatur wird gegen das System validiert.
  • Nur aktuelle Bestellungen (innerhalb von 48 Stunden) sind für die Validierung zulässig. Ältere Bestellungen können automatisch entfernt worden sein.
  • Wenn keine gültige Bestellung gefunden wird, antwortet die API mit 404 NOT_FOUND.

Beispielanfrage (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);

Beispielantwort — Erfolg

{
  "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
}

Beispielantwort — Fehler

{
  "ok": false,
  "error": "BAD_REQUEST",
  "message": "Digitale Signatur ist erforderlich"
}
---
{
  "ok": false,
  "error": "INVALID_SIGNATURE",
  "message": "Die bereitgestellten Daten sind kein gültiges Base64 oder zu kurz"
}
---
{
  "ok": false,
  "error": "DECRYPTION_FAILED",
  "message": "Entschlüsselung fehlgeschlagen. Stellen Sie sicher, dass die bereitgestellte Signatur gültig ist, und versuchen Sie es erneut."
}
---
{
  "ok": false,
  "error": "MISSING_TRACKCODE",
  "message": "Trackcode wird im Signatur-Payload benötigt."
}
---
{
  "ok": false,
  "error": "NOT_FOUND",
  "message": "Die angeforderten Bestelldetails konnten nicht gefunden werden."
}

Fehlercodes

  • BAD_REQUEST: Fehlende signature oder fehlerhaftes Payload.
  • INVALID_SIGNATURE: Ungültiges Base64 oder Signaturblock zu kurz.
  • DECRYPTION_FAILED: AES-GCM-Entschlüsselung fehlgeschlagen.
  • INVALID_PAYLOAD: Entschlüsseltes Payload ist kein gültiges JSON.
  • MISSING_TRACKCODE: track-Feld fehlt im Payload.
  • NOT_FOUND: Bestellung in den letzten 48 Stunden nicht gefunden.
  • UNAUTHORIZED / FORBIDDEN: API-Key ungültig oder fehlt.
  • SERVER_ERROR: Interner Serverfehler.

Hinweise

  • Numerische Präzision: waiting_balance und amount → 8 Dezimalstellen (String), share_percent → 2 Dezimalstellen (String), service_fee → 2 Dezimalstellen (String).
  • Verzögerungen: Sowohl menschliches Label (delay_label) als auch maschinenlesbare Minuten (delay_minutes) werden zurückgegeben.

Rate Limits


Limit: 1000 Anfragen / Tag / API-Key.