Cargando centro de documentación de API...
LIVE MIXES
LTC
14.337709 LTC
LTC Mixto · Hace 38s
MATIC
6,751 MATIC
MATIC Mixto · Hace 38s
USDC
10,563 USDC
USDC Mixto · Hace 48s
SOL
9.478999 SOL
SOL Mixto · Hace 55s
ETH
1.322949 ETH
ETH Mixto · Hace 1m
ETH
0.084496 ETH
ETH Mixto · 1m Hace
USDT
2,683 USDT
USDT Mixto · Hace 2m
USDC
731 USDC
USDC Mixto · Hace 3m
SOL
2.883669 SOL
SOL Mixto · Hace 4m
USDT
2,104 USDT
USDT Mixto · Hace 4m
LTC
14.337709 LTC
LTC Mixto · Hace 38s
MATIC
6,751 MATIC
MATIC Mixto · 38s Hace
USDC
10,563 USDC
USDC Mixto · Hace 48s
SOL
9.478999 SOL
SOL Mixto · Hace 55s
ETH
1.322949 ETH
ETH Mixto · Hace 1m
ETH
0.084496 ETH
ETH Mixto · Hace 1m
USDT
2,683 USDT
USDT Mixto · Hace 2m
USDC
731 USDC
USDC Mixto · Hace 3m
SOL
2.883669 SOL
SOL Mixto · Hace 4 m
USDT
2,104 USDT
USDT Mixto · Hace 4 m

Documentación de la API de SecretCryptos

Secure. Rápido. Fácil de desarrollar.
Interfaz de programación
Integre funciones de intercambio y mezcla de criptomonedas en su aplicación o servicio utilizando la API oficial de SecretCryptos.
SecretCryptos API documentation for secure crypto integration Developer guide for SecretCryptos API integration API reference for crypto mixing and exchange with SecretCryptos

Introducción


LaSecretCryptos APIproporciona acceso seguro, simple y consistente a nuestrosMezcladoryIntercambioservicios. Este documento "Lite" se centra en los puntos finales principales para que pueda comenzar rápidamente.

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

Ejemplo: GET /v1/pingpruébelo

También puede explorar la página raíz activa enapi.secretcryptos.com.

Más enlaces:Centro de enlacesAPI Documentos (IU Swagger)Organización GitHub.

Autenticación


  • Encabezado:Authorization: Bearer YOUR_API_KEY
  • Todas las solicitudes deben usar HTTPS.
Nunca llame a puntos finales autenticados desde JavaScript del lado del cliente. Mantenga su clave API en el servidor y envíe la respuesta al navegador.

Obtener clave API


  1. Cree una cuenta o inicie sesión enPartner.
  2. Abra el menú superior y haga clic en la pestañaAPI.
  3. Copiar suAPI-KEY(manténgala en secreto; funciona tanto para Mixer como para Exchange).

Seguridad de claves API


Nunca llame a puntos finales autenticados desde JavaScript del lado del cliente. Mantenga su clave API en el servidor y las respuestas del proxy al navegador.

cURL (del lado del servidor)

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


Versión y verificación de estado simple.

GET/v1/ping
GET https://api.secretcryptos.com/v1/ping
{
  "ok": true,
  "service": "SecretCryptos API",
  "version": "1.2.6",
  "ts": 1723800000
}
  • ts: época de Unix (segundos).
  • No se requiere autenticación.

Meta


Descubrimiento de raíz para meta disponible puntos finales.

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."
    }
  ]
}
		
  • No se requiere autenticación.

Meta / Mixer


Configuración del mezclador por moneda (mín./máx., etiquetas de red, tarifas de servicio/por dirección, decimales, confirmaciones).

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
        }
      }
    }
  }
}
  • Se requiere autenticación:Authorization: Bearer YOUR_API_KEY.
  • service_feees un porcentaje (por ejemplo,0.1 = 0.1%).
  • per_address_feees una cadena de 8 decimales en unidades monetarias.

Meta / Exchange


