API-Dokumentationszentrum wird geladen...
LIVE MIXES
LTC
14.337709 LTC
LTC Gemischt · Vor 38 Sekunden
MATIC
6.751 MATIC
MATIC Gemischt · Vor 38 Sekunden
USDC
10.563 USDC
USDC Gemischt · Vor 48s
SOL
9,478999 SOL
SOL Gemischt · Vor 55s
ETH
1,322949 ETH
ETH Gemischt · Vor 1m
ETH
0,084496 ETH
ETH Gemischt · 1m vor
USDT
2.683 USDT
USDT Gemischt · vor 2m
USDC
731 USDC
USDC Gemischt · vor 3m
SOL
2,883669 SOL
SOL Gemischt · Vor 4 Monaten
USDT
2.104 USDT
USDT Gemischt · Vor 4 Monaten
LTC
14.337709 LTC
LTC Gemischt · Vor 38 Sekunden
MATIC
6.751 MATIC
MATIC Gemischt · 38 Sekunden vor
USDC
10.563 USDC
USDC gemischt · vor 48s
SOL
9,478999 SOL
SOL gemischt · vor 55s
ETH
1,322949 ETH
ETH gemischt · vor 1m
ETH
0,084496 ETH
ETH gemischt · vor 1 Mio.
USDT
2.683 USDT
USDT gemischt · vor 2 Mio.
USDC
731 USDC
USDC gemischt · vor 3 Mio.
SOL
2,883669 SOL
SOL gemischt · vor 4 Mio.
USDT
2.104 USDT
USDT gemischt · vor 4 Mio.

SecretCryptos API-Dokumentation

Sicher. Schnell. Entwicklerfreundlich.
Programmierschnittstelle
Integrieren Sie Funktionen zum Mischen und Austauschen von Kryptowährungen in Ihre App oder Ihren Dienst mit der offiziellen SecretCryptos-API.
SecretCryptos API documentation for secure crypto integration Developer guide for SecretCryptos API integration API reference for crypto mixing and exchange with SecretCryptos

Einführung


DieSecretCryptos APIbietet sicheren, einfachen und konsistenten Zugriff auf unsereMixerundExchangeDienstleistungen. Dieses „Lite“-Dokument konzentriert sich auf die Kernendpunkte, um Ihnen einen schnellen Einstieg zu erleichtern.

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

Beispiel: GET /v1/pingversuchen Sie es

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

erkunden. Weitere Links:Links hubAPI-Dokumente (Swagger-Benutzeroberfläche)GitHub Organization.

Authentifizierung


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

API-Schlüssel abrufen


  1. Erstellen Sie ein Konto oder melden Sie sich an beiPartner.
  2. Öffnen Sie das obere Menü und klicken Sie auf die Registerkarte API.
  3. Kopieren IhrAPI-SCHLÜSSEL(Halten Sie ihn geheim; er funktioniert sowohl für Mixer als auch für Exchange).

API-Schlüsselsicherheit


Rufen Sie niemals authentifizierte Endpunkte über clientseitiges JavaScript auf. Behalten Sie Ihren API-Schlüssel auf dem Server und Proxy-Antworten an den Browser.

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 Metadaten 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": "Simple health check."
    },
    {
      "name": "Meta (Mixer)",
      "path": "/v1/meta/mixer",
      "method": "GET",
      "auth": true,
      "desc": "Supported coins/networks and mixer rules."
    },
    {
      "name": "Meta (Exchange)",
      "path": "/v1/meta/exchange",
      "method": "GET",
      "auth": true,
      "desc": "Supported trading pairs and exchange limits."
    },
    {
      "name": "Create Mixer Order",
      "path": "/v1/mixer/orders",
      "method": "POST",
      "auth": true,
      "desc": "Create a new mixer order."
    },
    {
      "name": "Create Exchange Order",
      "path": "/v1/exchange/orders",
      "method": "POST",
      "auth": true,
      "desc": "Create a new exchange order."
    },
    {
      "name": "Check Order",
      "path": "/v1/orders/check",
      "method": "POST",
      "auth": true,
      "desc": "Query order status by trackcode."
    },
    {
      "name": "Delete Order",
      "path": "/v1/orders/delete",
      "method": "POST",
      "auth": true,
      "desc": "Delete an order (if allowed)."
    },
    {
      "name": "Prices",
      "path": "/v1/prices",
      "method": "GET",
      "auth": true,
      "desc": "Current exchange rates and prices."
    },
    {
      "name": "Validate Signature",
      "path": "/v1/validate",
      "method": "POST",
      "auth": false,
      "desc": "Validate a digital guarantee letter signature."
    }
  ]
}
		
  • Keine Authentifizierung erforderlich.

