Chargement du centre de documentation de l'API...
LIVE MIXES
LTC
14.337709 LTC
LTC Mixte · il y a 38s
MATIC
6,751 MATIC
MATIC Mixte · il y a 38s
USDC
10,563 USDC
USDC Mixte · il y a 48s
SOL
9.478999 SOL
SOL Mixte · il y a 55s
ETH
1.322949 ETH
ETH Mixte · il y a 1m
ETH
0.084496 ETH
ETH Mixte · 1m il y a
USDT
2,683 USDT
USDT Mixte · il y a 2 mois
USDC
731 USDC
USDC Mixte · il y a 3 mois
SOL
2.883669 SOL
SOL Mixte · il y a 4 mois
USDT
2,104 USDT
USDT Mixte · il y a 4m
LTC
14.337709 LTC
LTC Mixte · il y a 38s
MATIC
6,751 MATIC
MATIC Mixte · 38s il y a
USDC
10,563 USDC
USDC Mixte · il y a 48s
SOL
9.478999 SOL
SOL Mixte · il y a 55s
ETH
1.322949 ETH
ETH Mixte · il y a 1m
ETH
0.084496 ETH
ETH Mixte · il y a 1 mois
USDT
2,683 USDT
USDT Mixte · il y a 2 mois
USDC
731 USDC
USDC Mixte · il y a 3 mois
SOL
2.883669 SOL
SOL Mixte · Il y a 4 mois
USDT
2,104 USDT
USDT Mixte · Il y a 4 mois

SecretCryptos API Documentation

Sécurisé. Rapide. Adapté aux développeurs.
Interface de programmation
Intégrez des fonctionnalités de mixage et d'échange de chiffrement dans votre application ou service à l'aide de l'API officielle SecretCryptos.
SecretCryptos API documentation for secure crypto integration Developer guide for SecretCryptos API integration API reference for crypto mixing and exchange with SecretCryptos

Introduction


L'APISecretCryptosfournit un accès sécurisé, simple et cohérent à nos servicesMixeretExchange. Ce document « Lite » se concentre sur les points de terminaison principaux pour vous permettre de démarrer rapidement.

URL de base : https://api.secretcryptos.com/v1

Exemple : GET /v1/pingessayez-le

Vous pouvez également explorer la page racine en direct à l'adresseapi.secretcryptos.com.

Plus de liens :Liens hubDocuments API (interface utilisateur Swagger)Organisation GitHub.

Authentification


  • En-tête :Authorization: Bearer YOUR_API_KEY
  • Toutes les requêtes doivent utiliser HTTPS.
N'appelez jamais de points de terminaison authentifiés à partir de JavaScript côté client. Conservez votre clé API sur le serveur et envoyez la réponse au navigateur par proxy.

Obtenir la clé API


  1. Créez un compte ou connectez-vous àPartenaire.
  2. Ouvrez le menu supérieur et cliquez sur l'ongletAPIonglet.
  3. Copier votreAPI-KEY(gardez-le secret ; cela fonctionne à la fois pour Mixer et Exchange).

API Key Safety


N'appelez jamais de points de terminaison authentifiés à partir de JavaScript côté client. Conservez votre clé API sur le serveur et les réponses proxy au navigateur.

cURL (côté serveur)

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

Proxy 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


Vérification de santé et version simples.

GET/v1/ping
GET https://api.secretcryptos.com/v1/ping
{
  "ok": true,
  "service": "SecretCryptos API",
  "version": "1.2.6",
  "ts": 1723800000
}
  • ts : époque Unix (secondes).
  • Aucune authentification requise.

Meta


Découverte de racine pour les méta disponibles. points de terminaison.

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."
    }
  ]
}
		
  • Aucune authentification requise.

Meta / Mixer


Configuration du mélangeur par pièce (min/max, étiquettes réseau, frais de service/par adresse, décimales, confirmations).

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
        }
      }
    }
  }
}
  • Authentification requise :Authorization: Bearer YOUR_API_KEY.
  • service_feeest un pourcentage (par exemple,0.1 = 0.1%).
  • per_address_feeest une chaîne de 8 décimales en unités de pièces.