Configuración de Exchange: mantenimiento, precios en USD en vivo y límites/tarifas por red.

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"
          }
        }
      },
	  ...
    }
  }
}
  • Se requiere autenticación:Authorization: Bearer YOUR_API_KEY.
  • service_feees una cadena de porcentaje (por ejemplo,"0.5" = 0.5%).
  • prices_usdson valores en vivo del base de datos.

MIXER


LaMixer APIle permite crear mediante programación transacciones que preservan la privacidad. Usted define lamoneda, red, cantidad, y una o másdirecciones de salidacon porcentajes compartidos y retrasos opcionales. Asignamos una dirección de depósito y le devolvemos un plan completo (tarifas + salidas) para que pueda automatizar recibos, pagos o flujos similares a depósitos en garantía.

  • Casos de uso: recepción de pagos segura, reparto de ingresos automatizado, pagos a múltiples billeteras, desembolsos retrasados.
  • Obtenga límites y tarifas a través de/v1/meta/mixerantes de crear pedidos.
  • 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").
    • Máximo:48h(es decir,2880minutos).
  • service_fee(anulación opcional):
    • Hasta 2 decimales.
    • Rango:0.105.00(%). Si se omite, se utiliza el valor predeterminado del sistema para la moneda.
  • address format: debe coincidir con la red seleccionada (por ejemplo, BTC Legacy/SegWit, ERC-200x…, TRC-20T…, SOL, etc.).
  • destination_tag / memo: Opcional; requerido para algunas redes (por ejemplo, etiqueta XRP, nota TON).

Notas

  • expires_at: cuando la dirección de depósito expira (segundos de época).
  • outputs[i].time: tiempo de salida planificado como segundos de época (basado endelay_minutes).
  • Use?pretty=1 para JSON legible por humanos durante las pruebas.
  • Tasa límites: límite diario predeterminado por clave API; niveles más altos disponibles (consulte “Límites de tarifas”).

Errores comunes

{
  "ok": false,
  "code": "BAD_REQUEST",
  "message": "Sum of percents must be exactly 100.00"
}
  • BAD_REQUEST: cuerpo no válido, formato de dirección incorrecto, porcentaje que no es 2 decimal, tarifa fuera de rango, demora > 48 h, etc.
  • AMOUNT_TOO_LOW / AMOUNT_TOO_HIGH: Infringe el mínimo/máximo por moneda.
  • SERVICE_UNAVAILABLE: No hay dirección de depósito disponible para esa red.
  • TOO_MANY_REQUESTS: Límite API diario alcanzado.
  • UNAUTHORIZED / FORBIDDEN: Clave API no válida/deshabilitada.
POST/v1/mixer/orders

Headers

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

Solicitud Cuerpo

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

Cuerpo de solicitud

