Caricamento del centro documentazione API...
MIX IN TEMPO REALE
BTC
0.015000 BTC
BTC Miscelato · 46s fa
ADA
508 ADA
ADA Miscelato · 3m fa
USDT
1,129 USDT
USDT Miscelato · 3m fa
TON
102.008901 TON
TON Miscelato · 3m fa
TON
39.394381 TON
TON Miscelato · 4m fa
LTC
9.833244 LTC
LTC Miscelato · 8m fa
USDT
2,845 USDT
USDT Miscelato · 11m fa
BTC
0.009999 BTC
BTC Miscelato · 11m fa
BTC
0.037000 BTC
BTC Miscelato · 11m fa
DOGE
12,220 DOGE
DOGE Miscelato · 11m fa
BTC
0.015000 BTC
BTC Miscelato · 46s fa
ADA
508 ADA
ADA Miscelato · 3m fa
USDT
1,129 USDT
USDT Miscelato · 3m fa
TON
102.008901 TON
TON Miscelato · 3m fa
TON
39.394381 TON
TON Miscelato · 4m fa
LTC
9.833244 LTC
LTC Miscelato · 8m fa
USDT
2,845 USDT
USDT Miscelato · 11m fa
BTC
0.009999 BTC
BTC Miscelato · 11m fa
BTC
0.037000 BTC
BTC Miscelato · 11m fa
DOGE
12,220 DOGE
DOGE Miscelato · 11m fa

Documentazione API SecretCryptos

Sicuro. Veloce. A misura di sviluppatore.
Interfaccia API
Integra le funzionalità di mixing ed exchange crypto nella tua app o servizio utilizzando le API ufficiali di SecretCryptos.
Documentazione API SecretCryptos per integrazione crypto sicura Guida per sviluppatori all’integrazione API di SecretCryptos Riferimento API per mixing ed exchange crypto con SecretCryptos

Introduzione


La SecretCryptos API offre un accesso sicuro, semplice e coerente ai nostri servizi di Mixer e Exchange. Questo documento “Lite” si concentra sugli endpoint principali per iniziare rapidamente.

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

Esempio: GET /v1/pingprovalo

Puoi anche esplorare la root page live su api.secretcryptos.com.

Altri link: Hub dei linkDocumentazione API (Swagger UI)Organizzazione GitHub.

Autenticazione


  • Header: Authorization: Bearer YOUR_API_KEY
  • Tutte le richieste devono utilizzare HTTPS.
Non chiamare mai endpoint autenticati da JavaScript lato client. Mantieni la tua API key sul server e inoltra la risposta al browser.

Ottieni API Key


  1. Crea un account o accedi su Partner.
  2. Apri il menu superiore e clicca sulla scheda API.
  3. Copia la tua API-KEY (mantienila segreta; funziona sia per Mixer che per Exchange).

Sicurezza API Key


Non chiamare mai endpoint autenticati da JavaScript lato client. Mantieni la tua API key sul server e inoltra le risposte al browser.

cURL (lato server)

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


Controllo semplice dello stato e della versione.

GET/v1/ping
GET https://api.secretcryptos.com/v1/ping
{
  "ok": true,
  "service": "SecretCryptos API",
  "version": "1.2.6",
  "ts": 1723800000
}
  • ts: Unix epoch (secondi).
  • Nessuna autenticazione richiesta.

Meta


Scoperta root degli endpoint meta disponibili.

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": "Controllo semplice dello stato."
    },
    {
      "name": "Meta (Mixer)",
      "path": "/v1/meta/mixer",
      "method": "GET",
      "auth": true,
      "desc": "Monete/reti supportate e regole del mixer."
    },
    {
      "name": "Meta (Exchange)",
      "path": "/v1/meta/exchange",
      "method": "GET",
      "auth": true,
      "desc": "Coppie di trading supportate e limiti di exchange."
    },
    {
      "name": "Create Mixer Order",
      "path": "/v1/mixer/orders",
      "method": "POST",
      "auth": true,
      "desc": "Crea un nuovo ordine mixer."
    },
    {
      "name": "Create Exchange Order",
      "path": "/v1/exchange/orders",
      "method": "POST",
      "auth": true,
      "desc": "Crea un nuovo ordine exchange."
    },
    {
      "name": "Check Order",
      "path": "/v1/orders/check",
      "method": "POST",
      "auth": true,
      "desc": "Interroga lo stato di un ordine tramite trackcode."
    },
    {
      "name": "Delete Order",
      "path": "/v1/orders/delete",
      "method": "POST",
      "auth": true,
      "desc": "Elimina un ordine (se consentito)."
    },
    {
      "name": "Prices",
      "path": "/v1/prices",
      "method": "GET",
      "auth": true,
      "desc": "Tassi di cambio e prezzi attuali."
    },
    {
      "name": "Validate Signature",
      "path": "/v1/validate",
      "method": "POST",
      "auth": false,
      "desc": "Valida la firma di una lettera di garanzia digitale."
    }
  ]
}
		
  • Nessuna autenticazione richiesta.

