API 문서 센터를 불러오는 중...
실시간 믹스
BTC
0.015000 BTC
BTC 믹스됨 · 46초 전
ADA
508 ADA
ADA 믹스됨 · 3분 전
USDT
1,129 USDT
USDT 믹스됨 · 3분 전
TON
102.008901 TON
TON 믹스됨 · 3분 전
TON
39.394381 TON
TON 믹스됨 · 4분 전
LTC
9.833244 LTC
LTC 믹스됨 · 8분 전
USDT
2,845 USDT
USDT 믹스됨 · 11분 전
BTC
0.009999 BTC
BTC 믹스됨 · 11분 전
BTC
0.037000 BTC
BTC 믹스됨 · 11분 전
DOGE
12,220 DOGE
DOGE 믹스됨 · 11분 전
BTC
0.015000 BTC
BTC 믹스됨 · 46초 전
ADA
508 ADA
ADA 믹스됨 · 3분 전
USDT
1,129 USDT
USDT 믹스됨 · 3분 전
TON
102.008901 TON
TON 믹스됨 · 3분 전
TON
39.394381 TON
TON 믹스됨 · 4분 전
LTC
9.833244 LTC
LTC 믹스됨 · 8분 전
USDT
2,845 USDT
USDT 믹스됨 · 11분 전
BTC
0.009999 BTC
BTC 믹스됨 · 11분 전
BTC
0.037000 BTC
BTC 믹스됨 · 11분 전
DOGE
12,220 DOGE
DOGE 믹스됨 · 11분 전

SecretCryptos API 문서

안전. 빠름. 개발자 친화적.
API 인터페이스
공식 SecretCryptos API를 사용하여 앱이나 서비스에 암호화 믹싱 및 교환 기능을 통합하세요.
안전한 암호화 통합을 위한 SecretCryptos API 문서 SecretCryptos API 통합을 위한 개발자 가이드 SecretCryptos와 함께하는 암호화 믹싱 및 교환을 위한 API 참조

소개


SecretCryptos API믹서거래소 서비스를 안전하고 단순하며 일관성 있게 접근할 수 있도록 합니다. 이 “간단 문서”는 핵심 엔드포인트를 빠르게 시작할 수 있도록 안내합니다.

기본 URL: https://api.secretcryptos.com/v1

예시: GET /v1/ping실행하기

실시간 루트 페이지를 api.secretcryptos.com 에서 탐색할 수도 있습니다.

추가 링크: 링크 허브API 문서 (Swagger UI)GitHub 조직.

인증


  • 헤더: Authorization: Bearer YOUR_API_KEY
  • 모든 요청은 HTTPS를 사용해야 합니다.
클라이언트 측 JavaScript에서 인증된 엔드포인트를 호출하지 마세요. API 키는 서버에만 보관하고 브라우저에는 프록시 응답만 전달하세요.

API 키 받기


  1. 파트너 페이지에서 계정을 만들거나 로그인하세요.
  2. 상단 메뉴에서 API 탭을 클릭하세요.
  3. API-KEY를 복사하세요 (비밀로 유지해야 하며, 믹서와 거래소 모두에서 작동합니다).

API 키 안전


클라이언트 측 JavaScript에서 인증된 엔드포인트를 호출하지 마세요. 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/v1/ping
GET https://api.secretcryptos.com/v1/ping
{
  "ok": true,
  "service": "SecretCryptos API",
  "version": "1.2.6",
  "ts": 1723800000
}
  • ts: 유닉스 에포크 (초 단위).
  • 인증 필요 없음.

메타