{
  "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: Lista de destinos de salida. Cada dirección debe tener los siguientes campos:
    • address: La dirección de destino donde se envían los fondos.
    • percent: El porcentaje del monto total que se enviará a esta dirección (por ejemplo,100para el monto total o50por la mitad).
    • delay: La demora antes de que se procese la transacción. Se puede especificar en minutos (p. ej.,120) o en formato de texto (p. ej.,"2h 0m").
    • destination_tag: este campo es obligatorio paraXRPyTONnetworks. If not required, it can be omitted or left empty (e.g.,"").
  • amount: The total amount in coin units to be transferred. Please use a dot as the decimal separator (e.g.,10.00000000).
  • crypto/ network: The coin and blockchain network (e.g.,btc/ btcfor Bitcoin).
  • partner: Optional but recommended. 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. If omitted, the system default applies. If provided, it must be a number between0.1and5(inclusive).
  • qrcode: Optional.1returns a Base64 data URL underdeposit.qr_code; 0or omitted returns no QR code.
  • destination_tag: Requerido paraXRPyTONredes. Si no es necesario, se puede omitir o dejar vacío ("").

Cómo usar el código QR

Cuandoqrcodese establece en1, la respuesta incluirá una imagen codificada en Base64 bajo el campodeposit.qr_code. Este es un código QR completamente funcional que puede incrustar en su interfaz como una imagen, permitiendo a los usuarios escanearlo con sus aplicaciones de billetera. Aquí hay un ejemplo de cómo mostrarlo en una página web:

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

Los usuarios pueden escanear el código QR con su aplicación de billetera preferida para completar instantáneamente la dirección de destino y el monto, facilitando una transacción rápida y segura.

Respuesta

{
  "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: Identificador de pedido único.
  • deposit: Dónde el usuario debe enviar fondos.
  • fees: Todo aplicado tarifas.
  • outputs: Distribución planificada de fondos, con retrasos.
  • timeyexpires_at: Marcas de tiempo Unix (zona horaria GMT-3).
  • signature_text: Firma blindada digital para validación.

Ejemplo de PHP

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

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_* lado (moneda/red/cantidad) y el destinoto_addresspara el ladoto_* . Devolvemos una dirección de depósito enfrom_network, una cotización y la salida planificada.

Reglas de validación

  • amount: el valor en USD (cantidad × precio de_moneda) debe estar dentro del par específicomin_usd/ max_usdfrom/v1/meta/exchange.
  • address format: debe coincidir con elto_network seleccionado (por ejemplo, ERC‑200x…, TRC‑20T…, BTC, DOGE, SOL, etc.).
  • destination_tag / memo: Opcional pero requerido por algunas redes (por ejemplo,XRPtag,TONmemo).
  • service_fee(opcional, porcentaje):
    • Hasta 2 decimales (por ejemplo,0.6 = 0.60%).
    • Pinza global: mín.0.50%, max3.00%.
    • Si se proporciona debajo del valor predeterminado del sitio para ese par, se aplica el valor predeterminado del sitio. Si es arriba3.00%, tiene un límite de3.00%.
    • Si se omite, tarifa efectiva =max(site_default, 0.50%).

Notas

  • quote.final_usd= (cantidad × del precio) × (1 − tarifa%).
  • quote.to.estimated_receive = final_usd ÷ to_coinprecio.
  • receive.delay_label: Retraso planificado antes de enviar el intercambio (predeterminado0h 10m).
  • expires_at: ventana de depósito para la dirección asignada.
  • Use?pretty=1para JSON con una bonita impresión durante la prueba.
POST/v1/exchange/orders

Encabezados

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

Cuerpo de solicitud

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

Cuerpo de solicitud (XRP) / TON ejemplos)

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

Respuesta

{
  "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: Identificador de pedido único para sondear el estado.
  • deposit: Where the user must sendfrom_coin.
  • quote: Pricing snapshot and effective fee.
  • receive/ outputs: Planned swap output details.

PHP Example

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

How to Use the QR Code

Whenqrcodeis set to1in Create, the response includes a Base64-encoded QR underdeposit.qr_code. Embed it directly as an <img> to let users scan the deposit address.

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

Prices


Retrieve the latest market prices inUSDfor supported cryptocurrencies. You can query multiple symbols at once by separating them with commas.

Endpoint

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

Query Parameters

  • symbols(optional): Comma-separated list of coin symbols (e.g.,BTC,ETH,USDT). Si se omite, se devuelven todas las monedas admitidas.

Respuesta

  • ok: truesi la solicitud fue exitosa.
  • base: SiempreUSD.
  • ts: marca de tiempo Unix (segundos).
  • prices: mapeo de objetosSYMBOL → "price"(números de cadena).

Solicitud de ejemplo (solo 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);

Solicitud de ejemplo (todos los símbolos)

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

Respuesta de ejemplo

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

Códigos de error

  • BAD_REQUEST: no válidosymbolsformato.
  • UNAUTHORIZED / FORBIDDEN: clave API no válida o falta.
  • SERVER_ERROR: servidor/base de datos interno error.

Notas

  • Los tickers no admitidos simplemente se omiten del objetoprices.
  • Los valores numéricos se devuelven como cadenas para preservar la precisión.

Estado del pedido


Use a single endpoint to check the status of bothmixerandexchangeorders. You can explicitly set the order type (mixer/ exchange) or let the API auto-detect it.

Endpoint

POST/v1/orders/check

Request Body

  • trackcode(required): The 16-character uppercase tracking code of the order.
  • type(optional): mixer | exchange. If omitted, API will attempt to auto-detect.
  • outputs(optional): none | summary | full(default:summary).
  • mask_addresses(optional): true=mask addresses (default),false=return full addresses.

Respuesta

  • type: mixeroexchange.
  • deposit.confirm_status: Estado de confirmación del depósito:
    • 0: No se recibió ningún pago.
    • 1: Pago recibido pero aún pendiente (ya sea en espera de confirmaciones o aún no completamente financiado).
    • 2: Depósito completamente confirmado y financiado.
  • deposit.delete_in_sec: Segundos restantes hasta la retención de 48 horas caducidad.
  • deposit.fundingblock:
    • waiting_balance: monto total esperado.
    • received_balance: monto recibido hasta el momento.
    • remaining_need: monto restante necesario.
    • is_fully_funded: si está completamente financiado.
    • can_start: soloverdadero siconfirm_status==2ANDis_fully_funded==true.
  • outputs:
    • none: no devuelto.
    • summary: Devuelvecount, sent_count, sent_total.
    • full: Para cada salida:index, address(enmascarado o no),destination_tag, coin, network, share_percent, delay_label, delay_seconds, state, confirm, tx, amount, left_seconds.
  • status_reason: p.e."INSUFFICIENT_FUNDS"(si no está totalmente financiado).

Reglas comerciales

  • Los pedidos no comenzarána menos que esté completamente financiado (is_fully_funded=false): las salidas permanecen sin asignar y no se genera ningún pago a los socios.
  • Siconfirm_status==2ANDis_fully_funded==true:
    • Las salidas tienen una marca de tiempo una vez y permanecen consistentes en repetidas ocasiones. cheques.
    • Las ganancias de los afiliados se acreditan una sola vez cuando el pedido se vuelve válido.

Solicitud de ejemplo (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);

Respuesta de ejemplo: financiación completa

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

Respuesta de ejemplo: financiación insuficiente

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

Explicación de salidas

  • index: Número de salida secuencial en el pedido.
  • address: Destino dirección donde se envían los fondos.
  • destination_tag: Etiqueta/nota opcional para XRP, XLM, etc. (nullsi no es necesario).
  • coin: Código de criptomoneda de la salida (por ejemplo,btc, eth).
  • network: Nombre de red utilizado para la transferencia (por ejemplo,btc, eth).
  • share_percent: Porcentaje del depósito total asignado a esta salida.
  • delay_label: Etiqueta legible por humanos que muestra cuándo se procesará esta salida (por ejemplo,2h 0m).
  • delay_seconds: Retraso en segundos hasta que la salida pueda comenzar a procesarse.
  • state: Estado de salida:
    • 0→ Esperando (depósito aún no completo confirmada).
    • 1→ Procesamiento (programado; comienza cuandodelay_secondsllega a 0).
    • 2→ Completado (transferencia finalizada).
  • confirm: Estado de confirmación de transferencia (solo relevante enstate=2):
    • 0→ Transacción transmitida pero aún no confirmada (pendiente).
    • 1→ Transacción confirmada (al menos 1 blockchain confirmación).
  • tx: Hash de transacción de Blockchain para esta salida.
  • amount: Cantidad enviada a esta dirección de salida.
  • left_seconds: Segundos restantes hasta la hora de envío programada.
    Nota:Esta cuenta regresiva se reinicia una vezdeposit.confirm_status=2(completamente confirmado). Ejemplo: si600segundos (10 minutos), comienza la cuenta regresiva solo después de la confirmación del depósito.

Nota:Los datos de pago y salida se actualizan cada ~1 minuto.

Códigos de error

  • BAD_REQUEST: faltante/no válidotrackcode, cuerpo de solicitud mal formado.
  • NOT_FOUND: pedido no encontrado.
  • UNAUTHORIZED / FORBIDDEN: API clave no válida o deshabilitada.
  • TOO_MANY_REQUESTS: límite de solicitudes diarias excedido.
  • SERVER_ERROR: error inesperado del servidor.

  • mask_addresses: controlado pormask_addresses(predeterminado:true).
  • delay_seconds: equivalente numérico dedelay_label(solo devuelto en modofull).

Eliminar Pedido


Eliminar un pedido existente para que ya no se pueda acceder a él a través de la API. Una vez eliminado, el pedido no estará disponible permanentemente para más consultas.

Endpoint

POST/v1/orders/delete

Cuerpo de la solicitud

  • trackcode(obligatorio): el código de seguimiento en mayúsculas de 16 caracteres.
  • type(opcional): mixer | exchange. Si se omite, la detección es automática.

Respuesta

  • ok: trueen caso de éxito.
  • trackcode: Eco del código de seguimiento solicitado.
  • type: El tipo de pedido (mixeroexchange).
  • deleted: truesi el pedido ha sido eliminado.

Comportamiento

  • Si el pedido ya está eliminado o no se encuentra, la API devuelve404 NOT_FOUND.
  • Si se proporcionatype, solo se marca ese tipo; de lo contrario, la detección es automática.

Solicitud de ejemplo (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);

Respuesta de ejemplo: Éxito

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

Ejemplo de respuesta: no encontrada

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

Códigos de error

  • BAD_REQUEST: no válidotrackcodeotype.
  • NOT_FOUND: pedido no encontrado o ya eliminado.
  • UNAUTHORIZED / FORBIDDEN: clave API no válida o falta.
  • SERVER_ERROR: error interno del servidor.

Validación de firma


Validar una carga útil firmada digitalmente (Carta de Firma de garantía). Tras el descifrado exitoso, la API devuelve un subconjunto verificado de los detalles del pedido relacionado (mezclador o intercambio), adecuado para verificaciones del lado del cliente y visualización de estado.

Endpoint

POST/v1/validate

Cuerpo de solicitud

  • signature(obligatorio): el bloque de firma digital, ya sea Base64 sin formato o con Líneas COMIENZO/FIN.

Respuesta

  • ok: trueen caso de éxito.
  • message: Mensaje de estado legible por humanos.
  • type: mixer | exchange.
  • route: Para mezclador:confirm | deposit | mixing. Para intercambio:exc-deposit | exc-send.
  • trackcode: Código de seguimiento resuelto.
  • order:
    • deposit_address(cadena)
    • service_fee(cadena, 2 decimales)
    • coin(cadena)
    • network(cadena)
    • waiting_balance(cadena, 8 decimales)
    • created_at(entero, marca de tiempo Unix)
  • outputs(matriz):
    • coin, network, address, destination_tag
    • share_percent(cadena, 2 decimales)
    • delay_minutes(entero),delay_label(por ejemplo,2h 0m)
    • amount(cadena, 8 decimales)
  • outputs_count(entero)

Comportamiento

  • La firma digital proporcionada se valida con el sistema.
  • Solo los pedidos recientes (dentro de las 48 horas) son elegibles para la validación. Los pedidos más antiguos es posible que se haya eliminado automáticamente.
  • Si no se encuentra ningún pedido válido, la API responde con404 NOT_FOUND.

Solicitud de ejemplo (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);

Respuesta de ejemplo: Éxito

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

Ejemplo de respuesta: errores

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

Códigos de error

  • BAD_REQUEST: Faltasignatureo carga útil con formato incorrecto.
  • INVALID_SIGNATURE: Base64 no válido o el bloque de firma es demasiado corto.
  • DECRYPTION_FAILED: Error de descifrado AES-GCM.
  • INVALID_PAYLOAD: La carga útil descifrada no es JSON válido.
  • MISSING_TRACKCODE: trackEl campo está ausente en carga útil.
  • NOT_FOUND: pedido no encontrado en las últimas 48 horas.
  • UNAUTHORIZED / FORBIDDEN: clave API no válida o falta.
  • SERVER_ERROR: error interno del servidor.

Notas

  • Precisión numérica:waiting_balance yamount→ 8 decimales (cadena),share_percent→ 2 decimales (cadena),service_fee→ 2 decimales (cadena).
  • Retrasos: se devuelven tanto la etiqueta humana (delay_label) como los minutos legibles por máquina (delay_minutes).

Rate Limits


Limit:1000 requests / day / API key.