Meta / Mixer


Mischerkonfiguration pro Münze (Min./Max., Netzwerkbezeichnungen, Service-/Adressengebü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
        }
      }
    }
  }
}
  • Authentifizierung erforderlich:Authorization: Bearer YOUR_API_KEY.
  • service_feeist ein Prozentsatz (z. B. 0.1 = 0.1%).
  • per_address_feeist eine 8-Dezimal-Zeichenfolge in Münzeinheiten.

Meta / Exchange


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

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"
          }
        }
      },
	  ...
    }
  }
}
  • Authentifizierung erforderlich:Authorization: Bearer YOUR_API_KEY.
  • service_feeist eine Prozentzeichenfolge (z. B. "0.5" = 0.5%).
  • prices_usdsind Live-Werte aus dem Datenbank.

MIXER


Mit derMixer-APIkönnen Sie datenschutzschonende Transaktionen programmgesteuert erstellen. Sie definieren dencoin, network, amount und eine oder mehrereAusgabeadressenmit prozentualen Anteilen und optionalen Verzögerungen. Wir weisen eine Einzahlungsadresse zu und senden einen vollständigen Plan (Gebühren + Ausgaben) zurück, damit Sie Einnahmen, Auszahlungen oder treuhänderische Abläufe automatisieren können.

  • Anwendungsfälle: sicherer Zahlungseingang, automatisierte Umsatzbeteiligung, Auszahlungen an mehrere Wallets, verzögerte Auszahlungen.
  • Erhalten Sie Limits und Gebühren über /v1/meta/mixerbevor Sie Bestellungen erstellen.
  • Alle Geldfelder sind inMünzeinheitensofern nicht anders angegeben.
  • Alle Zeitstempel sind Unix-Epochensekunden (Zeitzone: GMT-3 auf dem Server).

MIXER / Auftrag erstellen


Erstellen Sie einen neuen Mixerauftrag. Sie geben die Münze, das Netzwerk, den Betrag und eine oder mehrere Ausgabeadressen mit Prozentsätzen und Verzögerungen an. Das System weist eine Einzahlungsadresse zu und gibt Auftragsdetails einschließlich Gebühren und Ausgabeplan zurück.

Validierungsregeln

  • amount: Muss zwischen münzenspezifischmin_amountundmax_amountvon/v1/meta/mixer.
  • addresses: 1–10 Ausgaben liegen.
  • percent:
    • Format: bis zu 2 Dezimalstellen (z. B.10, 10.5, 10.50).
    • Minimum pro Adresse:≥ 1.00, Maximum:≤ 100.00.
    • Die Gesamtsumme aller Ausgaben muss genau sein.100.00.
    • Wenn es nur eine Ausgabe gibt, muss ihr Prozentsatz genau sein.100.00.
  • delay:
    • Akzeptiert Minuten (z. B.120) oder Beschriftung (z. B. "2h 0m").
    • Maximum:48h(i.e.,2880minutes).
  • service_fee(optional override):
    • Up to 2 decimals.
    • Range:0.105.00(%). If omitted, system default for the coin is used.
  • address format: Must match the selected network (e.g., BTC legacy/SegWit, ERC-200x…, TRC-20T…, SOL, etc.).
  • destination_tag / memo: Optional; required for some networks (e.g., XRP tag, TON memo).

Notes

  • expires_at: When the deposit address expires (epoch seconds).
  • outputs[i].time: Planned output time as epoch seconds (based ondelay_minutes).
  • Use?pretty=1for human-readable JSON during testing.
  • Rate limits: default per API key daily limit; higher tiers available (see “Rate Limits”).