Meta / Mixer


Configurazione mixer per moneta (min/max, etichette di rete, commissioni di servizio/per indirizzo, decimali, conferme).

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
        }
      }
    }
  }
}
  • Autenticazione richiesta:Authorization: Bearer YOUR_API_KEY.
  • service_fee è una percentuale (es. 0.1 = 0.1%).
  • per_address_fee è una stringa a 8 decimali in unità di moneta.

Meta / Exchange


Configurazione exchange: manutenzione, prezzi live in USD e limiti/commissioni per rete.

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"
          }
        }
      },
	  ...
    }
  }
}
  • Autenticazione richiesta:Authorization: Bearer YOUR_API_KEY.
  • service_fee è una stringa percentuale (es. "0.5" = 0.5%).
  • prices_usd sono valori live dal database.

MIXER


La Mixer API consente di creare transazioni che preservano la privacy in modo programmatico. Definisci la moneta, la rete, l’importo e uno o più indirizzi di output con percentuali e ritardi opzionali. Viene allocato un indirizzo di deposito e restituito un piano completo (commissioni + output) per automatizzare incassi, pagamenti o flussi simili ad escrow.

  • Casi d’uso: incasso sicuro di pagamenti, revenue sharing automatizzato, pagamenti a più wallet, erogazioni ritardate.
  • Recupera limiti e commissioni tramite /v1/meta/mixer prima di creare ordini.
  • Tutti i campi monetari sono in unità di moneta salvo diversa indicazione.
  • Tutti i timestamp sono in secondi epoch Unix (fuso orario: GMT-3 sul server).

MIXER / Crea Ordine


Crea un nuovo ordine mixer. Fornisci moneta, rete, importo e uno o più indirizzi di output con percentuali e ritardi. Il sistema assegna un indirizzo di deposito e restituisce i dettagli dell’ordine inclusi commissioni e piano di output.

Regole di validazione

  • amount: Deve essere compreso tra min_amount e max_amount specifici per moneta da /v1/meta/mixer.
  • addresses: 1–10 output.
  • percent:
    • Formato: fino a 2 decimali (es. 10, 10.5, 10.50).
    • Minimo per indirizzo: ≥ 1.00, massimo: ≤ 100.00.
    • Il totale di tutti gli output deve essere esattamente 100.00.
    • Se c’è un solo output, la percentuale deve essere esattamente 100.00.
  • delay:
    • Accetta minuti (es. 120) o etichetta (es. "2h 0m").
    • Massimo: 48h (cioè 2880 minuti).
  • service_fee(sovrascrittura opzionale):
    • Fino a 2 decimali.
    • Intervallo: 0.105.00 (%). Se omesso, viene usato il valore predefinito del sistema per la moneta.
  • address format: Deve corrispondere alla rete selezionata (es. BTC legacy/SegWit, ERC-20 0x…, TRC-20 T…, SOL, ecc.).
  • destination_tag / memo: Opzionale; richiesto per alcune reti (es. tag XRP, memo TON).

Note

  • expires_at: Quando scade l’indirizzo di deposito (epoch seconds).
  • outputs[i].time: Orario previsto dell’output in epoch seconds (basato su delay_minutes).
  • Usa ?pretty=1 per JSON leggibile durante i test.
  • Limiti di richiesta: limite giornaliero predefinito per chiave API; disponibili livelli superiori (vedi “Rate Limits”).

Errori comuni

