You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

CCXT连接Bybit测试网API认证失败求助(密钥无效)

解决Bybit测试网CCXT API密钥无效问题

针对你遇到的retCode:10003 API密钥无效错误,以下是具体排查和解决步骤:

1. 检查API密钥的权限与配置

  • 确认权限匹配:在Bybit测试网生成API时,必须勾选永续合约交易权限(对应代码里的defaultType: 'swap'),无对应权限会直接触发密钥无效提示。
  • 关闭/检查IP白名单:如果API设置了IP白名单,当前运行代码的设备IP不在列表内会导致认证失败。可以暂时关闭白名单测试,或把当前IP添加到白名单中。
  • 重新生成密钥:复制密钥时容易出现空格、漏字符等问题,建议重新生成测试网API密钥,手动复制粘贴(避免依赖剪贴板)。

2. 修正CCXT配置细节

  • 更新CCXT到最新版:旧版本CCXT对Bybit测试网的支持可能存在bug,执行命令更新:
    pip install --upgrade ccxt
    
  • 显式指定测试网端点:虽然代码中设置了testnet: True,但可以手动指定测试网URL确保连接正确:
    exchange = ccxt.bybit({
        'apiKey': apiKey,
        'secret': secret,
        'testnet': True,
        'options': {
            'defaultType': 'swap',
            'baseUrl': 'https://api-testnet.bybit.com'  # 强制指定测试网地址
        }
    })
    

3. 调试验证步骤

先测试公共端点确认网络连接正常,再验证私有端点:

import ccxt

apiKey = "你的测试网API密钥"
secret = "你的测试网密钥"

exchange = ccxt.bybit({
    'apiKey': apiKey,
    'secret': secret,
    'testnet': True,
    'options': {
        'defaultType': 'swap'
    }
})

# 测试公共端点(无需认证)
try:
    ticker = exchange.fetch_ticker('BTC/USDT:USDT')
    print(f"BTC/USDT 最新价: {ticker['last']}")
except Exception as e:
    print(f"公共端点连接错误: {e}")

# 测试私有端点
try:
    balance = exchange.fetch_balance()
    usdt = balance['USDT']['total']
    print(f"USDT余额: {usdt}")
except ccxt.AuthenticationError as e:
    print(f"认证错误: {e}")

内容的提问来源于stack exchange,提问作者fra bre

火山引擎 最新活动