사용 가능한 메타 엔드포인트 탐색.

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": "간단한 상태 확인."
    },
    {
      "name": "Meta (Mixer)",
      "path": "/v1/meta/mixer",
      "method": "GET",
      "auth": true,
      "desc": "지원되는 코인/네트워크 및 믹서 규칙."
    },
    {
      "name": "Meta (Exchange)",
      "path": "/v1/meta/exchange",
      "method": "GET",
      "auth": true,
      "desc": "지원되는 거래 쌍 및 거래소 한도."
    },
    {
      "name": "Create Mixer Order",
      "path": "/v1/mixer/orders",
      "method": "POST",
      "auth": true,
      "desc": "새 믹서 주문 생성."
    },
    {
      "name": "Create Exchange Order",
      "path": "/v1/exchange/orders",
      "method": "POST",
      "auth": true,
      "desc": "새 거래소 주문 생성."
    },
    {
      "name": "Check Order",
      "path": "/v1/orders/check",
      "method": "POST",
      "auth": true,
      "desc": "트랙코드로 주문 상태 조회."
    },
    {
      "name": "Delete Order",
      "path": "/v1/orders/delete",
      "method": "POST",
      "auth": true,
      "desc": "주문 삭제 (허용되는 경우)."
    },
    {
      "name": "Prices",
      "path": "/v1/prices",
      "method": "GET",
      "auth": true,
      "desc": "현재 환율 및 가격."
    },
    {
      "name": "Validate Signature",
      "path": "/v1/validate",
      "method": "POST",
      "auth": false,
      "desc": "디지털 보증서 서명 검증."
    }
  ]
}
		
  • 인증 필요 없음.

메타 / 믹서


코인별 믹서 설정 (최소/최대, 네트워크 라벨, 서비스/주소당 수수료, 소수 자릿수, 컨펌 수).

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
        }
      }
    }
  }
}
  • 인증 필요: Authorization: Bearer YOUR_API_KEY.
  • service_fee는 퍼센트 값입니다 (예: 0.1 = 0.1%).
  • per_address_fee는 코인 단위의 소수점 8자리 문자열입니다.

메타 / 거래소


거래소 설정: 점검 상태, 실시간 USD 가격, 네트워크별 한도/수수료.

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"
          }
        }
      },
	  ...
    }
  }
}
  • 인증 필요: Authorization: Bearer YOUR_API_KEY.
  • service_fee는 퍼센트 문자열입니다 (예: "0.5" = 0.5%).
  • prices_usd는 데이터베이스에서 가져온 실시간 값입니다.

믹서


믹서 API를 사용하면 프라이버시를 보호하는 거래를 프로그래밍 방식으로 생성할 수 있습니다. 코인, 네트워크, 금액, 그리고 하나 이상의 출금 주소를 비율과 지연 옵션과 함께 정의합니다. 우리는 입금 주소를 할당하고 전체 계획(수수료 + 출금)을 반환하므로 수금, 지급, 에스크로와 같은 흐름을 자동화할 수 있습니다.

  • 사용 사례: 안전한 결제 수납, 자동 수익 분배, 여러 지갑으로 지급, 지연된 분배.
  • /v1/meta/mixer를 통해 주문 생성 전에 한도와 수수료를 확인하세요.
  • 모든 금액 필드는 별도 표시가 없는 한 코인 단위로 표시됩니다.
  • 모든 타임스탬프는 유닉스 에포크 초 단위 (서버 시간대: GMT-3)입니다.

믹서 / 주문 생성


새 믹서 주문을 생성합니다. 코인, 네트워크, 금액, 그리고 하나 이상의 출력 주소(비율 및 지연 시간 포함)를 제공합니다. 시스템은 입금 주소를 할당하고 수수료 및 출력 계획을 포함한 주문 세부 정보를 반환합니다.

검증 규칙

  • amount: 반드시 /v1/meta/mixer에서 제공하는 코인별 min_amountmax_amount 범위 내여야 합니다.
  • addresses: 1–10개의 출력 주소.
  • percent:
    • 형식: 소수점 둘째 자리까지 (예: 10, 10.5, 10.50).
    • 주소별 최소: ≥ 1.00, 최대: ≤ 100.00.
    • 모든 출력의 합계는 정확히 100.00 이어야 합니다.
    • 출력이 하나뿐이라면 그 비율은 반드시 100.00 이어야 합니다.
  • delay:
    • 분 단위(예: 120) 또는 라벨(예: "2h 0m") 허용.
    • 최대: 48h (즉, 2880분).
  • service_fee(선택적 재정의):
    • 최대 소수점 둘째 자리까지.
    • 범위: 0.105.00 (%). 생략 시 시스템 기본값 사용.
  • address format: 선택한 네트워크 형식과 일치해야 함 (예: BTC legacy/SegWit, ERC-20 0x…, TRC-20 T…, SOL 등).
  • destination_tag / memo: 선택 사항. 일부 네트워크(XRP 태그, TON 메모 등)에서는 필수.