Common Errors

{
  "ok": false,
  "code": "BAD_REQUEST",
  "message": "Sum of percents must be exactly 100.00"
}
  • BAD_REQUEST: Invalid body, wrong address format, percent not 2-decimal, fee out of range, delay > 48h, etc.
  • AMOUNT_TOO_LOW / AMOUNT_TOO_HIGH: Verstößt gegen Min/Max pro Münze.
  • SERVICE_UNAVAILABLE: Keine verfügbare Einzahlungsadresse für dieses Netzwerk.
  • TOO_MANY_REQUESTS: Tägliches API-Limit erreicht.
  • UNAUTHORIZED / FORBIDDEN: Ungültiger/deaktivierter API-Schlüssel.
POST/v1/mixer/orders

Headers

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

Anfrage 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 Ausgabeziele. Jede Adresse sollte die folgenden Felder haben:
    • address: Die Zieladresse, an die das Geld gesendet wird.
    • percent: Der Prozentsatz des Gesamtbetrags, der an diese Adresse gesendet werden soll (z. B.100für den gesamten Betrag oder50für die Hälfte).
    • delay: Die Verzögerung, bevor die Transaktion verarbeitet wird. Es kann in Minuten (z. B. 120) oder im Textformat (z. B. "2h 0m") angegeben werden.
    • destination_tag: Dieses Feld ist erforderlich für XRPundTONNetzwerke. If not required, it can be omitted or left empty (e.g.,"").
  • amount: The total amount in coin units to be transferred. Bitte verwenden Sie einen Punkt als Dezimaltrennzeichen (z. B. 10.00000000).
  • crypto/ network: Das Münz- und Blockchain-Netzwerk (z. B. btc/ btc für Bitcoin).
  • partner: Optional, aber empfohlen. YourPARTNER KEYis available onPartnerunder the API tab (with your API-KEY). When used, you earn30% of the service fee.
  • service_fee: Optional override for service fee in percent. Wenn es weggelassen wird, gilt der Systemstandard. Falls angegeben, muss es eine Zahl zwischen 0,1 und 5 (einschließlich) sein.
  • qrcode: Optional.1gibt eine Base64-Daten-URL unterdeposit.qr_code; 0 zurück oder wird weggelassen, es wird kein QR-Code zurückgegeben.
  • destination_tag: Erforderlich für XRPundTONNetzwerke. Wenn es nicht benötigt wird, kann es weggelassen oder leer gelassen werden ("").

So verwenden Sie den QR-Code

Wenn qrcode auf 1 eingestellt ist, enthält die Antwort ein Base64-codiertes Bild unter dem Feld deposit.qr_code. Dabei handelt es sich um einen voll funktionsfähigen QR-Code, den Sie als Bild in Ihr Frontend einbetten können, sodass Benutzer ihn mit ihren Wallet-Anwendungen scannen können. Hier ist ein Beispiel für die Anzeige auf einer Webseite:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="Scan to pay" />

Benutzer können den QR-Code mit ihrer bevorzugten Wallet-App scannen, um sofort die Zieladresse und den Betrag einzugeben 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 Geld senden soll.
  • fees: Alle anfallenden Gebühren.
  • outputs: Geplante Mittelverteilung mit Verzögerungen.
  • timeundexpires_at: Unix-Zeitstempel (GMT-3-Zeitzone).
  • signature_text: Digitale Panzersignatur 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


TheExchange APIlets you swap afrom_coin/ from_networkdeposit into a singleto_coin/ to_networkdestination address. We allocate a deposit address, compute a live quote (USD-based limits & fee applied), and return the full order object you can poll until funded and executed.

  • Use cases: instant swaps at checkout, “deposit in X → receive Y”, off-ramp/on-ramp bridges between L1/L2s.
  • Get pair limits & default fee via/v1/meta/exchangebefore creating orders.
  • All monetary fields are incoin unitsunless noted; limits areUSD-based.
  • All timestamps are Unix epoch seconds (server timezone GMT‑3).

