凭证管理 credentials

安全地存储和管理交易平台的API凭证,支持多种平台,具备AES-256-GCM加密、用户隔离存储、冷却机制等安全特性,适用于量化金融和证券投资领域。

量化金融 0 次安装 0 次浏览 更新于 3/5/2026

凭证管理 - 完整的API参考

安全地存储和管理交易平台的API凭证,使用AES-256-GCM加密。


聊天命令

添加凭证

/creds add polymarket                       交互式设置
/creds add kalshi --key abc --secret xyz    直接设置
/creds add binance                          添加Binance API
/creds add hyperliquid                      添加钱包密钥

查看凭证

/creds list                                 列出配置的平台
/creds status                               加密系统状态
/creds test polymarket                      测试API连接
/creds check polymarket                     验证凭证是否有效

删除凭证

/creds remove polymarket                    移除平台凭证
/creds clear                                清除所有(小心!)

认证状态

/auth status                                整体认证状态
/auth refresh kalshi                        刷新令牌
/auth cooldown                              查看冷却状态

TypeScript API参考

创建凭证管理器

import { createCredentialsManager } from 'clodds/credentials';

const creds = createCredentialsManager({
  // 加密密钥(必需)
  encryptionKey: process.env.CREDENTIALS_KEY,

  // 存储后端
  storage: 'sqlite',  // 'sqlite' | 'postgres'
  dbPath: './credentials.db',

  // 冷却设置
  cooldownMinutes: 15,
  maxFailures: 3,
});

设置凭证

// Polymarket(API + 签名密钥)
await creds.setCredentials({
  userId: 'user-123',
  platform: 'polymarket',
  credentials: {
    apiKey: 'pk_...',
    apiSecret: 'sk_...',
    privateKey: '0x...',  // 用于订单签名
    funderAddress: '0x...',
  },
});

// Kalshi(API密钥)
await creds.setCredentials({
  userId: 'user-123',
  platform: 'kalshi',
  credentials: {
    email: 'user@example.com',
    apiKey: 'key_...',
  },
});

// Binance Futures
await creds.setCredentials({
  userId: 'user-123',
  platform: 'binance',
  credentials: {
    apiKey: 'abc...',
    apiSecret: 'xyz...',
  },
});

// Hyperliquid(钱包)
await creds.setCredentials({
  userId: 'user-123',
  platform: 'hyperliquid',
  credentials: {
    privateKey: '0x...',
    walletAddress: '0x...',
  },
});

获取凭证

// 获取特定平台的凭证
const polymarketCreds = await creds.getCredentials({
  userId: 'user-123',
  platform: 'polymarket',
});

if (polymarketCreds) {
  console.log(`API密钥:${polymarketCreds.apiKey}`);
  // 凭证在检索时解密
}

// 列出用户配置的平台
const platforms = await creds.listUserPlatforms('user-123');
console.log(`已配置:${platforms.join(', ')}`);

删除凭证

// 移除单个平台
await creds.deleteCredentials({
  userId: 'user-123',
  platform: 'kalshi',
});

// 移除用户的所有凭证
await creds.deleteAllCredentials('user-123');

测试凭证

// 测试API连接
const result = await creds.testCredentials({
  userId: 'user-123',
  platform: 'polymarket',
});

if (result.success) {
  console.log(`✓ 连接到${result.platform}`);
  console.log(`  余额:$${result.balance}`);
} else {
  console.log(`✗ 失败:${result.error}`);
}

冷却管理

// 标记失败的认证尝试
await creds.markFailure({
  userId: 'user-123',
  platform: 'kalshi',
  error: '无效的API密钥',
});

// 检查是否处于冷却状态
const inCooldown = await creds.isInCooldown({
  userId: 'user-123',
  platform: 'kalshi',
});

if (inCooldown) {
  const remaining = await creds.getCooldownRemaining({
    userId: 'user-123',
    platform: 'kalshi',
  });
  console.log(`冷却:剩余${remaining}分钟`);
}

// 标记成功的认证(重置失败次数)
await creds.markSuccess({
  userId: 'user-123',
  platform: 'kalshi',
});

构建交易上下文

// 准备使用交易上下文
const context = await creds.buildTradingContext({
  userId: 'user-123',
  platform: 'polymarket',
});

// 上下文包括经过身份验证的客户端
await context.client.getBalance();
await context.client.placeOrder({ ... });

支持的平台

平台 凭证要求
Polymarket API密钥,密钥,私钥,资助者地址
Kalshi 电子邮件,API密钥
Betfair 应用密钥,会话令牌
Smarkets API密钥
Binance API密钥,密钥
Bybit API密钥,密钥
Hyperliquid 私钥,钱包地址
MEXC API密钥,密钥

安全特性

特性 描述
AES-256-GCM 军用级静态加密
每用户密钥 隔离的凭证存储
冷却 限制失败尝试的速率
不记录日志 密钥从未记录
内存擦除 使用后从内存中清除凭证

环境变量

# 必需的加密密钥(生成方式:openssl rand -hex 32)
CREDENTIALS_KEY=your-64-char-hex-key

# 可选:每个平台的密钥
POLYMARKET_API_KEY=pk_...
POLYMARKET_API_SECRET=sk_...
POLYMARKET_PRIVATE_KEY=0x...
KALSHI_EMAIL=user@example.com
KALSHI_API_KEY=key_...

最佳实践

  1. 强加密密钥 — 使用 openssl rand -hex 32
  2. 定期轮换密钥 — 定期更新API密钥
  3. 添加后测试 — 总是验证凭证是否有效
  4. 最小权限 — 尽可能使用只读密钥
  5. 安全备份 — 保持加密备份离线