참고 사항

  • expires_at: 입금 주소 만료 시점 (epoch 초).
  • outputs[i].time: 계획된 출력 시간(epoch 초, delay_minutes 기준).
  • 테스트 시 사람이 읽기 쉬운 JSON 출력을 원하면 ?pretty=1 사용.
  • 요청 제한: 기본적으로 API 키당 일일 제한 있음. 상위 등급은 “Rate Limits” 참조.

자주 발생하는 오류

{
  "ok": false,
  "code": "BAD_REQUEST",
  "message": "Sum of percents must be exactly 100.00"
}
  • BAD_REQUEST: 잘못된 요청 본문, 주소 형식 오류, 소수점 두 자리 규칙 위반, 수수료 범위 초과, 지연 48h 초과 등.
  • AMOUNT_TOO_LOW / AMOUNT_TOO_HIGH: 코인별 최소/최대 한도 위반.
  • SERVICE_UNAVAILABLE: 해당 네트워크에 사용 가능한 입금 주소 없음.
  • TOO_MANY_REQUESTS: 일일 API 요청 한도 도달.
  • UNAUTHORIZED / FORBIDDEN: 잘못되었거나 비활성화된 API 키.
POST/v1/mixer/orders

헤더

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

요청 본문

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

요청 본문

{
  "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: XRPTON 네트워크에서는 필수. 필요하지 않으면 생략 또는 빈 문자열(예: "").
  • amount: 전송할 총 금액 (코인 단위). 소수점 구분자는 반드시 점(.) 사용 (예: 10.00000000).
  • crypto/ network: 코인 및 블록체인 네트워크 (예: 비트코인 btc/ btc).
  • partner: 선택 사항이지만 권장. 파트너 페이지 페이지의 API 탭에서 PARTNER KEY 확인 가능 (API-KEY와 함께). 사용 시 서비스 수수료의 30%를 획득.
  • service_fee: 선택적 수수료 재정의. 생략 시 기본값 적용. 지정 시 0.1 ~ 5 범위여야 함.
  • qrcode: 선택 사항. 1이면 응답에 Base64 데이터 URL 형태로 deposit.qr_code 포함. 0 또는 생략 시 QR 코드 없음.
  • destination_tag: XRPTON 네트워크에서 필수. 필요 없으면 생략 또는 빈 문자열("").

QR 코드 사용 방법

qrcode1로 설정되면 응답의 deposit.qr_code 필드에 Base64 인코딩된 이미지가 포함됩니다. 이를 프론트엔드에 이미지로 삽입하면 사용자가 지갑 앱으로 스캔 가능.

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="스캔하여 결제" />

사용자는 QR 코드를 지갑 앱으로 스캔하여 자동으로 목적지 주소와 금액을 채울 수 있어 빠르고 안전한 거래가 가능합니다.

응답

{
  "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: 적용된 모든 수수료.
  • outputs: 지연을 포함한 계획된 분배.
  • timeexpires_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 API를 사용하면 from_coin/from_network 입금을 단일 to_coin/to_network 목적지 주소로 교환할 수 있습니다. 시스템은 입금 주소를 할당하고, 실시간 견적(USD 기반 한도 및 수수료 적용)을 계산하며, 자금이 입금되고 실행될 때까지 조회 가능한 전체 주문 객체를 반환합니다.

  • 사용 사례: 결제 시 즉시 스왑, “X로 입금 → Y로 수령”, L1/L2 간 오프램프/온램프 브릿지.
  • 주문 생성 전 /v1/meta/exchange에서 거래쌍 한도 및 기본 수수료 확인.
  • 모든 금액 필드는 별도 표시가 없는 한 코인 단위. 한도는 USD 기준.
  • 모든 타임스탬프는 Unix epoch 초 (서버 시간대 GMT-3).

거래소 / 주문 생성


새로운 교환 주문을 생성합니다. from_* 측(코인/네트워크/수량)과 대상 to_addressto_* 측에 제공합니다. 우리는 from_network에 대한 입금 주소, 견적(quote), 그리고 계획된 출력을 반환합니다.

검증 규칙

  • amount: USD 값 (수량 × from_coin 가격)은 /v1/meta/exchange에서 쌍별 min_usd/ max_usd 범위 내에 있어야 합니다.
  • address format: 선택한 to_network 형식과 일치해야 합니다. (예: ERC-20 0x…, TRC-20 T…, BTC, DOGE, SOL 등)
  • destination_tag / memo: 선택 사항이지만 일부 네트워크에서는 필수입니다 (예: XRP 태그, TON 메모).
  • service_fee (선택, 퍼센트):
    • 소수점 2자리까지 가능 (예: 0.6 = 0.60%).
    • 전역 제한: 최소 0.50%, 최대 3.00%.
    • 제공된 값이 쌍별 사이트 기본값보다 낮으면 기본값이 적용됩니다. 3.00% 초과 시 3.00%로 제한됩니다.
    • 입력하지 않으면 적용 수수료 = max(사이트 기본값, 0.50%).

비고

  • quote.final_usd = (수량 × from 가격) × (1 − 수수료%).
  • quote.to.estimated_receive = final_usd ÷ to_coin 가격.
  • receive.delay_label: 스왑 전송 전 계획된 지연 (기본값 0h 10m).
  • expires_at: 할당된 주소의 입금 가능 시간.
  • 테스트 시 ?pretty=1를 사용하여 사람이 읽기 좋은 JSON 출력.
POST/v1/exchange/orders

헤더

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

요청 본문

{
  "from_coin": "eth",
  "from_network": "eth",
  "to_coin": "doge",
  "to_network": "doge",
  "to_address": "DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p",
  "amount": "1.00000000",
  "service_fee": 0.6,           // 선택; %0.60 → 규칙에 의해 제한됨  "partner": "YOUR_PARTNER_KEY", // 선택, 플랫폼 수수료의 30% 획득  "qrcode": 1                    // 선택; deposit.qr_code에 base64 QR 추가}

요청 본문 (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"
}

응답

{
  "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,..."  // 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 코드 사용 방법

Create 시 qrcode1로 설정하면 응답에 deposit.qr_code에 Base64 인코딩된 QR이 포함됩니다. 이를 <img>로 직접 삽입하면 사용자가 입금 주소를 스캔할 수 있습니다.

<img src="data:image/png;base64,..." alt="스캔하여 결제" />

가격


지원되는 암호화폐의 최신 시장 가격을 USD 단위로 가져옵니다. 여러 심볼을 한 번에 조회하려면 쉼표로 구분하세요.

엔드포인트

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

쿼리 매개변수

  • symbols(선택): 코인 심볼을 쉼표로 구분한 목록 (예: BTC,ETH,USDT). 생략하면 지원되는 모든 코인이 반환됩니다.

응답

  • ok: 요청이 성공했을 경우 true.
  • base: 항상 USD.
  • ts: 유닉스 타임스탬프 (초).
  • 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: 잘못된 symbols 형식.
  • UNAUTHORIZED / FORBIDDEN: API 키가 잘못되었거나 누락됨.
  • SERVER_ERROR: 내부 서버/데이터베이스 오류.

비고

  • 지원되지 않는 티커는 단순히 prices 객체에서 생략됩니다.
  • 숫자 값은 정밀도를 보존하기 위해 문자열로 반환됩니다.

주문 상태


단일 엔드포인트를 사용하여 믹서교환 주문의 상태를 확인할 수 있습니다. 주문 유형( mixer / exchange)을 명시적으로 설정하거나 API가 자동으로 감지하도록 둘 수 있습니다.

엔드포인트

POST/v1/orders/check

요청 본문

  • trackcode(필수): 주문의 16자 대문자 추적 코드.
  • type(선택): mixer | exchange. 생략하면 API가 자동 감지를 시도합니다.
  • outputs(선택): none | summary | full (기본값: summary).
  • mask_addresses(선택): true=주소 마스킹 (기본), false=전체 주소 반환.

응답

  • type: mixer 또는 exchange.
  • deposit.confirm_status: 입금 확인 상태:
    • 0: 결제 수신되지 않음.
    • 1: 결제는 수신되었지만 아직 대기 중 (확인 중이거나 완전히 자금이 충전되지 않음).
    • 2: 입금이 완전히 확인되고 충전됨.
  • deposit.delete_in_sec: 48시간 보존 만료까지 남은 초.
  • deposit.funding 블록:
    • waiting_balance: 총 예상 금액.
    • received_balance: 현재까지 수신된 금액.
    • remaining_need: 추가로 필요한 금액.
    • is_fully_funded: 완전히 충전되었는지 여부.
    • can_start: 오직 confirm_status==2 이고 is_fully_funded==true일 때만 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): 출력은 할당되지 않고 파트너 수익도 발생하지 않습니다.
  • confirm_status==2 이고 is_fully_funded==true이면:
    • 출력은 한 번 타임스탬프가 기록되며 반복 확인 시에도 일관성을 유지합니다.
    • 제휴 수익은 주문이 유효해질 때 단 한 번 적립됩니다.

예시 요청 (PHP)

// 믹서 예시 (전체 출력, 마스킹되지 않은 주소)<?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: 주문에서 출력의 순번.
  • 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의 숫자 값 ( full 모드에서만 반환).

주문 삭제


기존 주문을 삭제하여 더 이상 API를 통해 액세스할 수 없도록 합니다. 삭제된 주문은 영구적으로 조회할 수 없습니다.

엔드포인트

POST/v1/orders/delete

요청 본문

  • trackcode(필수): 16자리 대문자 추적 코드.
  • type(선택): mixer | exchange. 생략 시 자동 감지됩니다.

응답

  • ok: 성공 시 true.
  • trackcode: 요청된 추적 코드의 에코.
  • type: 주문 유형 ( mixer 또는 exchange).
  • deleted: 주문이 삭제되었으면 true.

동작

  • 주문이 이미 삭제되었거나 찾을 수 없는 경우, API는 404 NOT_FOUND를 반환합니다.
  • 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: 잘못된 trackcode 또는 type.
  • NOT_FOUND: 주문을 찾을 수 없거나 이미 삭제됨.
  • UNAUTHORIZED / FORBIDDEN: API 키가 잘못되었거나 누락됨.
  • SERVER_ERROR: 내부 서버 오류.

서명 검증


디지털 서명된 페이로드(보증서 서명)를 검증합니다. 복호화에 성공하면 API는 관련 주문 세부 정보(믹서 또는 익스체인지)의 검증된 일부를 반환하여 클라이언트 측 확인 및 상태 표시용으로 사용할 수 있습니다.

엔드포인트

POST/v1/validate

요청 본문

  • signature(필수): 디지털 서명 블록, 원시 Base64 또는 BEGIN/END 라인 포함 형식.

응답

  • 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_tag
    • share_percent (문자열, 소수점 2자리)
    • delay_minutes (정수), delay_label (예: 2h 0m)
    • amount (문자열, 소수점 8자리)
  • outputs_count (정수)

동작

  • 제공된 디지털 서명은 시스템과 대조하여 검증됩니다.
  • 최근 주문(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": "디지털 서명이 필요합니다"
}
---
{
  "ok": false,
  "error": "INVALID_SIGNATURE",
  "message": "제공된 데이터가 유효한 Base64가 아니거나 너무 짧습니다"
}
---
{
  "ok": false,
  "error": "DECRYPTION_FAILED",
  "message": "복호화 실패. 제공된 서명이 유효한지 확인하고 다시 시도하세요."
}
---
{
  "ok": false,
  "error": "MISSING_TRACKCODE",
  "message": "서명 페이로드에 Trackcode가 필요합니다."
}
---
{
  "ok": false,
  "error": "NOT_FOUND",
  "message": "요청한 주문 세부 정보를 찾을 수 없습니다."
}

에러 코드

  • BAD_REQUEST: signature 누락 또는 잘못된 페이로드.
  • INVALID_SIGNATURE: 잘못된 Base64 또는 서명 블록이 너무 짧음.
  • DECRYPTION_FAILED: AES-GCM 복호화 실패.
  • INVALID_PAYLOAD: 복호화된 페이로드가 유효한 JSON이 아님.
  • MISSING_TRACKCODE: 페이로드에 track 필드가 없음.
  • NOT_FOUND: 최근 48시간 내 주문을 찾을 수 없음.
  • UNAUTHORIZED / FORBIDDEN: API 키가 잘못되었거나 누락됨.
  • SERVER_ERROR: 내부 서버 오류.

비고

  • 숫자 정밀도: waiting_balanceamount → 소수점 8자리 (문자열), share_percent → 소수점 2자리 (문자열), service_fee → 소수점 2자리 (문자열).
  • 지연: 사람이 읽을 수 있는 레이블( delay_label)과 기계가 읽을 수 있는 분 단위( delay_minutes) 모두 반환됩니다.

요청 제한


제한: 1000 요청 / 일 / API 키.