{
  "ok": false,
  "code": "BAD_REQUEST",
  "message": "Sum of percents must be exactly 100.00"
}
  • BAD_REQUEST: Corpo non valido, formato indirizzo errato, percentuale non a 2 decimali, commissione fuori intervallo, ritardo > 48h, ecc.
  • AMOUNT_TOO_LOW / AMOUNT_TOO_HIGH: Viola i min/max per moneta.
  • SERVICE_UNAVAILABLE: Nessun indirizzo di deposito disponibile per quella rete.
  • TOO_MANY_REQUESTS: Raggiunto il limite giornaliero API.
  • UNAUTHORIZED / FORBIDDEN: API key non valida/disabilitata.
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: Elenco delle destinazioni di output. Ogni indirizzo deve avere i seguenti campi:
    • address: L’indirizzo di destinazione a cui vengono inviati i fondi.
    • percent: Percentuale dell’importo totale da inviare a questo indirizzo (es. 100 per l’intero importo o 50 per metà).
    • delay: Il ritardo prima che la transazione venga elaborata. Può essere specificato in minuti (es. 120) o in formato testuale (es. "2h 0m").
    • destination_tag: Campo richiesto per le reti XRP e TON. Se non richiesto, può essere omesso o lasciato vuoto (es. "").
  • amount: Importo totale in unità di moneta da trasferire. Utilizza un punto come separatore decimale (es. 10.00000000).
  • crypto/ network: La moneta e la rete blockchain (es. btc/ btc per Bitcoin).
  • partner: Opzionale ma consigliato. La tua PARTNER KEY è disponibile su Partner nella scheda API (insieme alla tua API-KEY). Se utilizzata, guadagni il 30% della commissione di servizio.
  • service_fee: Sovrascrittura opzionale della commissione di servizio in percentuale. Se omesso, si applica il valore predefinito di sistema. Se fornito, deve essere un numero compreso tra 0.1 e 5 (inclusi).
  • qrcode: Opzionale. 1 restituisce un data URL Base64 sotto deposit.qr_code; 0 o omesso non restituisce alcun QR code.
  • destination_tag: Richiesto per le reti XRP e TON. Se non necessario, può essere omesso o lasciato vuoto ("").

Come utilizzare il QR Code

Quando qrcode è impostato su 1, la risposta includerà un’immagine codificata in Base64 nel campo deposit.qr_code. Si tratta di un QR code pienamente funzionale che puoi incorporare nel tuo frontend come immagine, consentendo agli utenti di scannerizzarlo con le loro applicazioni wallet. Ecco un esempio di come mostrarlo in una pagina web:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="Scansiona per pagare" />

Gli utenti possono scansionare il QR code con la loro app wallet preferita per compilare immediatamente indirizzo di destinazione e importo, facilitando una transazione rapida e sicura.

Risposta