EXCHANGE / Create Order


Create a new exchange order. You provide thefrom_* Seite (Münze/Netzwerk/Betrag) und das Zielto_addressfür die to_* Seite. Wir geben eine Einzahlungsadresse für from_network, ein Angebot und die geplante Ausgabe zurück.

Validierungsregeln

  • amount: USD-Wert (Betrag × from_coin-Preis) muss innerhalb des paarspezifischen Bereichs liegenmin_usd/ max_usdvon/v1/meta/exchange.
  • address format: Muss mit dem ausgewähltento_network übereinstimmen (z. B. ERC‑200x…, TRC‑20T…, BTC, DOGE, SOL usw.).
  • destination_tag / memo: Optional, aber von einigen Netzwerken erforderlich (z. B.XRPtag,TONmemo).
  • service_fee(optional, Prozent):
    • Bis zu 2 Dezimalstellen (z. B.0.6 = 0.60%).
    • Globale Klemme: min0.50%, max3.00%.
    • Wenn unterhalb der Site-Standardeinstellung für dieses Paar angegeben, gilt die Site-Standardeinstellung. Wenn oben3.00%, ist die Obergrenze auf3.00%.
    • Wenn weggelassen, effektive Gebühr =max(site_default, 0.50%).

Anmerkungen

  • quote.final_usd= (Betrag × vom Preis) × (1 − Gebühr%).
  • quote.to.estimated_receive = final_usd ÷ to_coinPreis.
  • receive.delay_label: Geplante Verzögerung, bevor wir den Swap senden (Standard0h 10m).
  • expires_at: Hinterlegungsfenster für die zugewiesene Adresse.
  • Verwenden Sie ?pretty=1 für schön gedrucktes JSON beim Testen.
POST/v1/exchange/orders

Header

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

Anfragetext