Meta / Exchange


Configuration d'Exchange : maintenance, prix en USD en direct et limites/frais par réseau.

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 requise :Authorization: Bearer YOUR_API_KEY.
  • service_feeest une chaîne de pourcentage (par exemple,"0.5" = 0.5%).
  • prices_usdsont des valeurs en direct de base de données.

MIXER


L'APIMixervous permet de créer par programme des transactions préservant la confidentialité. Vous définissez lecoin, réseau, montant, et une ou plusieursadresses de sortieavec pourcentage de parts et délais facultatifs. Nous attribuons une adresse de dépôt et renvoyons un plan complet (frais + sorties) afin que vous puissiez automatiser les reçus, les paiements ou les flux de type séquestre.

  • Cas d'utilisation : réception de paiement sécurisée, partage automatisé des revenus, paiements vers plusieurs portefeuilles, décaissements retardés.
  • Obtenez les limites et les frais via/v1/meta/mixeravant de créer des commandes.
  • All monetary fields are incoin unitsunless noted.
  • All timestamps are Unix epoch seconds (timezone: GMT-3 on server).

MIXER / Create Order


Create a new mixer order. You provide the coin, network, amount, and one or more output addresses with percentages and delays. The system allocates a deposit address and returns order details including fees and output plan.

Validation Rules

  • amount: Must be between coin-specificmin_amountandmax_amountfrom/v1/meta/mixer.
  • addresses: 1–10 outputs.
  • percent:
    • Format: up to 2 decimals (e.g.,10, 10.5, 10.50).
    • Per-address minimum:≥ 1.00, maximum:≤ 100.00.
    • Total of all outputs must be exactly100.00.
    • If there is only 1 output, its percent must be exactly100.00.
  • delay:
    • Accepts minutes (e.g.,120) or label (e.g.,"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: Violation du min/max par pièce.
  • SERVICE_UNAVAILABLE : Aucune adresse de dépôt disponible pour ce réseau.
  • TOO_MANY_REQUESTS : Limite quotidienne de l'API atteinte.
  • UNAUTHORIZED / FORBIDDEN : Clé API invalide/désactivée.
POST/v1/mixer/orders

Headers

  • 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 des destinations de sortie. Chaque adresse doit contenir les champs suivants :
    • address : L'adresse de destination où les fonds sont envoyés.
    • percent : Le pourcentage du montant total à envoyer à cette adresse (par exemple,100pour la totalité du montant ou50pour la moitié).
    • delay : Le délai avant le traitement de la transaction. Il peut être spécifié en minutes (par exemple,120) ou au format texte (par exemple,"2h 0m").
    • destination_tag : ce champ est obligatoire pourXRPetTONréseaux. S'il n'est pas requis, il peut être omis ou laissé vide (par exemple, "").
  • amount : Le montant total en unités de pièces à transférer. Veuillez utiliser un point comme séparateur décimal (par exemple, 10.00000000).
  • crypto/ network : Le réseau de pièces et de blockchain (par exemple,btc/ btcpour Bitcoin).
  • partner : Facultatif mais recommandé. VotrePARTNER KEYest disponible surPartnersous l'onglet API (avec votre API-KEY). Lorsqu'il est utilisé, vous gagnez30 % des frais de service.
  • service_fee : remplacement facultatif des frais de service en pourcentage. En cas d'omission, la valeur par défaut du système s'applique. S'il est fourni, il doit s'agir d'un nombre compris entre 0.1 et 5 (inclus).
  • qrcode : facultatif.1renvoie une URL de données Base64 sous deposit.qr_code; 0ou omis ne renvoie aucun code QR.
  • destination_tag: Requis pour les réseaux XRPetTON. S'il n'est pas nécessaire, il peut être omis ou laissé vide ("").

Comment utiliser le code QR

Lorsque leqrcodeest défini sur1, la réponse inclura une image codée en Base64 sous le champdeposit.qr_code. Il s'agit d'un code QR entièrement fonctionnel que vous pouvez intégrer dans votre interface sous forme d'image, permettant aux utilisateurs de le scanner avec leurs applications de portefeuille. Voici un exemple de la façon de l'afficher sur une page Web :

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

Les utilisateurs peuvent scanner le code QR avec leur application de portefeuille préférée pour renseigner instantanément l'adresse de destination et le montant, facilitant ainsi une transaction rapide et sécurisée.

Response

{
  "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 : Identifiant de commande unique.
  • deposit : Où l'utilisateur doit envoyer les fonds.
  • fees : Tous les frais appliqués.
  • outputs : Distribution prévue des fonds, avec des retards.
  • timeetexpires_at : horodatages Unix (fuseau horaire GMT-3).
  • signature_text : signature blindée numérique pour validation.

PHP Exemple

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


L'APIExchangevous permet d'échanger unfrom_coin/ from_networkdépôt en un seulto_coin/ to_networkadresse de destination. Nous attribuons une adresse de dépôt, calculons un devis en direct (limites et frais basés sur l'USD) et renvoyons l'objet de commande complet que vous pouvez interroger jusqu'à ce qu'il soit financé et exécuté.

  • Cas d'utilisation : échanges instantanés à la caisse, « dépôt en X → recevoir Y », ponts de sortie/sur rampe entre L1/L2.
  • Obtenez les limites de paire et les frais par défaut via/v1/meta/exchangeavant de créer commandes.
  • Tous les champs monétaires sont enunités de piècessauf indication contraire ; les limites sontBasées sur l'USD.
  • Tous les horodatages sont en secondes d'époque Unix (fuseau horaire du serveur GMT‑3).

EXCHANGE / Créer une commande


Créez une nouvelle commande d'échange. Vous fournissez lefrom_* côté (pièce/réseau/montant) et la destinationto_addresspour le côtéto_* . Nous renvoyons une adresse de dépôt sur lefrom_network, un devis et le résultat prévu.

Règles de validation

  • amount : la valeur en USD (montant × prix du_coin) doit être comprise dans les limites spécifiques à la pairemin_usd/ max_usdfrom/v1/meta/exchange.
  • address format : doit correspondre auto_network sélectionné (par exemple, ERC‑200x…, TRC‑20T…, BTC, DOGE, SOL, etc.).
  • destination_tag / memo : facultatif mais requis par certains réseaux (par exemple,XRPtag,TONmemo).
  • service_fee(facultatif, pourcentage) :
    • Jusqu'à 2 décimales (par exemple, 0.6 = 0.60%).
    • Pince globale : min0.50%, max3.00%.
    • Si elle est indiquée sous la valeur par défaut du site pour cette paire, la valeur par défaut du site s'applique. S'il est supérieur à3.00%, il est plafonné à3.00%.
    • En cas d'omission, frais effectifs =max(site_default, 0.50%).

Notes

  • quote.final_usd= (montant × du prix) × (1 − frais%).
  • quote.to.estimated_receive = final_usd ÷ to_coinprice.
  • receive.delay_label : Délai prévu avant l'envoi du swap (par défaut0h 10m).
  • expires_at : fenêtre de dépôt pour l'adresse allouée.
  • Utilisez?pretty=1pour un joli JSON imprimé pendant les tests.
POST/v1/exchange/orders

Headers

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

Request Body (XRP / Exemples 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"
}

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 : Identifiant de commande unique pour interroger l'état.
  • deposit: Où l'utilisateur doit envoyerfrom_coin.
  • quote : aperçu du prix et frais effectifs.
  • receive/ outputs : détails de la sortie d'échange prévue.

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

Comment utiliser le code QR

Lorsqueqrcodeest défini sur1dans Créer, la réponse inclut un QR codé en Base64 sous deposit.qr_code. Intégrez-le directement en tant que <img> pour permettre aux utilisateurs de scanner l'adresse de dépôt.

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

Prices


Récupérez les derniers prix du marché enUSDpour les crypto-monnaies prises en charge. Vous pouvez interroger plusieurs symboles à la fois en les séparant par des virgules.

Endpoint

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

Paramètres de requête

  • symbols(facultatif) : liste de symboles de pièces séparés par des virgules (par exemple,BTC,ETH,USDT). En cas d'omission, toutes les pièces prises en charge sont renvoyées.

Réponse

  • ok: truesi la demande a réussi.
  • base : ToujoursUSD.
  • ts : horodatage Unix (secondes).
  • prices : Mappage d'objetsSYMBOL → "price" (numéros de chaîne).

Exemple de demande (uniquement 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);

Exemple de demande (tous les symboles)

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

Exemple de réponse

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

Codes d'erreur

  • BAD_REQUEST : non validesymbolsformat.
  • UNAUTHORIZED / FORBIDDEN : clé API invalide ou manquante.
  • SERVER_ERROR : serveur/base de données interne erreur.

Notes

  • Les tickers non pris en charge sont simplement omis de l'objetprices.
  • Les valeurs numériques sont renvoyées sous forme de chaînes pour préserver la précision.

Statut de la commande


Utilisez un seul point de terminaison pour vérifier l’état des commandesmixeretexchange. Vous pouvez définir explicitement le type de commande (mixer/ exchange) ou laisser l'API le détecter automatiquement.

Endpoint

POST/v1/orders/check

Request Body

  • trackcode(obligatoire) : le code de suivi de 16 caractères majuscules du commande.
  • type(facultatif): mixer | exchange. En cas d'omission, l'API tentera de détecter automatiquement.
  • outputs(facultatif): none | summary | full(par défaut :summary).
  • mask_addresses(facultatif): true=masquer les adresses (par défaut),false=retourner les adresses complètes.

Réponse

  • type: mixerouexchange.
  • deposit.confirm_status : Statut de confirmation du dépôt :
    • 0 : Aucun paiement reçu.
    • 1 : Paiement reçu mais toujours en attente (soit en attente de confirmation, soit pas encore entièrement financé).
    • 2 : Dépôt entièrement confirmé et financé.
  • deposit.delete_in_sec : Secondes restantes jusqu'à la rétention de 48 heures expiration.
  • deposit.fundingblock :
    • waiting_balance : Montant total attendu.
    • received_balance : Montant reçu jusqu'à présent.
    • remaining_need : Montant restant nécessaire.
    • is_fully_funded : Si entièrement financé.
    • can_start: onlytrue ifconfirm_status==2ANDis_fully_funded==true.
  • outputs:
    • none : Non renvoyé.
    • summary : renvoiecount, sent_count, sent_total.
    • full : pour chaque sortie :index, address (masqué ou non),destination_tag, coin, network, share_percent, delay_label, delay_seconds, state, confirm, tx, amount, left_seconds.
  • status_reason : par ex."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 : Pourcentage du dépôt total attribué à cette sortie.
  • delay_label : Étiquette lisible par l'homme indiquant quand cette sortie sera traitée (par exemple, 2h 0m).
  • delay_seconds : Délai en secondes jusqu'à ce que la sortie puisse commencer à être traitée.
  • state : État de la sortie :
    • 0→ En attente (le dépôt n'est pas encore entièrement terminé). confirmé).
    • 1→ Traitement (planifié ; démarre lorsquedelay_secondsatteint 0).
    • 2→ Terminé (transfert terminé).
  • confirm : Statut de confirmation du transfert (uniquement pertinent dansstate=2) :
    • 0→ Transaction diffusée mais pas encore confirmée (en attente).
    • 1→ Transaction confirmée (au moins 1 blockchain confirmation).
  • tx : hachage de transaction Blockchain pour cette sortie.
  • amount : montant envoyé à cette adresse de sortie.
  • left_seconds : secondes restantes jusqu'à l'heure d'envoi programmée.
    Remarque :Ce compte à rebours se réinitialise une foisdeposit.confirm_status=2 (entièrement confirmé). Exemple : si600secondes (10 minutes) sont définies, le compte à rebours commence seulement après la confirmation du dépôt.

Remarque :Les données de paiement et de sortie sont actualisées toutes les ~1 minute.

Codes d'erreur

  • BAD_REQUEST : manquant/invalidetrackcode, corps de la demande mal formé.
  • NOT_FOUND : commande introuvable.
  • UNAUTHORIZED / FORBIDDEN : clé API invalide ou désactivé.
  • TOO_MANY_REQUESTS : limite de requêtes quotidiennes dépassée.
  • SERVER_ERROR : erreur de serveur inattendue.

  • mask_addresses : contrôlé parmask_addresses (par défaut :true).
  • delay_seconds : équivalent numérique dedelay_label (renvoyé uniquement en modefull).

Supprimer Commande


Supprimez une commande existante afin qu'elle ne soit plus accessible via l'API. Une fois supprimée, la commande est définitivement indisponible pour d'autres requêtes.

Endpoint

POST/v1/orders/delete

Request Body

  • trackcode(obligatoire) : le code de suivi de 16 caractères majuscules.
  • type(facultatif): mixer | exchange. En cas d'omission, la détection est automatique.

Réponse

  • ok: trueen cas de réussite.
  • trackcode : Echo du code de suivi demandé.
  • type : Le type de commande (mixerouexchange).
  • deleted: truesi la commande a été supprimée.

Comportement

  • Si la commande est supprimée. déjà supprimé ou introuvable, l'API renvoie 404 NOT_FOUND.
  • Sitypeest fourni, seul ce type est vérifié ; sinon, la détection est automatique.

Exemple de requête (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);

Exemple de réponse — Succès

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

Example Response — Not Found

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

Error Codes

  • BAD_REQUEST: Invalidtrackcodeortype.
  • NOT_FOUND: Order not found or already deleted.
  • UNAUTHORIZED / FORBIDDEN: API key invalid or missing.
  • SERVER_ERROR: Internal server error.

Signature Validation


Validate a digitally signed payload (Letter of Guarantee signature). Upon successful decryption, the API returns a verified subset of the related order details (mixer or exchange), suitable for client-side checks and status display.

Endpoint

POST/v1/validate

Request Body

  • signature(required): The digital signature block, either raw Base64 or with BEGIN/END lines.

Response

  • ok: trueon success.
  • message: Human‑readable status message.
  • type: mixer | exchange.
  • route: For mixer:confirm | deposit | mixing. For exchange:exc-deposit | exc-send.
  • trackcode: Code de suivi résolu.
  • order:
    • deposit_address(string)
    • service_fee(string, 2 décimales)
    • coin(string)
    • network(string)
    • waiting_balance(string, 8 décimales)
    • created_at(entier, horodatage Unix)
  • outputs(array):
    • coin, network, address, destination_tag
    • share_percent(string, 2 décimales)
    • delay_minutes(entier),delay_label(par exemple2h 0m)
    • amount(chaîne, 8 décimales)
  • outputs_count(entier)

Comportement

  • La signature numérique fournie est validée par le système.
  • Seules les commandes récentes (dans les 48 heures) sont éligibles pour la validation. Les commandes plus anciennes peuvent avoir été automatiquement supprimées.
  • Si aucune commande valide n'est trouvée, l'API répond avec404 NOT_FOUND.

Example Request (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);

Example Response — Success

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

Exemple de réponse — Erreurs

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

Codes d'erreur

  • BAD_REQUEST : manquantsignatureou charge utile mal formée.
  • INVALID_SIGNATURE : Base64 non valide ou le bloc de signature est trop court.
  • DECRYPTION_FAILED : échec du déchiffrement AES‑GCM.
  • INVALID_PAYLOAD : la charge utile déchiffrée n'est pas un JSON valide.
  • MISSING_TRACKCODE: trackle champ est absent dans payload.
  • NOT_FOUND : Commande introuvable au cours des dernières 48 heures.
  • UNAUTHORIZED / FORBIDDEN : Clé API invalide ou manquante.
  • SERVER_ERROR : Erreur interne du serveur.

Notes

  • Précision numérique :waiting_balanceetamount→ 8 décimales (chaîne),share_percent→ 2 décimales (chaîne),service_fee→ 2 décimales (chaîne).
  • Délai : l'étiquette humaine (delay_label) et les minutes lisibles par machine (delay_minutes) sont renvoyées.

Limites de débit


Limite :1000 requêtes / jour / clé API.