Introduzione
The SecretCryptos APIfornisce un accesso sicuro, semplice e coerente a i nostri serviziMixereExchange. Questo documento "Lite" si concentra sugli endpoint principali per iniziare rapidamente.
URL di base: https://api.secretcryptos.com/v1
Esempio: GET /v1/ping – provalo
Puoi anche esplorare la pagina root live suapi.secretcryptos.com.
Altri collegamenti:Link hub • Documenti API (interfaccia utente spavalda) • Organizzazione GitHub.
Authentication
- Header:
Authorization: Bearer YOUR_API_KEY - Tutte le richieste devono utilizzare HTTPS.
Ottieni chiave API
- Crea un account o accedi aPartner.
- Apri il menu in alto e fai clic sulla schedaAPI.
- Copia il tuoAPI-KEY(mantienilo segreto; funziona sia per Mixer che per Exchange).
Sicurezza chiave API
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
Semplice controllo dello stato e della versione.
GET https://api.secretcryptos.com/v1/ping
{
"ok": true,
"service": "SecretCryptos API",
"version": "1.2.6",
"ts": 1723800000
}
ts: epoca Unix (secondi).- Nessuna autenticazione richiesta.
MIXER
LaAPI Mixerti consente di creare a livello di codice transazioni che preservano la privacy. Puoi definire lamoneta, rete, importo e uno o piùindirizzi di uscitacon quote percentuali e ritardi opzionali. Assegniamo un indirizzo di deposito e restituiamo un piano completo (commissioni + output) in modo da poter automatizzare ricevute, pagamenti o flussi simili a quelli di deposito a garanzia.
- Casi d'uso: raccolta sicura dei pagamenti, condivisione automatizzata delle entrate, pagamenti a più portafogli, esborsi ritardati.
- Ottieni limiti e commissioni tramite
/v1/meta/mixerprima di creare ordini. - Tutti i campi monetari sono inunità monetase non diversamente specificato.
- Tutti i timestamp sono secondi di epoca Unix (fuso orario: GMT-3 sul server).
MIXER / Crea ordine
Crea un nuovo ordine del mixer. Fornisci la moneta, la rete, l'importo e uno o più indirizzi di uscita con percentuali e ritardi. Il sistema assegna un indirizzo di deposito e restituisce i dettagli dell'ordine, comprese le commissioni e il piano di output.
Regole di convalida
amount: deve essere compreso tramin_amountemax_amountda/v1/meta/mixer.addresses: da 1 a 10 output.percent:- Formato: fino a 2 decimali (ad 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 è presente solo 1 output, la sua percentuale deve essere esattamente
100.00.
- Formato: fino a 2 decimali (ad es.,
delay:- Accetta minuti (ad es.,
120) o etichetta (ad esempio,"2h 0m"). - Massimo:
48h(ovvero,2880minuti).
- Accetta minuti (ad es.,
service_fee(override opzionale):- Fino a 2 decimali.
- Intervallo:
0.10–5.00(%). Se omesso, viene utilizzata l'impostazione predefinita del sistema per la moneta.
address format: deve corrispondere alla rete selezionata (ad esempio, BTC legacy/SegWit, ERC-200x…, TRC-20T…, SOL, ecc.).destination_tag / memo: facoltativo; richiesto per alcune reti (ad es. tag XRP, memo TON).
Note
expires_at: quando scade l'indirizzo di deposito (epoch secondi).outputs[i].time: tempo di output pianificato come epoch secondi (basato sudelay_minutes).- Utilizza
?pretty=1per JSON leggibile dall'uomo durante testing. - Limiti di velocità: limite giornaliero predefinito per chiave API; sono disponibili livelli più alti (vedi “Limiti di velocità”).
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 2-decimale, tariffa fuori intervallo, ritardo > 48 ore, ecc.AMOUNT_TOO_LOW / AMOUNT_TOO_HIGH: Viola il valore minimo/massimo per moneta.SERVICE_UNAVAILABLE: Nessun indirizzo di deposito disponibile per quella rete.TOO_MANY_REQUESTS: Limite API giornaliero raggiunto.UNAUTHORIZED / FORBIDDEN: Chiave API non valida/disabilitata.
Headers
Authorization: Bearer YOUR_API_KEYContent-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
}
Richiesta 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: la percentuale dell'importo totale da inviare a questo indirizzo (ad esempio,100per l'intero importo o50per la metà).delay: il ritardo prima che la transazione venga elaborata. Può essere specificato in minuti (ad esempio,120) o in formato testo (ad esempio,"2h 0m").destination_tag: questo campo è obbligatorio perXRPeTONreti. Se non richiesto, può essere omesso o lasciato vuoto (es.,"").
amount: Importo totale in monete da trasferire. Utilizza un punto come separatore decimale (ad esempio,10.00000000).crypto/network: la rete di monete e blockchain (ad esempio,btc/btcper Bitcoin).partner: facoltativo ma consigliato. La tuaPARTNER KEY è disponibile suPartnernella scheda API (con la tua API-KEY). Se utilizzato, guadagni30% della commissione di servizio.service_fee: sostituzione facoltativa della commissione di servizio in percentuale. Se omesso, si applica l'impostazione predefinita del sistema. Se fornito, deve essere un numero compreso tra0.1 e5(incluso).qrcode: facoltativo.1restituisce un URL di dati Base64 indeposit.qr_code;0o omesso non restituisce alcun codice QR.destination_tag: Obbligatorio per le retiXRPeTON. Se non è necessario, può essere omesso o lasciato vuoto ("").
Come utilizzare il codice QR
Quandoqrcodeè impostato su1, la risposta includerà un'immagine con codifica Base64 nel campodeposit.qr_code. Si tratta di un codice QR completamente funzionale che puoi incorporare nel tuo frontend come immagine, consentendo agli utenti di scansionarlo con le loro applicazioni di portafoglio. Ecco un esempio di come visualizzarlo su una pagina web:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="Scan to pay" />
Gli utenti possono scansionare il codice QR con la loro app portafoglio preferita per inserire immediatamente l'indirizzo di destinazione e l'importo, facilitando una transazione rapida e sicura.
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: identificatore univoco dell'ordine.deposit: dove l'utente deve inviare i fondi.fees: tutti applicati commissioni.outputs: distribuzione pianificata dei fondi, con ritardi.timeeexpires_at: timestamp Unix (fuso orario GMT-3).signature_text: firma digitale corazzata per la convalida.
PHP Esempio
<?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 Exchangeti consente di scambiare unfrom_coin/ from_networkdeposito in un singoloto_coin/ to_networkdestinazione indirizzo. Assegniamo un indirizzo di deposito, calcoliamo una quotazione in tempo reale (limiti e commissione applicati in USD) e restituiamo l'intero oggetto dell'ordine di cui puoi eseguire il poll fino al finanziamento e all'esecuzione.
- Casi d'uso: swap istantanei alla cassa, "deposito in X → ricevi Y", ponti fuori rampa/sulla rampa tra L1/L2.
- Ottieni limiti di coppia e commissione predefinita tramite
/v1/meta/exchangeprima di creare ordini. - Tutti i campi monetari sono espressi inunità monetase non diversamente specificato; i limiti sonoBasato su USD.
- Tutti i timestamp sono secondi di epoca Unix (fuso orario del server GMT‑3).
EXCHANGE / Crea ordine
Crea un nuovo ordine di scambio. Fornisci ilfrom_* lato (moneta/rete/importo) e la destinazioneto_addressper il latoto_* . Restituiamo un indirizzo di deposito sufrom_network, un preventivo e l'output pianificato.
Regole di convalida
amount: Il valore in USD (importo × prezzo from_coin) deve essere all'interno della coppia specificamin_usd/max_usdfrom/v1/meta/exchange.address format: deve corrispondere alto_networkselezionato (ad es. ERC‑200x…, TRC‑20T…, BTC, DOGE, SOL, ecc.).destination_tag / memo: opzionale ma richiesto da alcune reti (ad es.,XRPtag,TONmemo).service_fee(opzionale, percentuale):- Fino a 2 decimali (ad es.,
0.6=0.60%). - Morsetto globale: min
0.50%, max3.00%. - Se fornito sotto l'impostazione predefinita del sito per quella coppia, si applica l'impostazione predefinita del sito. Se sopra
3.00%, è limitato a3.00%. - Se omesso, commissione effettiva =
max(site_default, 0.50%).
- Fino a 2 decimali (ad es.,
Note
quote.final_usd= (importo × dal prezzo) × (1 − commissione%).quote.to.estimated_receive=final_usd÷ to_coinprezzo.receive.delay_label: Ritardo pianificato prima dell'invio dello swap (impostazione predefinita0h 10m).expires_at: finestra di deposito per l'indirizzo allocato.- Utilizza
?pretty=1per un JSON ben stampato durante il test.
Headers
Authorization: Bearer YOUR_API_KEYContent-Type: application/json
Richiesta 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}
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"
}
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: identificatore univoco dell'ordine per lo stato del poll.deposit: Dove l'utente deve inviarefrom_coin.quote: istantanea dei prezzi e tariffa effettiva.receive/outputs: dettagli sull'output dello scambio pianificato.
PHP Esempio
<?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 utilizzare il codice QR
Quandoqrcode è impostato su1in Crea, la risposta include un QR con codifica Base64 indeposit.qr_code. Incorporalo direttamente come <img> per consentire agli utenti di scansionare l'indirizzo di deposito.
<img src="data:image/png;base64,..." alt="Scan to pay" />
Prezzi
Recupera gli ultimi prezzi di mercato inUSDper le criptovalute supportate. Puoi interrogare più simboli contemporaneamente separandoli con virgole.
Endpoint
Parametri query
symbols(opzionale): Elenco separato da virgole di simboli di monete (ad es.BTC,ETH,USDT). If omitted, all supported coins are returned.
Response
ok:trueif the request was successful.base: AlwaysUSD.ts: Unix timestamp (seconds).prices: Object mappingSYMBOL → "price"(string numbers).
Example Request (Only 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);
Example Request (All Symbols)
<?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);
Example Response
{
"ok": true,
"base": "USD",
"ts": 1755600000,
"prices": {
"BTC": "117799.51713382",
"ETH": "4409.46254479",
"USDT": "1.0005594"
}
}
Error Codes
BAD_REQUEST: Invalidsymbolsformat.UNAUTHORIZED / FORBIDDEN: API key invalid or missing.SERVER_ERROR: Internal server/database error.
Notes
- Unsupported tickers are simply omitted from the
pricesobject. - Numeric values are returned as strings to preserve precision.
Order Status
Utilizza un singolo endpoint per controllare lo stato di entrambi gli ordinimixereexchange. Puoi impostare esplicitamente il tipo di ordine (mixer/ exchange) o lasciare che l'API lo rilevi automaticamente.
Endpoint
Request Body
trackcode(obbligatorio): il codice di monitoraggio in maiuscolo di 16 caratteri dell'ordine.type(opzionale):mixer|exchange. Se omesso, l'API tenterà il rilevamento automatico.outputs(opzionale):none|summary|full(impostazione predefinita:summary).mask_addresses(opzionale):true=indirizzi maschera (impostazione predefinita),false=restituisce indirizzi completi.
Risposta
type:mixeroexchange.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 conservazione di 48 ore scadenza.deposit.fundingblocco:waiting_balance: Importo totale previsto.received_balance: Importo ricevuto finora.remaining_need: Importo rimanente necessario.is_fully_funded: Se interamente finanziato.can_start: onlytrue ifconfirm_status==2ANDis_fully_funded==true.
outputs:none: Non restituito.summary: Restituiscecount,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 aziendali
- Gli ordini non verranno avviatia meno che non siano completamente finanziati (
is_fully_funded=false): gli output rimangono non assegnati e non viene generato alcun pagamento per il partner. - Se
confirm_status==2ANDis_fully_funded==true:- Gli output vengono contrassegnati con timestamp una volta e rimangono coerenti anche se ripetuti assegni.
- I guadagni dell'affiliato vengono accreditati una sola volta quando l'ordine diventa valido.
Richiesta di esempio (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);
Esempio di risposta: interamente 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 di output sequenziale nel ordine.address: indirizzo di destinazione dove vengono inviati i fondi.destination_tag: tag/memo opzionale per XRP, XLM, ecc. (nullse non richiesto).coin: codice criptovaluta dell'output (ad esempio,btc,eth).network: nome di rete utilizzato per il trasferimento (ad esempio,btc,eth).share_percent: percentuale del deposito totale assegnato a questo output.delay_label: etichetta leggibile che mostra quando questo output verrà elaborato (ad es.,2h 0m).delay_seconds: ritardo in secondi prima che l'output possa iniziare l'elaborazione.state: stato dell'output:0→ In attesa (deposito non ancora completamente confermato).1→ Elaborazione (programmata; inizia quandodelay_secondsraggiunge 0).2→ Completo (trasferimento terminato).
confirm: Stato di conferma del trasferimento (rilevante solo instate=2):0→ Transazione trasmessa ma non ancora confermata (in sospeso).1→ Transazione confermata (almeno 1 blockchain conferma).
tx: hash della transazione blockchain per questo output.amount: importo inviato a questo indirizzo di output.left_seconds: secondi rimanenti fino all'ora di invio pianificata.
Nota:Questo conto alla rovescia si reimposta una voltadeposit.confirm_status=2(completamente confermato). Esempio: se600secondi (10 minuti), inizia il conto alla rovescia solo dopo la conferma del deposito.
Nota:I dati di pagamento e di output vengono aggiornati ogni circa 1 minuto.
Codici di errore
BAD_REQUEST: Mancante/non validotrackcode, corpo della richiesta non valido.NOT_FOUND: Ordine non valido trovato.UNAUTHORIZED / FORBIDDEN: chiave API non valida o disabilitata.TOO_MANY_REQUESTS: limite di richieste giornaliere superato.SERVER_ERROR: errore imprevisto del server.
mask_addresses: controllato damask_addresses(predefinito:true).delay_seconds: equivalente numerico didelay_label(solo restituito infull).
Elimina ordine
Elimina un ordine esistente in modo che non sia più possibile accedervi tramite l'API. Una volta eliminato, l'ordine non sarà più disponibile per ulteriori query.
Endpoint
Corpo della richiesta
trackcode(obbligatorio): il codice di tracciamento maiuscolo di 16 caratteri.type(opzionale):mixer|exchange. Se omesso, il rilevamento è automatico.
Risposta
ok:truein caso di successo.trackcode: Eco del codice di tracciamento richiesto.type: Il tipo di ordine (mixeroexchange).deleted:truese l'ordine è stato eliminato.
Comportamento
- Se l'ordine è già stato eliminato o non trovato, l'API restituisce404 NOT_FOUND.
- Se viene fornito
type, viene selezionato solo quel tipo; in caso contrario, il rilevamento è automatico.
Richiesta di esempio (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);
Risposta di esempio: riuscita
{
"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: Non validotrackcodeotype.NOT_FOUND: Ordine non trovato o già eliminato.UNAUTHORIZED / FORBIDDEN: Chiave API non valida o mancante.SERVER_ERROR: Errore interno del server.
Convalida della firma
Convalidare un documento firmato digitalmente carico utile (firma della Lettera di Garanzia). Una volta decrittografata con successo, l'API restituisce un sottoinsieme verificato dei dettagli dell'ordine correlato (mixer o scambio), adatto per controlli lato client e visualizzazione dello stato.
Endpoint
Request Body
signature(required): il blocco della firma digitale, grezzo Base64 o con righe BEGIN/END.
Risposta
ok:truein caso di successo.message: messaggio di stato leggibile.type:mixer|exchange.route: per mixer:confirm|deposit|mixing. Per lo scambio:exc-deposit|exc-send.trackcode: Codice di tracciamento risolto.order:deposit_address(string)service_fee(string, 2 decimali)coin(string)network(string)waiting_balance(string, 8 decimali)created_at(intero, Unix timestamp)
outputs(array):coin,network,address,destination_tagshare_percent(stringa, 2 decimali)delay_minutes(intero),delay_label(e.g.2h 0m)amount(stringa, 8 decimali)
outputs_count(intero)
Comportamento
- Il a condizione che la firma digitale sia convalidata rispetto al sistema.
- Solo gli ordini recenti (entro 48 ore) sono idonei per la convalida. Gli ordini più vecchi potrebbero essere stati rimossi automaticamente.
- Se non viene trovato alcun ordine valido, l'API risponde con404 NOT_FOUND.
Richiesta di esempio (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);
Risposta di esempio: riuscita.
{
"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": "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."
}
Codici di errore
BAD_REQUEST: mancantesignatureo payload non valido.INVALID_SIGNATURE: Base64 non valido o blocco della firma troppo corto.DECRYPTION_FAILED: decrittografia AES‑GCM non riuscita.INVALID_PAYLOAD: il payload decrittografato non è valido JSON.MISSING_TRACKCODE:trackcampo assente nel payload.NOT_FOUND: ordine non trovato nelle ultime 48 ore.UNAUTHORIZED / FORBIDDEN: chiave API non valida o mancante.SERVER_ERROR: errore interno del server.
Note
- Precisione numerica:
waiting_balanceeamount→ 8 decimali (stringa),share_percent→ 2 decimali (stringa),service_fee→ 2 decimali (stringa). - Ritardi: vengono restituiti sia l'etichetta umana (
delay_label) che i minuti leggibili dalla macchina (delay_minutes).