소개
TheSecretCryptos API에 대한 안전하고 간단하며 일관된 액세스를 제공합니다. 우리의Mixer및Exchange서비스. 이 "Lite" 문서는 빠르게 시작할 수 있도록 핵심 엔드포인트에 중점을 둡니다.
기본 URL: https://api.secretcryptos.com/v1
예: GET /v1/ping – 시도
You can also explore the live root page at api.secretcryptos.com.
추가 링크:링크에서 라이브 루트 페이지를 탐색할 수도 있습니다. 허브 • API 문서(Swagger UI) • GitHub Organization.
Authentication
- Header:
Authorization: Bearer YOUR_API_KEY - 모든 요청은 HTTPS를 사용해야 합니다.
API 키 가져오기
- 계정을 만들거나Partner.
- 상단 메뉴를 열고API탭
- 복사를 클릭하세요. yourAPI-KEY(비밀로 유지하세요. Mixer와 Exchange 모두에서 작동합니다.)
API 키 안전성
cURL(서버측)
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.secretcryptos.com/v1/meta/mixer"
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
간단한 상태 확인 및 버전.
GET https://api.secretcryptos.com/v1/ping
{
"ok": true,
"service": "SecretCryptos API",
"version": "1.2.6",
"ts": 1723800000
}
ts: Unix epoch(초).- 인증이 필요하지 않습니다.
MIXER
TheMixer APIlets you programmatically create privacy-preserving transactions. You define thecoin, network, amount, and one or moreoutput addresseswith percent shares and optional delays. We allocate a deposit address and return a full plan (fees + outputs) so you can automate receipts, payouts, or escrow-like flows.
- Use cases: secure payment intake, automated revenue sharing, payouts to multiple wallets, delayed disbursements.
- Get limits & fees via
/v1/meta/mixerbefore creating orders. - 모든 통화 필드는 코인 단위별도 언급되지 않는 한
- 모든 타임스탬프는 Unix epoch 초(시간대: 서버의 GMT-3)입니다.
MIXER / 주문 생성
새로운 믹서 주문을 생성합니다. 코인, 네트워크, 금액 및 하나 이상의 출력 주소를 백분율 및 지연과 함께 제공합니다. 시스템은 입금 주소를 할당하고 수수료 및 출력 계획을 포함한 주문 세부 정보를 반환합니다.
검증 규칙
amount: 동전별로min_amount및max_amountfrom/v1/meta/mixer.addresses: 1~10개의 출력이어야 합니다.percent:- 형식: 최대 소수점 2자리 (예:
10,10.5,10.50). - 주소당 최소값:
≥ 1.00, 최대값:≤ 100.00. - 모든 출력의 총계는 정확히
100.00. - 출력이 1개만 있는 경우 해당 비율은 정확히
100.00.
- 형식: 최대 소수점 2자리 (예:
delay:- 분(예:
120) 또는 라벨을 허용해야 합니다. (예:"2h 0m"). - 최대:
48h(예:2880분).
- 분(예:
service_fee(선택적 재정의):- 소수점 최대 2자리.
- 범위:
0.10–5.00(%). 생략하면 코인의 시스템 기본값이 사용됩니다.
address format: 선택한 네트워크(예: BTC 레거시/SegWit, ERC-200x…, TRC-20T…, SOL 등)와 일치해야 합니다.destination_tag / memo: 선택 사항; 일부 네트워크에 필요합니다(예: XRP 태그, TON 메모).
Notes
expires_at: 입금 주소가 만료되는 경우(에포크 초).outputs[i].time: 계획된 출력 시간은 에포크 초(delay_minutes기준)입니다.- 동안 사람이 읽을 수 있는 JSON에 대해
?pretty=1사용 테스트. - 비율 제한: API 키당 기본 일일 제한; 더 높은 계층 사용 가능("비율 제한" 참조).
일반적인 오류
{
"ok": false,
"code": "BAD_REQUEST",
"message": "Sum of percents must be exactly 100.00"
}
BAD_REQUEST: 잘못된 본문, 잘못된 주소 형식, 2자리 숫자가 아닌 백분율, 범위를 벗어난 수수료, 48시간 초과 지연 등AMOUNT_TOO_LOW / AMOUNT_TOO_HIGH: 코인당 최소/최대값을 위반합니다.SERVICE_UNAVAILABLE: 해당 네트워크에 사용 가능한 입금 주소가 없습니다.TOO_MANY_REQUESTS: 일일 API 한도에 도달했습니다.UNAUTHORIZED / FORBIDDEN: API 키가 잘못/비활성화되었습니다.
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
}
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: 출력 대상 목록입니다. 각 주소에는 다음 필드가 있어야 합니다.address: 자금이 전송되는 대상 주소.percent: 이 주소로 전송될 총액의 비율(예: 전체 금액의 경우100또는 절반의 경우50).delay: 거래가 처리되기 전의 지연 시간입니다. 분 단위(예:120) 또는 텍스트 형식(예:"2h 0m")으로 지정할 수 있습니다.destination_tag: 이 필드는XRP 및TON네트워크. 필요하지 않은 경우 생략하거나 비워둘 수 있습니다(예:"").
amount: 이체할 코인 단위의 총 금액입니다. 소수 구분 기호로 점을 사용하십시오(예:10.00000000).crypto/network: 코인 및 블록체인 네트워크(예:btc/btc비트코인의 경우).partner: 선택 사항이지만 권장됩니다. 귀하의PARTNER KEY는PartnerAPI 탭 아래(API-KEY 포함)에서 사용할 수 있습니다. 사용하면 서비스 수수료의 30%를 벌 수 있습니다.service_fee: 선택적으로 서비스 수수료를 퍼센트 단위로 대체할 수 있습니다. 생략하면 시스템 기본값이 적용됩니다. 제공된 경우 0.1 및5(포함) 사이의 숫자여야 합니다.qrcode: 선택 사항.1returns a Base64 data URL underdeposit.qr_code;0아래에 Base64 데이터 URL을 반환하거나 생략하면 QR 코드가 반환되지 않습니다.destination_tag:XRP 및TON네트워크에 필요합니다. 필요하지 않은 경우 생략하거나 비워둘 수 있습니다("").
QR 코드 사용 방법
When the qrcode을1으로 설정하면 응답의 deposit.qr_code 필드 아래에 Base64로 인코딩된 이미지가 포함됩니다. 이는 프런트엔드에 이미지로 삽입할 수 있는 완전한 기능을 갖춘 QR 코드로, 사용자가 지갑 애플리케이션으로 스캔할 수 있습니다. 다음은 웹페이지에 표시하는 방법의 예입니다.
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="Scan to pay" />
사용자는 선호하는 지갑 앱으로 QR 코드를 스캔하여 대상 주소와 금액을 즉시 입력할 수 있어 빠르고 안전한 거래가 가능합니다.
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: 고유 주문 식별자deposit: 사용자가 자금을 보내야 하는 곳.fees: 모두 적용됨 fee.outputs: 계획된 자금 분배(지연 있음).timeandexpires_at: Unix 타임스탬프(GMT-3 시간대).signature_text: 검증을 위한 디지털 갑옷 서명.
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 API는from_coin/ from_network예금을 단일to_coin/ to_networkdestination으로 교환할 수 있습니다. 주소. 우리는 입금 주소를 할당하고, 실시간 견적(USD 기반 한도 및 수수료 적용)을 계산하고, 자금이 조달되고 실행될 때까지 폴링할 수 있는 전체 주문 개체를 반환합니다.
- 사용 사례: 결제 시 즉시 스왑, "X에 입금 → Y 수신", L1/L2 사이의 오프램프/온램프 브리지
- 생성하기 전에
/v1/meta/exchange을 통해 페어 한도 및 기본 수수료를 가져옵니다. 주문. - 모든 화폐 항목은 별도의 언급이 없는 한코인 단위입니다. 한도는USD 기반.
- 모든 타임스탬프는 Unix epoch 초(서버 시간대 GMT‑3)입니다.
EXCHANGE / 주문 생성
새 교환 주문을 생성합니다. 귀하는from_* 측면(코인/네트워크/금액) 및 대상to_address for the to_* 측. from_network에 입금 주소, 견적 및 계획된 출력을 반환합니다.
검증 규칙
amount: USD 값(금액 × from_coin 가격)은 쌍별min_usd/max_usdfrom/v1/meta/exchange.address format: 선택한to_network(예: ERC‑200x…, TRC‑20T…, BTC, DOGE, SOL 등).destination_tag / memo: 선택 사항이지만 일부 네트워크에서는 필수입니다. (예:XRPtag,TONmemo).service_fee(선택 사항, 퍼센트):- 소수점 최대 2자리(예:
0.6=0.60%). - 전역 클램프: 최소
0.50%, max3.00%. - 해당 쌍의 사이트 기본값 아래에 제공된 경우 사이트 기본값이 적용됩니다.
3.00%위의 경우3.00%. - 생략된 경우 유효 수수료 =
max(site_default, 0.50%).
- 소수점 최대 2자리(예:
Notes
quote.final_usd= (금액 × 가격) × (1 − 수수료%)quote.to.estimated_receive=final_usd÷ to_coinprice.receive.delay_label: 스왑을 보내기 전에 계획된 지연 (기본값0h 10m).expires_at: 할당된 주소에 대한 입금 창입니다.- 사용
?pretty=1테스트 중 예쁘게 인쇄된 JSON에 사용
Headers
Authorization: Bearer YOUR_API_KEYContent-Type: application/json
Request Body
{
"from_coin": "eth",
"from_network": "eth",
"to_coin": "doge",
"to_network": "doge",
"to_address": "DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p",
"amount": "1.00000000",
"service_fee": 0.6, // optional; %0.60 → clamped by rules "partner": "YOUR_PARTNER_KEY", // optional, earns 30% of platform fee "qrcode": 1 // optional; adds base64 QR at deposit.qr_code}
요청 본문(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: 상태를 폴링하기 위한 고유 주문 식별자입니다.deposit: 사용자가 보내야 하는 곳from_coin.quote: 가격 스냅샷 및 유효 수수료receive/outputs: 계획된 스왑 출력 세부정보
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);
QR 코드 사용 방법
When qrcode이1으로 설정되면 응답에는 다음이 포함됩니다. deposit.qr_code 아래의 Base64로 인코딩된 QR입니다. 사용자가 입금 주소를 스캔할 수 있도록 <img>로 직접 삽입하세요.
<img src="data:image/png;base64,..." alt="Scan to pay" />
Prices
지원되는 암호화폐에 대한 최신 시장 가격을USD에서 검색하세요. 여러 기호를 쉼표로 구분하여 한 번에 쿼리할 수 있습니다.
Endpoint
Query 매개변수
symbols(선택 사항): 쉼표로 구분된 동전 기호 목록(예:BTC,ETH,USDT). 생략하면 지원되는 모든 코인이 반환됩니다.
Response
ok:true요청이 성공한 경우base: AlwaysUSD.ts: Unix 타임스탬프(초).prices: 개체 매핑SYMBOL → "price"(문자열 번호).
요청 예시(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);
요청 예시(모든 기호)
<?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);
응답 예시
{
"ok": true,
"base": "USD",
"ts": 1755600000,
"prices": {
"BTC": "117799.51713382",
"ETH": "4409.46254479",
"USDT": "1.0005594"
}
}
오류 코드
BAD_REQUEST: 잘못된symbolsformat.UNAUTHORIZED / FORBIDDEN: API 키가 잘못되었거나 누락되었습니다.SERVER_ERROR: 내부 서버/데이터베이스 error.
Notes
- 지원되지 않는 티커는
prices객체에서 생략됩니다. - 숫자 값은 정밀도를 유지하기 위해 문자열로 반환됩니다.
주문 상태
단일 엔드포인트를 사용하여mixer및exchange주문의 상태를 확인하세요. 주문 유형(mixer/ exchange)을 명시적으로 설정하거나 API가 이를 자동 감지하도록 할 수 있습니다.
Endpoint
Request Body
trackcode(필수): 주문 유형의 16자 대문자 추적 코드 주문.type(선택 사항):mixer|exchange. 생략하면 API는 자동 감지를 시도합니다.outputs(선택 사항):none|summary|full(기본값:summary).mask_addresses(선택 사항):true=마스크 주소(기본값),false=전체 주소를 반환합니다.
Response
type:mixerorexchange.deposit.confirm_status: 입금 확인 상태:0: 결제가 수신되지 않았습니다.1: 결제가 수신되었지만 아직 보류 중입니다(확인 대기 중이거나 아직 자금이 완전히 충전되지 않음).2: 입금이 완전히 확인되고 자금이 충전되었습니다.
deposit.delete_in_sec: 48시간 유지까지 남은 시간(초) 만료.deposit.fundingblock:waiting_balance: 총 예상 금액.received_balance: 지금까지 받은 금액.remaining_need: 남은 금액이 필요합니다.is_fully_funded: 전액 자금 지원 여부.can_start: onlytrue ifconfirm_status==2ANDis_fully_funded==true.
outputs:none: 반환되지 않음.summary: 반환count,sent_count,sent_total.full: 각 출력에 대해:index,address(마스킹 여부),destination_tag,coin,network,share_percent,delay_label,delay_seconds,state,confirm,tx,amount,left_seconds.
status_reason: 예:"INSUFFICIENT_FUNDS"(완전히 자금이 조달되지 않은 경우).
비즈니스 규칙
- 주문이 시작되지 않습니다완전히 자금이 조달되지 않은 경우(
is_fully_funded=false): 출력은 할당되지 않은 상태로 유지되고 파트너 지불금은 생성되지 않습니다. - If
confirm_status==2ANDis_fully_funded==true:- 출력은 한 번 타임스탬프가 찍히고 반복 시 일관성을 유지합니다. 수표.
- 제휴 수익은 주문이 유효해지면 한 번만 적립됩니다.
요청 예시(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);
응답 예시 — 전액 자금 지원
{
"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
}
]
}
응답 예시 — 자금 부족
{
"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"
}
}
출력 설명
index: 순차 출력 번호 order.address: 자금이 전송되는 대상 주소.destination_tag: XRP, XLM 등에 대한 선택적 태그/메모(null필요하지 않은 경우).coin: 출력의 암호화폐 코드(예:btc,eth).network: 전송에 사용되는 네트워크 이름(예:btc,eth).share_percent: 이 출력에 할당된 총 입금액의 비율.delay_label: 이 출력이 처리될 시기를 표시하는 사람이 읽을 수 있는 레이블(예:2h 0m).delay_seconds: 출력 처리가 시작될 때까지 몇 초 단위로 지연됩니다.state: 출력 상태:0→ 대기 중(입금이 아직 완전히 완료되지 않았습니다. 확인됨).1→ 처리(예약됨,delay_seconds가 0에 도달하면 시작됨).2→ 완료(전송 완료).
confirm: 전송 확인 상태(state=2에만 해당):0→ 거래가 방송되었지만 아직 확인되지 않았습니다(보류 중).1→ 거래가 확인됨(시간) 최소 1개의 블록체인 확인).
tx: 이 출력에 대한 블록체인 거래 해시.amount: 이 출력 주소로 전송된 금액.left_seconds: 예정된 전송 시간까지 남은 시간(초).
참고:이 카운트다운은 한 번 재설정됩니다deposit.confirm_status=2(완전히 확인됨). 예: 만약600초(10분)로 설정하면 입금 확인 후에만 카운트다운이 시작됩니다.
참고:결제 및 출력 데이터는 ~1분마다 새로고침됩니다.
오류 코드
BAD_REQUEST: 누락/잘못됨trackcode, 잘못된 요청 본문NOT_FOUND: 주문 불가 발견.UNAUTHORIZED / FORBIDDEN: API 키가 유효하지 않거나 비활성화되었습니다.TOO_MANY_REQUESTS: 일일 요청 한도가 초과되었습니다.SERVER_ERROR: 예기치 않은 서버 오류.
mask_addresses:mask_addresses에 의해 제어됨(기본값:true).delay_seconds:delay_label에 해당하는 숫자(반환됨) infullmode).
주문 삭제
기존 주문을 삭제하면 더 이상 API를 통해 액세스할 수 없습니다. 삭제된 주문은 추가 쿼리를 위해 영구적으로 사용할 수 없습니다.
Endpoint
요청 본문
trackcode(필수): 16자 대문자 추적 코드입니다.type(선택):mixer|exchange. 생략하면 자동으로 감지됩니다.
Response
ok:true성공 시.trackcode: 요청된 추적 코드의 에코.type: 주문 유형(mixer또는exchange).deleted:true주문이 이루어진 경우 삭제되었습니다.
동작
- 주문이 이미 삭제되었거나 찾을 수 없는 경우 API는404 NOT_FOUND.
- If
type가 제공되면 해당 유형만 확인됩니다. 그렇지 않으면 자동으로 감지됩니다.
요청 예시(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);
응답 예시 — 성공
{
"ok": true,
"trackcode": "D391FC08747E7B04",
"type": "exchange",
"deleted": true
}
응답 예 — 찾을 수 없음
{
"ok": false,
"code": "NOT_FOUND",
"message": "Order not found or already deleted"
}
오류 코드
BAD_REQUEST: 유효하지 않음trackcodeortype.NOT_FOUND: 주문을 찾을 수 없거나 이미 삭제되었습니다.UNAUTHORIZED / FORBIDDEN: API 키가 유효하지 않거나 누락되었습니다.SERVER_ERROR: 내부 서버 오류.
서명 유효성 검사
디지털 서명 유효성 검사 페이로드(보증서 서명). 암호 해독에 성공하면 API는 클라이언트 측 확인 및 상태 표시에 적합한 관련 주문 세부 정보(믹서 또는 교환)의 확인된 하위 집합을 반환합니다.
Endpoint
요청 본문
signature(필수): 디지털 서명 블록(원시 또는 원시) Base64 또는 BEGIN/END 라인.
Response
ok:true성공 시.message: 사람이 읽을 수 있는 상태 메시지.type:mixer|exchange.route: 믹서의 경우:confirm|deposit|mixing. 교환용:exc-deposit|exc-send.trackcode: 추적 코드가 해결되었습니다.order:deposit_address(문자열)service_fee(문자열, 소수점 2자리)coin(문자열)network(문자열)waiting_balance(문자열, 소수점 8자리)created_at(정수, Unix 타임스탬프)
outputs(배열):coin,network,address,destination_tagshare_percent(문자열, 소수점 2자리)delay_minutes(정수),delay_label(예:2h 0m)amount(문자열, 소수점 8자리)
outputs_count(정수)
동작
- The 제공된 디지털 서명은 시스템에 대해 검증됩니다.
- 최근 주문(48시간 이내)만 검증할 수 있습니다. 이전 주문은 자동으로 제거되었을 수 있습니다.
- 유효한 주문이 없으면 API는 다음으로 응답합니다.404 NOT_FOUND.
예제 요청(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);
예제 응답 — 성공
{
"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
}
응답 예 — 오류
{
"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."
}
오류 코드
BAD_REQUEST: 누락signature또는 잘못된 페이로드.INVALID_SIGNATURE: 잘못된 Base64 또는 서명 블록이 너무 짧습니다.DECRYPTION_FAILED: AES‑GCM 암호 해독에 실패했습니다.INVALID_PAYLOAD: 해독된 페이로드가 유효하지 않습니다. JSON.MISSING_TRACKCODE:track필드가 페이로드에 없습니다.NOT_FOUND: 지난 48시간 동안 주문을 찾을 수 없습니다.UNAUTHORIZED / FORBIDDEN: API 키가 유효하지 않거나 누락되었습니다.SERVER_ERROR: 내부 서버 오류
Notes
- 숫자 정밀도:
waiting_balanceandamount→ 소수점 8자리 (문자열),share_percent→ 소수점 2자리(문자열),service_fee→ 소수점 2자리(문자열). - Delays: 사람이 읽는 라벨(
delay_label)과 기계가 읽을 수 있는 분(delay_minutes)이 모두 반환됩니다.