{
  "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: Identificatore univoco dell’ordine.
  • deposit: Dove l’utente deve inviare i fondi.
  • fees: Tutte le commissioni applicate.
  • outputs: Distribuzione pianificata dei fondi, con ritardi.
  • time e expires_at: Timestamp Unix (fuso orario GMT-3).
  • signature_text: Firma digitale blindata per la validazione.

Esempio 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


L’API Exchange consente di scambiare un deposito from_coin/ from_network in un unico indirizzo di destinazione to_coin/ to_network. Viene allocato un indirizzo di deposito, calcolato un preventivo in tempo reale (limiti in USD e commissioni applicate) e restituito l’oggetto completo dell’ordine che puoi monitorare fino al finanziamento ed esecuzione.

  • Casi d’uso: swap istantanei al checkout, “depositare in X → ricevere Y”, bridge off-ramp/on-ramp tra L1/L2.
  • Ottieni i limiti di coppia e la commissione predefinita tramite /v1/meta/exchange prima di creare ordini.
  • Tutti i campi monetari sono in unità di moneta se non diversamente indicato; i limiti sono in USD.
  • Tutti i timestamp sono secondi epoch Unix (fuso orario del server GMT-3).

EXCHANGE / Crea Ordine


Crea un nuovo ordine di exchange. Fornisci la parte from_* (moneta/rete/importo) e l’indirizzo di destinazione to_address per la parte to_* . Ti restituiamo un indirizzo di deposito sulla from_network, un preventivo e l’output pianificato.

Regole di validazione

  • amount: il valore in USD (importo × prezzo from_coin) deve rientrare nei min_usd/ max_usd specifici della coppia da /v1/meta/exchange.
  • formato dell’indirizzo: deve corrispondere alla to_network selezionata (ad es. ERC-20 0x…, TRC-20 T…, BTC, DOGE, SOL, ecc.).
  • destination_tag / memo: Opzionale ma richiesto da alcune reti (es. tag XRP, memo TON).
  • service_fee (opzionale, percentuale):
    • Fino a 2 decimali (ad es. 0.6 = 0.60%).
    • Limite globale: minimo 0.50%, massimo 3.00%.
    • Se fornito al di sotto del valore predefinito del sito per quella coppia, si applica quello predefinito. Se superiore a 3.00%, viene limitato a 3.00%.
    • Se omesso, la commissione effettiva = max(predefinito_sito, 0.50%).

Note

  • quote.final_usd = (importo × prezzo from) × (1 − fee%).
  • quote.to.estimated_receive = final_usd ÷ prezzo di to_coin.
  • receive.delay_label: Ritardo pianificato prima di inviare lo swap (predefinito 0h 10m).
  • expires_at: Finestra di deposito per l’indirizzo assegnato.
  • Usa ?pretty=1 per JSON leggibile durante i test.
POST/v1/exchange/orders

Headers

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

Corpo della richiesta

{
  "from_coin": "eth",
  "from_network": "eth",
  "to_coin": "doge",
  "to_network": "doge",
  "to_address": "DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p",
  "amount": "1.00000000",
  "service_fee": 0.6,           // opzionale; %0.60 → limitato dalle regole  "partner": "YOUR_PARTNER_KEY", // opzionale, guadagni il 30% della commissione della piattaforma  "qrcode": 1                    // opzionale; aggiunge QR base64 in deposit.qr_code}

Corpo della richiesta (esempi XRP / TON)

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

Risposta

{
  "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,..."  // solo se 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: Identificatore univoco dell’ordine per monitorare lo stato.
  • deposit: Dove l’utente deve inviare il from_coin.
  • quote: Snapshot dei prezzi e commissione effettiva.
  • receive/ outputs: Dettagli dell’output previsto dello swap.

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

Come usare il QR Code

Quando qrcode è impostato a 1 in Create, la risposta include un QR codificato Base64 in deposit.qr_code. Incorporalo direttamente come <img> per consentire agli utenti di scansionare l’indirizzo di deposito.

<img src="data:image/png;base64,..." alt="Scansiona per pagare" />

Prezzi


Recupera i prezzi di mercato più recenti in USD per le criptovalute supportate. Puoi interrogare più simboli contemporaneamente separandoli con virgole.

Endpoint

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

Parametri della query

  • symbols(opzionale): Elenco separato da virgole di simboli di monete (ad es. BTC,ETH,USDT). Se omesso, vengono restituiti tutti i coin supportati.

Risposta

  • ok: true se la richiesta è stata completata con successo.
  • base: Sempre USD.
  • ts: Timestamp Unix (secondi).
  • prices: Oggetto che mappa SIMBOLO → "prezzo" (numeri in stringa).

Esempio di richiesta (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);

Esempio di richiesta (tutti i simboli)

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

Esempio di risposta

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

Codici di errore

  • BAD_REQUEST: Formato symbols non valido.
  • UNAUTHORIZED / FORBIDDEN: API key non valida o mancante.
  • SERVER_ERROR: Errore interno server/database.

Note

  • I ticker non supportati vengono semplicemente omessi dall’oggetto prices.
  • I valori numerici vengono restituiti come stringhe per preservare la precisione.

Stato Ordine


Usa un unico endpoint per controllare lo stato sia degli ordini di mixer che di exchange. Puoi impostare esplicitamente il tipo di ordine (mixer/exchange) oppure lasciare che l’API lo rilevi automaticamente.

Endpoint

POST/v1/orders/check

Corpo della richiesta

  • trackcode(obbligatorio): Il codice di tracciamento dell’ordine a 16 caratteri maiuscoli.
  • type(opzionale): mixer | exchange. Se omesso, l’API tenterà di rilevarlo automaticamente.
  • outputs(opzionale): none | summary | full (predefinito: summary).
  • mask_addresses(opzionale): true=maschera gli indirizzi (predefinito), false=restituisce indirizzi completi.

Risposta

  • type: mixer o exchange.
  • deposit.confirm_status: Stato di conferma del deposito:
    • 0: Nessun pagamento ricevuto.
    • 1: Pagamento ricevuto ma ancora in sospeso (in attesa di conferme o non ancora completamente finanziato).
    • 2: Deposito completamente confermato e finanziato.
  • deposit.delete_in_sec: Secondi rimanenti fino alla scadenza di conservazione di 48 ore.
  • Blocco deposit.funding:
    • waiting_balance: Importo totale previsto.
    • received_balance: Importo ricevuto finora.
    • remaining_need: Importo residuo necessario.
    • is_fully_funded: Se è completamente finanziato.
    • can_start: solo true se confirm_status==2 E is_fully_funded==true.
  • outputs:
    • none: Non restituito.
    • summary: Restituisce count, sent_count, sent_total.
    • full: Per ogni output: index, address (mascherato o meno), destination_tag, coin, network, share_percent, delay_label, delay_seconds, state, confirm, tx, amount, left_seconds.
  • status_reason: ad es. "INSUFFICIENT_FUNDS" (se non completamente finanziato).

Regole di business

  • Gli ordini non inizieranno se non sono completamente finanziati (is_fully_funded=false): gli output restano non assegnati e non viene generato alcun pagamento affiliato.
  • Se confirm_status==2 E is_fully_funded==true:
    • Gli output ricevono un timestamp una sola volta e restano consistenti nei controlli successivi.
    • I guadagni degli affiliati vengono accreditati una sola volta quando l’ordine diventa valido.

Esempio di richiesta (PHP)

// Esempio Mixer (output completi, indirizzi non mascherati)<?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);

Esempio di risposta — Completamente finanziato

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

Esempio di risposta — Sottofinanziato

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

Spiegazione degli output

  • index: Numero sequenziale dell’output nell’ordine.
  • address: Indirizzo di destinazione a cui vengono inviati i fondi.
  • destination_tag: Tag/memo opzionale per XRP, XLM, ecc. (null se non richiesto).
  • coin: Codice della criptovaluta dell’output (es. btc, eth).
  • network: Nome della rete utilizzata per il trasferimento (es. btc, eth).
  • share_percent: Percentuale del deposito totale assegnata a questo output.
  • delay_label: Etichetta leggibile che mostra quando questo output verrà elaborato (es. 2h 0m).
  • delay_seconds: Ritardo in secondi fino a quando l’output può iniziare l’elaborazione.
  • state: Stato dell’output:
    • 0 → In attesa (deposito non ancora completamente confermato).
    • 1 → In elaborazione (programmato; inizia quando delay_seconds raggiunge 0).
    • 2 → Completato (trasferimento terminato).
  • confirm: Stato di conferma del trasferimento (rilevante solo in state=2):
    • 0 → Transazione trasmessa ma non ancora confermata (in sospeso).
    • 1 → Transazione confermata (almeno 1 conferma blockchain).
  • tx: Hash della transazione blockchain per questo output.
  • amount: Importo inviato a questo indirizzo di output.
  • left_seconds: Secondi rimanenti fino al tempo di invio programmato.
    Nota: Questo conto alla rovescia si avvia solo dopo che deposit.confirm_status=2 (completamente confermato). Esempio: se sono impostati 600 secondi (10 minuti), parte solo dopo la conferma del deposito.

Nota: Dati di pagamento e output aggiornati ogni ~1 minuto.

Codici di errore

  • BAD_REQUEST: trackcode mancante/non valido, corpo della richiesta non valido.
  • NOT_FOUND: Ordine non trovato.
  • UNAUTHORIZED / FORBIDDEN: API key non valida o disabilitata.
  • TOO_MANY_REQUESTS: Limite giornaliero di richieste superato.
  • SERVER_ERROR: Errore imprevisto del server.

  • mask_addresses: controllato da mask_addresses (predefinito: true).
  • delay_seconds: equivalente numerico di delay_label (restituito solo in modalità full).

Elimina Ordine


Elimina un ordine esistente in modo che non sia più accessibile tramite l’API. Una volta eliminato, l’ordine non sarà più disponibile per ulteriori query.

Endpoint

POST/v1/orders/delete

Request Body

  • trackcode(obbligatorio): Il codice di tracciamento di 16 caratteri in maiuscolo.
  • type(opzionale): mixer | exchange. Se omesso, il rilevamento è automatico.

Risposta

  • ok: true in caso di successo.
  • trackcode: Echo del codice di tracciamento richiesto.
  • type: Il tipo di ordine ( mixer o exchange).
  • deleted: true se l’ordine è stato eliminato.

Comportamento

  • Se l’ordine è già stato eliminato o non trovato, l’API restituisce 404 NOT_FOUND.
  • Se viene fornito type, viene controllato solo quel tipo; altrimenti, il rilevamento è automatico.

Esempio di richiesta (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);

Esempio di risposta — Successo

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

Esempio di risposta — Non trovato

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

Codici di errore

  • BAD_REQUEST: trackcode o type non validi.
  • NOT_FOUND: Ordine non trovato o già eliminato.
  • UNAUTHORIZED / FORBIDDEN: API key non valida o mancante.
  • SERVER_ERROR: Errore interno del server.

Validazione Firma


Valida un payload firmato digitalmente (firma della Lettera di Garanzia). In caso di decrittazione riuscita, l’API restituisce un sottoinsieme verificato dei dettagli relativi all’ordine (mixer o exchange), adatto a controlli lato client e alla visualizzazione dello stato.

Endpoint

POST/v1/validate

Request Body

  • signature(obbligatorio): Il blocco della firma digitale, in formato Base64 grezzo oppure con linee BEGIN/END.

Risposta

  • ok: true in caso di successo.
  • message: Messaggio di stato leggibile.
  • type: mixer | exchange.
  • route: Per mixer: confirm | deposit | mixing. Per exchange: exc-deposit | exc-send.
  • trackcode: Codice di tracciamento risolto.
  • order:
    • deposit_address (stringa)
    • service_fee (stringa, 2 decimali)
    • coin (stringa)
    • network (stringa)
    • waiting_balance (stringa, 8 decimali)
    • created_at (intero, timestamp Unix)
  • outputs (array):
    • coin, network, address, destination_tag
    • share_percent (stringa, 2 decimali)
    • delay_minutes (intero), delay_label (es. 2h 0m)
    • amount (stringa, 8 decimali)
  • outputs_count (intero)

Comportamento

  • La firma digitale fornita viene validata rispetto al sistema.
  • Solo gli ordini recenti (entro 48 ore) sono idonei alla validazione. Gli ordini più vecchi potrebbero essere stati rimossi automaticamente.
  • Se non viene trovato alcun ordine valido, l’API risponde con 404 NOT_FOUND.

Esempio di richiesta (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);

Esempio di risposta — Successo

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

Esempio di risposta — Errori

{
  "ok": false,
  "error": "BAD_REQUEST",
  "message": "La firma digitale è obbligatoria"
}
---
{
  "ok": false,
  "error": "INVALID_SIGNATURE",
  "message": "I dati forniti non sono Base64 valido o sono troppo brevi"
}
---
{
  "ok": false,
  "error": "DECRYPTION_FAILED",
  "message": "Decrittazione fallita. Assicurati che la firma fornita sia valida e riprova."
}
---
{
  "ok": false,
  "error": "MISSING_TRACKCODE",
  "message": "Il trackcode è obbligatorio nel payload della firma."
}
---
{
  "ok": false,
  "error": "NOT_FOUND",
  "message": "I dettagli dell’ordine richiesto non sono stati trovati."
}

Codici di errore

  • BAD_REQUEST: signature mancante o payload non valido.
  • INVALID_SIGNATURE: Base64 non valido o blocco firma troppo corto.
  • DECRYPTION_FAILED: Decrittazione AES-GCM fallita.
  • INVALID_PAYLOAD: Il payload decrittato non è JSON valido.
  • MISSING_TRACKCODE: Il campo track è assente nel payload.
  • NOT_FOUND: Ordine non trovato nelle ultime 48 ore.
  • UNAUTHORIZED / FORBIDDEN: API key non valida o mancante.
  • SERVER_ERROR: Errore interno del server.

Note

  • Precisione numerica: waiting_balance e amount → 8 decimali (stringa), share_percent → 2 decimali (stringa), service_fee → 2 decimali (stringa).
  • Ritardi: sia etichetta leggibile (delay_label) che minuti leggibili dalla macchina (delay_minutes) vengono restituiti.

Limiti di Richiesta


Limite: 1000 richieste / giorno / API key.