mcpField
B
binance-auth

binance-auth

github.com/ticruz38セキュリティ046 回インストール37 週間前に更新
リポジトリ

binance-auth について

binance-authは、Binance APIの認証情報を管理し、アカウントへのアクセスを確認するスキルです。暗号化保存に加え、本番環境とtestnetのプロファイル、権限・接続・残高の確認に対応します。

主な機能

  1. 01API認証情報の暗号化保存
  2. 02本番環境とtestnetのプロファイル
  3. 03権限と接続の確認
  4. 04アカウント残高の照会
  5. 05複数アカウントの管理

活用シーン

  1. 01複数のBinanceアカウント情報を保存
  2. 02APIキーの取引権限を確認
  3. 03アカウントの接続状態と残高を検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ticruz38/skills --skill binance-auth

インストール後、Claude Code で/binance-authを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
package-lock.json
package.json
tsconfig.json
src/
cli.ts
index.ts

詳細

Binance Auth Skill

Binance 暗号資産取引所 API 用の認証スキルです。安全な API キーの保存と管理のために auth-provider を基盤として構築されています。Binance の本番環境とテストネット環境の両方に対応しています。

特長

  • 安全な API キーの保存:API キーとシークレットを暗号化して保存します
  • 環境の切り替え:本番環境とテストネットをシームレスに切り替えます
  • 権限の検証:API キーの権限(spot、margin、futures)を確認します
  • ヘルスチェック:API 接続とキーの状態を検証します
  • 複数プロフィール:複数の Binance アカウントに対応します
  • 残高の照会:ヘルスチェックの一環としてアカウント残高を確認します

インストール

npm install
npm run build

環境変数

環境変数は必要ありません。API キーは CLI を使ってプロフィールごとに設定します。

CLI の使用方法

ステータスの表示
node dist/cli.js status
API キーの接続
# Production environment
node dist/cli.js connect prod \
  --key YOUR_API_KEY \
  --secret YOUR_API_SECRET \
  --env production

# Testnet environment
node dist/cli.js connect test \
  --key YOUR_API_KEY \
  --secret YOUR_API_SECRET \
  --env testnet
ヘルスチェック
# Check specific profile
node dist/cli.js health prod

# Check all profiles
node dist/cli.js health
プロフィールの一覧表示
node dist/cli.js list
残高の取得
node dist/cli.js balance prod
権限の検証
node dist/cli.js validate prod
接続解除
node dist/cli.js disconnect prod

JavaScript/TypeScript API

クライアントの初期化
import { BinanceAuthClient, getBinanceAuth } from '@openclaw/binance-auth';

// Create client for specific profile
const binance = new BinanceAuthClient('prod');

// Or use singleton
const binance = getBinanceAuth('prod');
API キーの接続
const result = await binance.connect({
  apiKey: 'your-api-key',
  apiSecret: 'your-api-secret',
  environment: 'production', // or 'testnet'
});

if (result.success) {
  console.log('Connected! Permissions:', result.permissions);
}
接続の確認
const isConnected = await binance.isConnected();
console.log('Connected:', isConnected);
API 認証情報の取得
const credentials = await binance.getCredentials();
if (credentials) {
  console.log('API Key:', credentials.apiKey);
  console.log('Environment:', credentials.environment);
}
ヘルスチェック
const health = await binance.healthCheck();
console.log('Status:', health.status); // 'healthy' | 'unhealthy'
console.log('Message:', health.message);
アカウント残高の取得
const balance = await binance.getBalance();
if (balance) {
  console.log('Total BTC:', balance.totalBTC);
  console.log('Balances:', balance.balances);
  console.log('Permissions:', balance.permissions);
}
権限の検証
const validation = await binance.validatePermissions();
console.log('Valid:', validation.valid);
console.log('Can Trade:', validation.canTrade);
console.log('Can Withdraw:', validation.canWithdraw);
console.log('Permissions:', validation.permissions);
接続解除
const disconnected = await binance.disconnect();
console.log('Disconnected:', disconnected);

API 権限

Binance API キーには、次の権限を設定できます。

  • SPOT - 現物取引
  • MARGIN - マージン取引
  • FUTURES - 先物取引
  • DELIVERY - コイン担保先物
  • PERM - 永続 API キー
  • IP_RESTRICTED - IP 制限付きアクセス

環境

本番環境
  • API ベース URL:https://api.binance.com
  • 実資金による実取引
  • Binance アカウントの認証が必要です
テストネット
  • API ベース URL:https://testnet.binance.vision
  • テスト資金によるペーパートレード
  • 無料のテストネット登録先:https://testnet.binance.vision/

保存場所

認証情報は auth-provider データベースに保存されます:

~/.openclaw/skills/auth-provider/credentials.db

API キーは AES-256 で暗号化されます。

TypeScript の型

interface BinanceCredentials {
  apiKey: string;
  apiSecret: string;
  environment: 'production' | 'testnet';
  permissions?: string[];
}

interface BinanceConnectionResult {
  success: boolean;
  permissions?: string[];
  canTrade?: boolean;
  canWithdraw?: boolean;
  error?: string;
}

interface BinanceBalance {
  totalBTC: string;
  balances: Array<{
    asset: string;
    free: string;
    locked: string;
  }>;
  permissions: string[];
}

interface BinanceValidationResult {
  valid: boolean;
  permissions: string[];
  canTrade: boolean;
  canWithdraw: boolean;
}

エラー処理

try {
  await binance.connect({ apiKey, apiSecret, environment: 'production' });
} catch (error) {
  if (error.message.includes('Invalid API key')) {
    // API key format is invalid
  } else if (error.message.includes('API key validation failed')) {
    // Key rejected by Binance
  }
}

セキュリティに関する注意事項

  • API シークレットは保存後に公開されることはありません
  • すべての API 呼び出しで HMAC-SHA256 署名を使用します
  • データベースファイルの権限は 0600(ユーザーのみ読み書き可能)です
  • セキュリティを強化するため、Binance API キーに IP 制限を設定してください
  • API 認証情報をバージョン管理にコミットしないでください

テスト

# Type checking
npm run typecheck

# Build
npm run build

# Run CLI
npm run cli -- status

依存関係

  • @openclaw/auth-provider - 認証情報を安全に保存します
  • HMAC-SHA256 署名に crypto モジュールを使用します

コメント