crypto-com-app
Crypto.com APP APIを通じて、仮想通貨の売買・スワップ・交換などの取引を実行し、現金の入出金やアカウント残高・市場価格・取引履歴の照会を行います。週次取引限度額やポートフォリオのポジション、銀行口座、入金手順、法定通貨ウォレットの管理にも対応します。BTC・ETH・CROをはじめ200以上のトークンをサポートしており、ユーザーが仮想通貨の取引や資金の入出金、口座情報の確認などを行いたい場合に使用します。
description の原文を見る
Execute crypto trades (buy, sell, swap, exchange), manage cash deposits and withdrawals, and query account balances, market prices, and transaction history via the Crypto.com APP API. View weekly trading limits, portfolio positions, bank accounts, and payment networks. Use when the user wants to trade cryptocurrency, deposit or withdraw cash, check bank account details, view deposit instructions, or manage fiat wallet operations. Supports BTC, ETH, CRO, and 200+ tokens across fiat and crypto wallets.
SKILL.md 本文
Skill: crypto-com-app
Agent Capability Requirements
このスキルは、エージェント プラットフォームが以下の機能をサポートすることを必要とします。プラットフォームが必須機能に欠けている場合、このスキルは動作しません。
| 機能 | 必須 | 詳細 |
|---|---|---|
| シェルコマンド実行 | Yes | npx tsx ./scripts/... を実行し、stdout をキャプチャできる必要があります |
| 環境変数 | Yes | シェル環境から CDC_API_KEY と CDC_API_SECRET を読み込む必要があります |
| JSON パース | Yes | スクリプト stdout から構造化 JSON をパースし、フィールドを抽出する必要があります |
| マルチターン会話 | Yes | 取引は複数ユーザーターンにわたるクォート → 確認フローを使用します |
| 永続的メモリ | No | confirmation_required プリファレンスに使用されます。サポートされていない場合、常に取引を確認することがデフォルトです |
| 経過時間認識 | No | クォート失効(countdown フィールド)チェックに使用されます。サポートされていない場合、常に確認を試み、invalid_quotation エラーを適切に処理します |
重大: このスキルの仕組み
ALL API interactions は TypeScript スクリプトを使用する MUST です。curl、fetch、またはその他の HTTP メソッドで API を直接呼び出す決してしてください。
スクリプトはリクエスト署名、エラー処理、レスポンスフォーマットを処理します。バイパスした場合:
- リクエストが失敗します(HMAC 署名が欠落)
- レスポンスはフィルタリングまたは構造化されません
すべてのユーザーリクエストに対して、以下のマッチングコマンドを見つけ、npx tsx 経由で実行します。JSON 出力を読み込みます。それに作用します。
Configurations
- BASE_URL:
https://wapi.crypto.com - CDC_API_KEY:
{{env.CDC_API_KEY}} - CDC_API_SECRET:
{{env.CDC_API_SECRET}} - CONFIRMATION_REQUIRED:
{{memory.confirmation_required}}(Default: true) - SKILL_DIR: この
SKILL.mdファイルを含むディレクトリ。このファイルをロードしたパスから解決します(例:/home/user/skills/crypto-com-app/SKILL.mdを読み取った場合、SKILL_DIRは/home/user/skills/crypto-com-appです)。
Environment Setup
-
CDC_API_KEYとCDC_API_SECRETの両方を使用する前に環境変数として設定する必要があります。 -
スクリプトを実行する前に、以下を実行して両方の変数が設定されているかどうか確認します:
echo "CDC_API_KEY=${CDC_API_KEY:+set}" "CDC_API_SECRET=${CDC_API_SECRET:+set}"どちらかが
setの代わりに空を出力する場合、ユーザーに以下をプロンプトします:"API 認証情報が構成されていません。進む前にターミナルで設定してください:
export CDC_API_KEY="your-api-key" export CDC_API_SECRET="your-api-secret"API キーは https://help.crypto.com/en/articles/13843786-api-key-management で生成できます。 設定したら、お知らせください。"
その後、停止してユーザーが確認するまで待ちます。再試行する前に。
-
スクリプトが
MISSING_ENVエラーを返す場合、同じように扱います:ユーザーに変数を設定するようプロンプトし、待機します。
Script Commands
ALL API interactions はこれらのスクリプトを通す MUST です。 署名、実行、フィルタリング、エラーフォーマットを処理します。シェル経由で適切なコマンドを実行し、JSON 出力をパースします。
前提条件: npx tsx (Node.js 18 以上が必要; tsx は npx によって自動的にフェッチされます)。
重要: 下記のすべてのスクリプトパスは $SKILL_DIR をこのスキルのルートディレクトリのプレースホルダーとして使用します。この SKILL.md をロードしたパスから解決するか、スキルディレクトリに cd して ./scripts/... をパスとして使用します。どちらのアプローチでも機能します。
Account Commands
# ゼロでないバランスがフィルタされた (scope: fiat | crypto | all)
npx tsx $SKILL_DIR/scripts/account.ts balances [fiat|crypto|all]
# 単一トークン残高ルックアップ
npx tsx $SKILL_DIR/scripts/account.ts balance <SYMBOL>
# 週間取引制限
npx tsx $SKILL_DIR/scripts/account.ts trading-limit
# 取引タイプ用の資金提供されたソースウォレットを検索
npx tsx $SKILL_DIR/scripts/account.ts resolve-source <purchase|sale|exchange>
# キルスイッチ — API キーを失効させる
npx tsx $SKILL_DIR/scripts/account.ts revoke-key
Trade Commands
取引は2 ステップフローに従います:最初にクォーテーションを取得し、次にオーダーを確認します。
# ステップ 1 — クォーテーションを取得 (type: purchase | sale | exchange)
npx tsx $SKILL_DIR/scripts/trade.ts quote <type> '<json-params>'
# Returns: {"ok": true, "data": {"id": "<quotation-id>", "from_amount": {...}, "to_amount": {...}, "countdown": 15, ...}}
# ステップ 2 — オーダーを確認: ステップ 1 の data.id を <quotation-id> として渡す
npx tsx $SKILL_DIR/scripts/trade.ts confirm <type> <quotation-id>
# 最近のトランザクションを表示
npx tsx $SKILL_DIR/scripts/trade.ts history
ユーザーの意図を取引タイプにマップする方法:
| ユーザーが言う | 取引タイプ | From | To |
|---|---|---|---|
| "100 USD で CRO を買い" | purchase | USD (fiat) | CRO (crypto) |
| "0.1 BTC を売り" | sale | BTC (crypto) | USD (fiat) |
| "0.1 BTC を ETH にスワップ" | exchange | BTC (crypto) | ETH (crypto) |
取引タイプ別のクォーテーション JSON パラメーター:
| Type | JSON フィールド |
|---|---|
| purchase | {"from_currency":"USD","to_currency":"CRO","from_amount":"100"} または代わりに to_amount を使用 |
| sale | {"from_currency":"BTC","to_currency":"USD","from_amount":"0.1","fixed_side":"from"} |
| exchange | {"from_currency":"BTC","to_currency":"ETH","from_amount":"0.1","side":"buy"} |
例 — "100 USD で CRO を買い":
- 実行:
npx tsx $SKILL_DIR/scripts/trade.ts quote purchase '{"from_currency":"USD","to_currency":"CRO","from_amount":"100"}' - レスポンスから
data.id、data.from_amount、data.to_amount、data.countdownを読みます。 - 確認が必要な場合(デフォルト): ユーザーに「確認: 100 USD を X CRO に? {countdown}s 有効。進めるには 'YES' と返信してください。」とプロンプト します。
- ユーザーが YES と言った場合(countdown 内):
npx tsx $SKILL_DIR/scripts/trade.ts confirm purchase <data.id>
- ユーザーが YES と言った場合(countdown 内):
- 確認がオプトアウトされた場合(
memory.confirmation_requiredがfalseの場合): 聞くのをスキップし、すぐにnpx tsx $SKILL_DIR/scripts/trade.ts confirm purchase <data.id>を実行します。
オプトイン / オプトアウト: ユーザーは「確認を求めるのを止めて」と言って取引を自動実行することもできますし、「確認が必要」と言ってプロンプトを再度有効にすることもできます。下記のセクション 3 を参照してください。
Coin Discovery Commands
# コインを検索
npx tsx $SKILL_DIR/scripts/coins.ts search '{"keyword":"BTC","sort_by":"rank","sort_direction":"asc","native_currency":"USD","page_size":10}'
必須 JSON パラメーター:
| パラメーター | Type | 許可値 |
|---|---|---|
sort_by | string | rank、market_cap、alphabetical、volume、performance |
sort_direction | string | asc、desc |
native_currency | string | 大文字の通貨コード(例:USD) |
keyword | string | 検索文字列、1〜100 文字;コイン名とシンボルのみに一致します |
page_size | integer | 1 ページあたりの結果数 |
オプション: page_token — 次のページをフェッチするための不透明なトークン(下記のページネーション を参照)。
ページネーション: レスポンスには、has_more(ブール値)と next_page_token(文字列)を持つ pagination オブジェクトが含まれます。has_more が true の場合、次のリクエストで page_token として next_page_token を渡して、次のページをフェッチします。
コインあたりの主要レスポンスフィールド: rails_id(currency_id / currency と同一取引および アカウント API — これを使用して相互参照)、price_native、price_usd、percent_change_*_native(過去の時間枠にわたる価格パフォーマンス、例:percent_change_24h_native)。
Cash (Fiat) Commands
キャッシュコマンドは、入金、出金、および銀行口座管理を処理します。
# 現金概要 — バランス + 通貨ごとの利用可能な決済ネットワーク
npx tsx $SKILL_DIR/scripts/fiat.ts discover
# 通貨用の決済ネットワーク
npx tsx $SKILL_DIR/scripts/fiat.ts payment-networks <CURRENCY>
# 入金方法の詳細(銀行ルーティング情報)
npx tsx $SKILL_DIR/scripts/fiat.ts deposit-methods <CURRENCY> <DEPOSIT_METHOD>
# ユーザーに入金指示をメール送信
npx tsx $SKILL_DIR/scripts/fiat.ts email-deposit-info <CURRENCY> <VIBAN_TYPE>
# 出金の詳細(クォータ、手数料、最小)
npx tsx $SKILL_DIR/scripts/fiat.ts withdrawal-details <CURRENCY> <VIBAN_TYPE>
# 出金オーダーを作成(手数料 + 受け取り可能な金額を含むオーダーを返す)
npx tsx $SKILL_DIR/scripts/fiat.ts create-withdrawal-order '<json-params>'
# 出金を実行(TOTP 認証器コードを求めるプロンプトが表示される場合があります)
npx tsx $SKILL_DIR/scripts/fiat.ts create-withdrawal <ORDER_ID>
# リンク済み銀行口座をリスト
npx tsx $SKILL_DIR/scripts/fiat.ts bank-accounts [CURRENCY]
主要パラメーター:
| パラメーター | 説明 | 例 |
|---|---|---|
CURRENCY | 大文字の通貨コード | USD、EUR、GBP、AUD |
DEPOSIT_METHOD | payment-networks からのネットワーク ID | us_ach、sepa、uk_fps |
VIBAN_TYPE | 入金方法/出金ネットワークと同じ | us_ach、sepa、uk_fps |
出金オーダー JSON パラメーター:
| フィールド | 必須 | 説明 |
|---|---|---|
currency | Yes | 通貨コード(例:"USD") |
amount | Yes | 文字列としての金額(例:"500.00") |
viban_type | Yes | 決済ネットワーク(例:"us_ach") |
bank_account_id | No | 特定の銀行口座 ID |
例 — "USD をどのように入金しますか?":
- 実行:
npx tsx $SKILL_DIR/scripts/fiat.ts payment-networks USD data配列を読みます — 各エントリはdeposit_push_payment_networks(例:["us_ach", "us_wire_transfer"])を持ちます- 詳細については:
npx tsx $SKILL_DIR/scripts/fiat.ts deposit-methods USD us_ach data配列を読みます — ルーティング番号、アカウント番号などを含むbank_detailsが含まれます
例 — "ACH を経由して 500 USD を出金":
- 実行:
npx tsx $SKILL_DIR/scripts/fiat.ts withdrawal-details USD us_ach— クォータと手数料を確認 - 実行:
npx tsx $SKILL_DIR/scripts/fiat.ts create-withdrawal-order '{"currency":"USD","amount":"500","viban_type":"us_ach"}' - レスポンスから
data.id(オーダー ID)、data.fee、data.receivable_amountを読みます - ユーザーに確認: "ACH を経由して 500 USD を出金します。手数料:{fee}。受け取ります:{receivable_amount}。確認しますか?"
- YES の場合:
npx tsx $SKILL_DIR/scripts/fiat.ts create-withdrawal <order-id> - TOTP が必要な場合、スクリプトは stderr で 6 桁の認証器コードを求めるプロンプトが表示されます
Output Format
すべてのスクリプトは構造化 JSON を stdout に出力します:
成功:
{"ok": true, "data": { ... }}
エラー:
{"ok": false, "error": "ERROR_CODE", "error_message": "Human-readable message"}
Constraints
- 検証: 成功には、スクリプト出力で
ok: trueが必要です。 - 確認ウィンドウ: クォート有効性は、クォーテーション データの
countdownフィールドによって定義されます。 - 実行警告: オーダー確認が 5 秒以上かかる場合、通知してください:「オーダーが送信されましたが、予想より長くかかっています。'最近の取引を表示' で注文ステータスを確認してください」。
- レート制限:
- 1 分あたり最大 10 取引。
- 1 分あたり最大 100 API 呼び出し。
- HTTP 429(
RATE_LIMITEDエラー)の場合:再試行する前に 60 秒待ちます。ユーザーに通知: 「レート制限に達しました — もう一度試す前に 60 秒待ってください。」
Error Handling
すべてのスクリプトは構造化エラーを返します。error フィールドをパースして、適切なレスポンスを決定します。
Script Error Codes
これらは、スクリプトの JSON 出力の error 値です。失敗のどのカテゴリが発生したかを示しています。
| エラーコード | 意味 | エージェントレスポンス |
|---|---|---|
MISSING_ENV | CDC_API_KEY または CDC_API_SECRET が設定されていません | ユーザーにターミナル経由で環境変数を設定するよう指示します |
API_ERROR | API が非 200 を返したか、ok !== true | 報告: 「トランザクション失敗: {error_message}」 |
INVALID_ARGS | 不正なコマンドライン引数 | error_message から正しい使用法を表示 |
QUOTATION_FAILED | クォーテーション要求が API に拒否されました | error_message をユーザーに報告してください(下記の API エラーを参照) |
EXECUTION_FAILED | オーダー確認失敗 | 報告し、以下を提案: 「'最近の取引を表示' でオーダーステータスを確認してください」 |
API_KEY_NOT_FOUND | キーが既に失効しているか存在しません | 「API キーが見つかりません — 既に失効している可能性があります。」 |
RATE_LIMITED | リクエストが多すぎます(HTTP 429) | 「レート制限に達しました — 60 秒待ってからもう一度試してください。」 |
UNKNOWN | 予期しないエラー | 生の error_message を報告する |
ルール: 出力で ok が false の場合、現在の操作を停止し、上記のガイダンスを使用してエラーをユーザーに報告してください。失敗後、次のステップに進まないでください。
Common API Errors (Quick Reference)
これらは、QUOTATION_FAILED、EXECUTION_FAILED、または API_ERROR レスポンスの error_message の内側に表示される特定の API エラーコードです。API がリクエストを拒否した理由を示しています。
error | 意味 | リカバリ |
|---|---|---|
not_enough_balance | 残高不足 | 残高を確認し、取引金額を減らします |
invalid_currency | 通貨コードが認識されません | コイン検索で確認 |
invalid_quotation | クォート有効期限が切れているか既に使用済み | 新しいクォーテーションをリクエスト |
failed_to_create_quotation | クォーテーションエンジンエラー | しばらくしてから再試行 |
not_eligible_for_prime | Prime 特典の対象ではありません | Prime なしで続行 |
unauthorized | アカウントが取引に承認されていません | サポートに連絡 |
restricted_feature | 機能がアカウントで制限されています | error_message をユーザーに報告 |
existing_currency_order_error | 既存の注文が進行中です | 待つか既存のオーダーをキャンセル |
viban_purchase_not_enabled | フィアットから暗号への変換が有効になっていません | アカウント機能が利用できません |
crypto_viban_not_enabled | 暗号からフィアットへが有効になっていません | アカウント機能が利用できません |
bank_transfer_not_enabled | 銀行振込が有効になっていません | アカウント機能が利用できません |
missing_parameter | 必須パラメーターが欠落 | スクリプトバグ — 報告してください |
failed_to_create_transaction | トランザクション作成失敗 | 再試行またはサポートに連絡 |
key_not_active | API キーが失効しているか期限切れ | 新しい API キーを生成し、環境変数を更新 |
api_key_not_found | キーが存在しないか別のユーザーに属している | CDC_API_KEY に正しいキーが設定されていることを確認 |
totp_required | 出金に 2FA コードが必要 | スクリプトは自動的に処理 — ユーザーに認証器コードを求めるプロンプト |
withdrawal_limit_exceeded | 日次/月次クォータ超過 | withdrawal-details で制限を表示、金額を減らす |
invalid_bank_account | 銀行口座の対象ではありません | bank-accounts で有効な口座(status: completed)を確認 |
withdrawal_cooling_off | 最近、出金設定を変更しました | クーリングオフ期間を待つ、error_message をユーザーに報告 |
email_cooldown | 入金情報メールが多すぎます | クールダウン期間を待つ(エラーで表示)、後で再試行 |
動的エラー(制限超過、通貨無効化、クーリングオフなど)については、error と error_message をユーザーに直接報告します。詳細については、references/errors.md を参照してください。
Logic & Rules
1. Asset & Source Disambiguation
最初に取引タイプを決定します:
- Purchase — フィアット → 暗号
- Sale — 暗号 → フィアット
- Exchange — 暗号 → 暗号
次にソースウォレットを解決します:
- purchase の場合:
npx tsx $SKILL_DIR/scripts/account.ts resolve-source purchaseを実行します。スクリプトは資金提供されたフィアットエントリのみを返します。 - sale または exchange の場合:
npx tsx $SKILL_DIR/scripts/account.ts resolve-source sale(またはexchange)を実行します。スクリプトは資金提供された暗号エントリのみを返します。
結果(data.status から):
SELECTED→data.currencyを自動選択します。AMBIGUOUS→ ユーザーにdata.optionsから選択するように求めます。EMPTY→ ユーザーに「資金提供されたウォレットが見つかりません」と通知し、停止します。
「すべてを売却」シナリオ: ユーザーが「[TOKEN] をすべて売却」と言う場合、npx tsx $SKILL_DIR/scripts/account.ts balance [TOKEN] を実行します。data.available 金額(または data.balance)をクォーテーションの from_amount として使用します。
2. Trading Process (Quotation → Confirmation → Execution)
ユーザーが暗号資産を購入、売却、またはスワップするように求めたときは、常にこの 3 ステップフローに従います:
-
ステップ A — クォーテーション取得: ユーザーのリクエスト(取引コマンドの「クォーテーション JSON パラメーター」テーブルを参照)から JSON パラメーターを構築し、実行します:
npx tsx $SKILL_DIR/scripts/trade.ts quote <type> '<json-params>'レスポンスからdata.id、data.from_amount、data.to_amount、data.countdownを読みます。 -
ステップ B — ユーザーに確認を求める:
- IF
memory.confirmation_requiredがtrueの場合(またはセット解除):- プロンプト: 「確認: {from_amount} を {to_amount} に? {countdown}s 有効。続行するには 'YES' と返信してください。」
- 有効期限ロジック: ユーザーが
countdown秒経過後に「YES」と返信した場合、拒否します:「トランザクション拒否:クォーテーションレートの有効期限が切れています。新しいクォートをリクエストしてください。」 - ユーザーが有効なウィンドウ内で「YES」と返信した場合のみ、ステップ C を実行します。
- ELSE(オプトアウト):
- 通知: 「クォーテーションを受け取りました。自動的に実行を進めています...」
- すぐにステップ C に進みます。
- IF
-
ステップ C — オーダーを実行: 実行します:
npx tsx $SKILL_DIR/scripts/trade.ts confirm <type> <data.id>ステップ A からのidを使用します。
3. Memory Management (Opt-in/Out)
- オプトアウト: ユーザーが「確認を求めるのを止めて」または「自動取引を有効にして」と言う場合、
memory.confirmation_requiredをfalseに更新します。 - オプトイン: ユーザーが「確認が必要」または「手動取引を有効にして」と言う場合、
memory.confirmation_requiredをtrueに更新します。 - 永続的メモリをサポートしないプラットフォーム: プラットフォームが
{{memory.*}}をサポートしていない場合、confirmation_requiredを常にtrueとして扱います(最も安全なデフォルト)。
4. Error Handling
- すべてのスクリプト出力は
okフィールドを含みます。成功はok: trueのみとして定義されます。 okがfalseの場合、errorを読み、上記のエラー処理テーブルに従って対応します。- 失敗したコマンド後、次のステップに進まないでください。
5. Account & History
- 履歴:
npx tsx $SKILL_DIR/scripts/trade.ts historyを実行 —dataからエントリを表示します。 - 週間取引制限:
npx tsx $SKILL_DIR/scripts/account.ts trading-limitを実行 — 「📊 週間取引制限: {data.used} / {data.limit} USD(残り: {data.remaining} USD)」として表示します。 - フィアット対暗号残高ルーティング: ユーザーが特定の通貨残高を尋ねる場合、それがフィアット通貨(USD、EUR、GBP、AUD、SGD、CAD、BRL など)か暗号トークン(BTC、ETH、CRO など)かを判定します。
- フィアット通貨 →
npx tsx $SKILL_DIR/scripts/account.ts balances fiat(すべてのフィアット残高を表示)またはnpx tsx $SKILL_DIR/scripts/fiat.ts discover(残高 + 決済ネットワークを表示)を実行します。フィアット通貨にbalance <SYMBOL>を使用しないでください — 暗号ウォレットをクエリし、常に 0 を返します。 - 暗号トークン →
npx tsx $SKILL_DIR/scripts/account.ts balance <SYMBOL>を実行します。 - 確実でない →
npx tsx $SKILL_DIR/scripts/account.ts balances allを実行して、フィアットと暗号の両方を表示します。
- フィアット通貨 →
- バランス(カテゴリ化):
- 「フィアットをリスト」の場合:
npx tsx $SKILL_DIR/scripts/account.ts balances fiatを実行します。 - 「暗号をリスト」の場合:
npx tsx $SKILL_DIR/scripts/account.ts balances cryptoを実行します。 - 「すべてをリスト」の場合:
npx tsx $SKILL_DIR/scripts/account.ts balances allを実行します。重大: フィアットカテゴリを最初に表示し、その後に暗号バランスを表示します。 - スクリプトは自動的にゼロバランスエントリをフィルタリングします。カテゴリの出力にエントリがない場合、そのヘッダーの下に「保有なし」を表示します。
- 暗号バランス(
data.crypto)には、noteフィールド(「取引可能」)とwallets配列が含まれます。これらの金額は取引可能なものであることを常にユーザーに明確にしてください — すべての製品全体での総保有量はより高い可能性があります。 - ポートフォリオ配分: 暗号バランスがクエリされる場合、出力には
portfolio_allocation配列が含まれる可能性があります — 各エントリは製品nameとprice_native(USD 値)を持ちます。これをユーザーの資産分布の概要として製品全体(例:Crypto Wallet、Exchange、Earn、Staking など)で表示します。 - 単一トークンバランス(
balance <SYMBOL>)出力には、product_allocationオブジェクトが含まれる可能性があります — キーは製品名(例:crypto_earn、staking、supercharger、crypto_basket、airdrop_arena)で、値はそれぞれで保有されるトークン量です。ゼロでない製品のみが含まれます。ユーザーにこれらの配分を要約し、取引可能な金額とともに表示して、トークンがどこに保有されているかの全体像を見てもらいます。
- 「フィアットをリスト」の場合:
6. Kill Switch
- トリガー: ユーザーが「すべての取引を停止」、「キルスイッチ」、または同様の緊急停止コマンドを言います。
memory.confirmation_requiredに関係なく、常に明示的な確認を要求します:- プロンプト: 「⚠️ 警告: これは直ちに API キーを失効させ、すべての取引を無効化します。再開するには新しい API キーを生成する必要があります。続行するには 「CONFIRM KILL SWITCH」と入力してください。」
- ユーザーが正確なフレーズで返信した場合のみ、実行します。
- 実行:
npx tsx $SKILL_DIR/scripts/account.ts revoke-keyを実行します。 - 成功時(
ok: true): 通知: 「🛑 キルスイッチが有効化されました。API キーが失効しました。すべての取引が無効化されました。新しい API キーを生成し、環境変数を更新して再開してください。」 API_KEY_NOT_FOUNDエラー時: 通知: 「API キーが見つかりません — 既に失効しているか存在しない可能性があります。」- べき等性: 既に失効したキーを失効させることはエラーではありません。成功した失効と同じように扱います。
7. Balance Display Format
- フィアットヘッダー: 「🏦 フィアット残高」
- 暗号ヘッダー: 「🪙 暗号残高」
- 両方がリクエストされた場合、常にフィアットセクションを暗号セクション前に一覧表示します。
- ゼロバランスアセットを表示しないでください。 残高が 0 より大きいアセットのみを表示します。カテゴリ内のすべてのアセットがゼロの場合、そのヘッダーの下に「保有なし」を表示します。
8. Cash Deposit & Withdrawal
用語: ユーザー向けメッセージで「フィアット」ではなく「現金」を使用してください。「現金残高」と言いますが、「フィアット残高」ではありません。
通貨の曖昧性排除: ユーザーが通貨を指定していない場合、最初に discover を実行します。
- 残高がある 1 つの通貨 → それを自動選択し、進めます。
- 残高がある複数の通貨 → リストを提示し、続行する前にユーザーに選択するよう求めます。
- 残高がない → 「まだ現金残高がありません。」と通知し、停止します。
入金フロー:
discoverを実行して、ユーザーに現金通貨と利用可能なネットワークを表示します- ユーザーが通貨とネットワークを選択 —
deposit-methodsを実行して銀行詳細を取得 - 銀行詳細(ルーティング番号、口座番号、銀行名、参照)を提示
- 必要に応じて
email-deposit-infoを実行してユーザーに指示をメール送信 - レート制限:
email-deposit-infoは 30 分ごとに 5 リクエストに制限されています。クールダウンエラーの場合、ユーザーに通知し、cooldown_in_seconds値を表示します。
出金フロー:
bank-accounts <currency>を実行して、適格なアカウント(status: "completed"のみフィルタ)をリスト- 適格アカウント 1 つ → それを自動選択
- 複数の適格アカウント → リスト(銀行名、口座識別子、ネットワーク)を提示し、ユーザーに選択するよう求めます
- 適格アカウントなし → 「{currency} 用の適格銀行口座が見つかりません。最初に銀行口座をリンクする必要があります。」と通知し、停止します
withdrawal-detailsを実行してクォータ、手数料、最小を確認- ステップ 1 の
bank_account_idを持つ金額、ネットワーク、bank_account_id、create-withdrawal-orderを実行 — 手数料を含むオーダーを返します - 実行前にユーザーに常に確認(
memory.confirmation_requiredに関係なく):- 表示:金額、手数料、受け取り可能な金額、ネットワーク、宛先銀行口座、処理時間
- 続行するには明示的な「YES」が必要です
- オーダー ID を持つ
create-withdrawalを実行 - TOTP 処理: API が
totp_requiredを返す場合、スクリプトは stderr で 6 桁の認証器コードをプロンプトします。エージェントはユーザーに以下を指示する必要があります:「プロンプトが表示されたら、6 桁の認証器コードを入力してください。」TOTP を生成したり、バイパスしたりしないでください。
銀行口座:
bank-accountsを実行してリンク済みアカウントをリスト。指定されている場合は通貨でフィルタ。status: "completed"のアカウントのみが出金の対象です。- 各アカウントは
withdrawal_payment_networksを表示 — これらを有効なviban_type値として使用します。
入金方法 — ベンダー選択:
deposit-methodsはvendor_list配列を返します。各ベンダーはstatusフィールドを持ちます。status: "created"(アクティブ)のベンダーのみを表示します。"uncreated"ベンダーを無視します。- 複数の作成されたベンダーが存在する場合、リストの最初のものをデフォルトにします。
現金コマンドクイックリファレンス:
| ユーザーが言う | 実行するコマンド |
|---|---|
| "USD をどのように入金しますか?" | payment-networks USD その後 deposit-methods USD <network> |
| "入金指示をメール送信してください" | email-deposit-info <currency> <viban_type> |
| "銀行口座を表示してください" | bank-accounts |
| "出金制限は何ですか?" | withdrawal-details <currency> <viban_type> |
| "500 USD を出金" | withdrawal-details -> create-withdrawal-order -> 確認 -> create-withdrawal |
| "入金できる通貨は何ですか?" | discover |
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- crypto-com
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/crypto-com/crypto-agent-trading / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。