イントロダクション
SecretCryptos API は、安全でシンプルかつ一貫したアクセスを ミキサー と エクスチェンジ サービスに提供します。この「ライト」ドキュメントは、すぐに使い始められるように主要なエンドポイントに焦点を当てています。
ベースURL: https://api.secretcryptos.com/v1
例: GET /v1/ping – 試す
また、ライブのルートページはこちらで確認できます api.secretcryptos.com.
その他のリンク:リンク集・API ドキュメント(Swagger UI)・GitHub 組織。
認証
- ヘッダー:
Authorization: Bearer YOUR_API_KEY - すべてのリクエストは HTTPS を使用する必要があります。
APIキーの取得
- アカウントを作成するか、パートナー にログインしてください。
- 上部メニューを開き、API タブをクリックします。
- API-KEY をコピーします(秘密にしてください。ミキサー と エクスチェンジ の両方で使用できます)。
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 エポック(秒単位)。- 認証不要。
ミキサー
Mixer API を使えば、プログラムからプライバシー保護された取引を作成できます。コイン、ネットワーク、金額、さらに1つ以上の出力アドレス(配分割合やオプションの遅延付き)を指定します。入金アドレスが割り当てられ、手数料と出力を含む完全なプランが返されるので、受領、支払い、またはエスクローのフローを自動化できます。
- 利用例:安全な支払い受付、自動収益分配、複数ウォレットへの送金、遅延支払い。
- 注文を作成する前に、
/v1/meta/mixerで制限と手数料を確認してください。 - 金額フィールドは特に記載がない限り コイン単位 です。
- すべてのタイムスタンプは Unix エポック秒(サーバータイムゾーン:GMT-3)。
ミキサー / 注文作成
新しいミキサー注文を作成します。コイン、ネットワーク、金額、および1つ以上の出力アドレス(割合と遅延付き)を指定します。システムは入金アドレスを割り当て、手数料や出力プランを含む注文詳細を返します。
バリデーションルール
amount: コイン固有のmin_amount~max_amount(/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 legacy/SegWit、ERC-200x…、TRC-20T…、SOLなど)。destination_tag / memo: 任意。ただし一部のネットワーク(例: XRPタグ、TONメモ)では必須。
補足
expires_at: 入金アドレスの有効期限(epoch秒)。outputs[i].time: 計画された出力時間(delay_minutesに基づく epoch秒)。- テスト時に人間が読みやすいJSONを得るには
?pretty=1を使用してください。 - レート制限: APIキーごとのデフォルト日次制限。上位プランあり(「レート制限」参照)。
一般的なエラー
{
"ok": false,
"code": "BAD_REQUEST",
"message": "Sum of percents must be exactly 100.00"
}
BAD_REQUEST: 不正なリクエスト本文、アドレス形式の誤り、割合が2桁でない、手数料が範囲外、遅延が48h超など。AMOUNT_TOO_LOW / AMOUNT_TOO_HIGH: コインごとの最小/最大制限に違反。SERVICE_UNAVAILABLE: 指定ネットワークで利用可能な入金アドレスなし。TOO_MANY_REQUESTS: 日次API制限に到達。UNAUTHORIZED / FORBIDDEN: APIキーが無効または停止中。
ヘッダー
Authorization: Bearer YOUR_API_KEYContent-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: XRP および TON ネットワークでは必須。それ以外は省略可能(例:"")。
amount: 転送する総額(コイン単位)。小数点にはドットを使用してください(例:10.00000000)。crypto/network: コインとブロックチェーンネットワーク(例:btc/btc= ビットコイン)。partner: 任意(推奨)。PARTNER KEY は パートナー のAPIタブで取得できます(API-KEYと併用可能)。利用すると サービス手数料の30% を獲得できます。service_fee: 任意の手数料上書き(%)。省略時はシステム既定値を使用。指定する場合は 0.1 ~ 5 の範囲。qrcode: 任意。1の場合deposit.qr_codeにBase64データURLを返す。0または省略時はQRコードなし。destination_tag: XRP および TON ネットワークでは必須。それ以外は省略または空文字 ("")。
QRコードの使い方
qrcode が 1 の場合、レスポンスに deposit.qr_code フィールドでBase64エンコードされた画像が含まれます。これは完全に機能するQRコードで、フロントエンドに画像として埋め込み、ユーザーがウォレットアプリでスキャンできます。以下はウェブページで表示する例です:
<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: 資金の分配計画(遅延付き)。timeおよびexpires_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エポック秒(サーバータイムゾーン GMT-3)。
交換 (エクスチェンジ) / 注文作成
新しいエクスチェンジ注文を作成します。from_* 側(コイン / ネットワーク / 金額)と to_* 側の宛先 to_address を指定してください。from_network 上の入金アドレス、見積もり、計画された出力を返します。
検証ルール
amount: USD換算値(amount × from_coin価格)が、ペア固有のmin_usd/max_usd(/v1/meta/exchange)の範囲内である必要があります。address format: 選択したto_networkと一致する必要があります(例: ERC-200x…, TRC-20T…, 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%)。
- 小数点以下2桁まで(例:
注意事項
quote.final_usd= (amount × from価格) × (1 − fee%)。quote.to.estimated_receive=final_usd÷ to_coin の価格。receive.delay_label: スワップ送信前の予定遅延(デフォルト0h 10m)。expires_at: 割り当てられたアドレスの入金受付時間。- テスト中に
?pretty=1を使用すると整形されたJSONが返されます。
ヘッダー
Authorization: Bearer YOUR_API_KEYContent-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: ステータス確認用の一意の注文ID。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コードの使用方法
qrcode を Create で 1 に設定すると、レスポンスに deposit.qr_code フィールドで Base64 エンコードされたQRが含まれます。これを <img> として埋め込み、ユーザーが入金アドレスをスキャンできるようにします。
<img src="data:image/png;base64,..." alt="スキャンして支払う" />
価格情報
サポートされている暗号通貨の最新市場価格を USD で取得します。複数のシンボルを一度に問い合わせるには、カンマで区切ってください。
エンドポイント
クエリパラメータ
symbols(任意): コインシンボルのカンマ区切りリスト(例:BTC,ETH,USDT)。省略した場合、サポートされているすべてのコインが返されます。
レスポンス
ok: リクエストが成功した場合はtrue。base: 常にUSD。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: 無効なsymbolsフォーマット。UNAUTHORIZED / FORBIDDEN: APIキーが無効または不足。SERVER_ERROR: 内部サーバー / データベースエラー。
注意事項
- サポートされていないティッカーは
pricesオブジェクトから単純に省略されます。 - 数値は精度を保つために文字列として返されます。
注文状況
単一のエンドポイントを使用して、ミキサー と エクスチェンジ の両方の注文ステータスを確認できます。注文タイプを明示的に設定することも(mixer / exchange)、APIに自動検出させることもできます。
エンドポイント
リクエストボディ
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: 1日のリクエスト上限を超過。SERVER_ERROR: サーバーで予期しないエラー。
mask_addresses:mask_addressesによって制御(デフォルト:true)。delay_seconds:delay_labelの数値表現(fullモードでのみ返される)。
注文削除
既存の注文を削除し、API経由でアクセスできなくします。一度削除されると、その注文は以後永続的に利用不可能になります。
エンドポイント
リクエストボディ
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 は関連する注文情報(ミキサーまたはエクスチェンジ)の検証済みサブセットを返し、クライアント側での確認やステータス表示に使用できます。
エンドポイント
リクエスト本文
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_tagshare_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": "署名ペイロードにトラックコードが必要です。"
}
---
{
"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_balanceとamount→ 小数点以下8桁 (文字列)、share_percent→ 小数点以下2桁 (文字列)、service_fee→ 小数点以下2桁 (文字列)。 - 遅延:
delay_label(人間向けラベル)とdelay_minutes(機械可読な分数)の両方が返されます。