{
  "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 → clamped by rules  "partner": "YOUR_PARTNER_KEY", // optional, earns 30% of platform fee  "qrcode": 1                    // optional; adds base64 QR at deposit.qr_code}

Anfragetext (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"
}

Response

{
  "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,..."  // only if 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: Eindeutige Auftragskennung zum Abfragestatus.
  • deposit: Wohin der Benutzer senden mussfrom_coin.
  • quote: Preisübersicht 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

Wennqrcodein „Erstellen“ auf 1 eingestellt ist, enthält die Antwort eine Base64-codierte Antwort QR unterdeposit.qr_code. Betten Sie es direkt als <img> ein, damit Benutzer die Einzahlungsadresse scannen können.

<img src="data:image/png;base64,..." alt="Scan to pay" />

Preise


Rufen Sie die neuesten Marktpreise in USDfür unterstützte Kryptowährungen ab. Sie können mehrere Symbole gleichzeitig abfragen, indem Sie sie durch Kommas trennen.

Endpoint

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

Abfrageparameter

  • symbols(optional): Durch Kommas getrennte Liste von Münzsymbolen (z. B.BTC,ETH,USDT). Wenn weggelassen, werden alle unterstützten Münzen zurückgegeben.

Antwort

  • ok: truewenn die Anfrage erfolgreich war.
  • base: ImmerUSD.
  • ts: Unix-Zeitstempel (Sekunden).
  • prices: ObjektzuordnungSYMBOL → "price"(Stringnummern).

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

Beispiel Anfrage (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ültigessymbolsFormat.
  • UNAUTHORIZED / FORBIDDEN: API-Schlüssel ungültig oder fehlt.
  • SERVER_ERROR: Interner Server-/Datenbankfehler.

Hinweise

  • Nicht unterstützte Ticker werden einfach weggelassen daspricesObjekt.
  • Numerische Werte werden als Zeichenfolgen zurückgegeben, um die Genauigkeit zu wahren.

Bestellstatus


Verwenden Sie einen einzigen Endpunkt, um den Status beidermixerundexchangeBestellungen zu überprüfen. Sie können den Bestelltyp explizit festlegen (mixer/ exchange) oder ihn von der API automatisch erkennen lassen.

Endpoint

POST/v1/orders/check

Request Body

  • trackcode(erforderlich): Der 16-stellige Tracking-Code in Großbuchstaben des order.
  • type(optional): mixer | exchange. Wenn es weggelassen wird, versucht die API eine automatische Erkennung.
  • outputs(optional): none | summary | full(Standard:summary).
  • mask_addresses(optional): true=Adressen maskieren (Standard),false=vollständige Adressen zurückgeben.

Antwort

  • type: mixeroderexchange.
  • deposit.confirm_status: Status der Einzahlungsbestätigung:
    • 0: Keine Zahlung erhalten.
    • 1: Zahlung erhalten, aber noch ausstehend (entweder auf Bestätigungen wartend oder noch nicht vollständig finanziert).
    • 2: Einzahlung vollständig bestätigt und finanziert.
  • deposit.delete_in_sec: Verbleibende Sekunden bis zur 48-Stunden-Einbehaltung Ablaufdatum.
  • deposit.fundingblock:
    • waiting_balance: Erwarteter Gesamtbetrag.
    • received_balance: Bisher erhaltener Betrag.
    • remaining_need: Verbleibender Betrag erforderlich.
    • is_fully_funded: Ob vollständig finanziert.
    • can_start: nurtrue ifconfirm_status==2ANDis_fully_funded==true.
  • outputs:
    • none: Nein zurückgegeben.
    • summary: Gibtcount, sent_count, sent_total.
    • full zurück: 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"(if not fully funded).

Business Rules

  • Orders will not startunless fully funded (is_fully_funded=false): outputs remain unassigned and no partner payout is generated.
  • Ifconfirm_status==2ANDis_fully_funded==true:
    • Outputs are timestamped once and remain consistent on repeated checks.
    • Affiliate earnings are credited a single time when the order becomes valid.

Example Request (PHP)

// Mixer example (full outputs, unmasked addresses)<?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);

Example Response — Fully Funded

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

Example Response — Underfunded

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

Outputs Explanation

  • index: Sequential output number in the order.
  • address: Destination address where funds are sent.
  • destination_tag: Optional tag/memo for XRP, XLM, etc. (nullif not required).
  • coin: Cryptocurrency code of the output (e.g.,btc, eth).
  • network: Network name used for transfer (e.g.,btc, eth).
  • share_percent: Percentage of the total deposit assigned to this output.
  • delay_label: Human-readable label showing when this output will be processed (e.g.,2h 0m).
  • delay_seconds: Delay in seconds until the output can start processing.
  • state: Output state:
    • 0→ Waiting (deposit not yet fully confirmed).
    • 1→ Processing (scheduled; starts whendelay_secondsreaches 0).
    • 2→ Complete (transfer finished).
  • confirm: Transfer confirmation status (only relevant instate=2):
    • 0→ Transaction broadcasted but not yet confirmed (pending).
    • 1→ Transaction confirmed (at least 1 blockchain confirmation).
  • tx: Blockchain transaction hash for this output.
  • amount: Amount sent to this output address.
  • left_seconds: Remaining seconds until scheduled send time.
    Note:This countdown resets oncedeposit.confirm_status=2(fully confirmed). Example: if600Sekunden (10 Minuten) eingestellt ist, beginnt der Countdown erst nach der Einzahlungsbestätigung.

Hinweis:Zahlungs- und Ausgabedaten werden alle ~1 Minute aktualisiert.

Fehlercodes

  • BAD_REQUEST: Fehlt/ungültigtrackcode, fehlerhafter Anforderungstext.
  • NOT_FOUND: Bestellung nicht gefunden.
  • UNAUTHORIZED / FORBIDDEN: API Schlüssel ungültig oder deaktiviert.
  • TOO_MANY_REQUESTS: Tägliches Anforderungslimit überschritten.
  • SERVER_ERROR: Unerwarteter Serverfehler.

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

Löschen Bestellung


Löschen Sie eine bestehende Bestellung, damit nicht mehr über die API darauf zugegriffen werden kann. Nach dem Löschen ist die Bestellung für weitere Abfragen dauerhaft nicht mehr verfügbar.

Endpoint

POST/v1/orders/delete

Anfragetext

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

Response

  • ok: truebei Erfolg.
  • trackcode: Echo des angeforderten Tracking-Codes.
  • type: Der Auftragstyp (mixeroderexchange).
  • deleted: truewenn der Auftrag gelöscht wurde.

Verhalten

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

Beispielanforderung (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 – Erfolgreich

{
  "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ültigtrackcodeodertype.
  • NOT_FOUND: Bestellung nicht gefunden oder bereits gelöscht.
  • UNAUTHORIZED / FORBIDDEN: API-Schlüssel ungültig oder fehlt.
  • SERVER_ERROR: Interner Serverfehler.

Signaturvalidierung


Validieren Sie eine digital signierte Nutzlast (Letter der Garantieunterschrift). Nach erfolgreicher Entschlüsselung gibt die API eine verifizierte Teilmenge der zugehörigen Bestelldetails (Mixer oder Exchange) zurück, die für clientseitige Überprüfungen und Statusanzeigen geeignet ist.

Endpoint

POST/v1/validate

Request Body

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

Antwort

  • ok: truebei Erfolg.
  • message: Klar lesbare Statusmeldung.
  • type: mixer | exchange.
  • route: Für Mixer:confirm | deposit | mixing. Zum Umtausch:exc-deposit | exc-send.
  • trackcode: Tracking-Code aufgelöst.
  • order:
    • deposit_address(string)
    • service_fee(string, 2 Dezimalstellen)
    • coin(string)
    • network(string)
    • waiting_balance(string, 8 Dezimalstellen)
    • created_at(integer, Unix Zeitstempel)
  • outputs(Array):
    • coin, network, address, destination_tag
    • share_percent(String, 2 Dezimalstellen)
    • delay_minutes(Ganzzahl),delay_label(z. B.2h 0m)
    • amount(String, 8 Dezimalstellen)
  • outputs_count(Ganzzahl)

Verhalten

  • Die bereitgestellte digitale Signatur wird validiert gegen das System.
  • Nur aktuelle Bestellungen (innerhalb von 48 Stunden) können validiert werden.
  • Wenn keine gültige Bestellung gefunden wird, antwortet die API mit404 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 – Erfolgreich

{
  "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": "Digital signature is required"
}
---
{
  "ok": false,
  "error": "INVALID_SIGNATURE",
  "message": "The provided data is not valid Base64 or is too short"
}
---
{
  "ok": false,
  "error": "DECRYPTION_FAILED",
  "message": "Decryption failed. Ensure that the provided signature is valid and retry."
}
---
{
  "ok": false,
  "error": "MISSING_TRACKCODE",
  "message": "Trackcode is required in the signature payload."
}
---
{
  "ok": false,
  "error": "NOT_FOUND",
  "message": "The requested order details could not be found."
}

Fehlercodes

  • BAD_REQUEST: Fehlendesignatureoder fehlerhafte Nutzlast.
  • INVALID_SIGNATURE: Ungültiges Base64 oder Signaturblock ist zu kurz.
  • DECRYPTION_FAILED: AES-GCM-Entschlüsselung fehlgeschlagen.
  • INVALID_PAYLOAD: Entschlüsselte Nutzlast ist kein gültiges JSON.
  • MISSING_TRACKCODE: trackFeld fehlt in Nutzlast.
  • NOT_FOUND: Bestellung in den letzten 48 Stunden nicht gefunden.
  • UNAUTHORIZED / FORBIDDEN: API-Schlüssel ungültig oder fehlt.
  • SERVER_ERROR: Interner Serverfehler.

Hinweise

  • Numerische Genauigkeit:waiting_balanceundamount→ 8 Dezimalstellen (Zeichenfolge),share_percent→ 2 Dezimalstellen (Zeichenfolge),service_fee→ 2 Dezimalstellen (Zeichenfolge).
  • Verzögerungen: Sowohl menschliche Bezeichnung (delay_label) als auch maschinenlesbare Minuten (delay_minutes) werden zurückgegeben.

Ratenlimits


Limit:1000 Anfragen/Tag/API-Schlüssel.