必须创建带交易权限且禁用提币的API密钥,绑定IP白名单与设备,通过creds.yml安全注入并用Postman验证连通性、读取权、签名及时间同步。
币安(binance)官方认证入口:
点击获取官方APP☞☞☞☞☞:

要在Binance上启用程序化交易,必须先创建具备对应权限的API密钥,并将其安全绑定至运行环境,否则任何第三方工具或代码都无法访问账户数据或执行订单操作。
登录并进入API管理页面
手动在浏览器地址栏输入【www.binance.com】,切勿点击短信、邮件或社交平台转发的链接——仿冒网站会劫持密钥输入框并静默上传secret_key。
完成身份验证后,将鼠标悬停于右上角头像,在下拉菜单中确认存在【API管理】选项;若该选项缺失或文字异常(如显示“Api Setting”“Api Center”),立即关闭页面。
点击【API管理】,系统自动跳转至安全中心的API控制台,此时页面URL必须包含/binance.com/zh-CN/usercenter/api。
创建带交易权限的API密钥
方法一:标准创建流程
1、点击黄色【创建API】按钮→填写清晰用途标签(例如“网格策略-BTCUSDT”)→勾选【系统生成密钥】。
2、在权限区域,【必须取消勾选“允许提款”】,仅保留【读取账户信息】【下单】【撤单】【查询订单】四项;开通提币权限等于向任意服务器开放资产转移能力。
3、输入Google Authenticator动态码完成验证→弹窗显示access_key与secret_key。
4、【secret_key仅显示一次,关闭页面即永久丢失】,立即复制到离线文本文件,用记事本保存后移入加密U盘,切勿截图、发微信、存云笔记。
配置IP白名单并启用设备绑定
这一步决定密钥能否在目标服务器上真正调用接口。没有白名单,哪怕密钥正确也会返回401错误。
第一步:点击刚创建的密钥右侧【编辑】按钮。
第二步:在【IP白名单】栏填入运行程序的公网IPv4地址——若部署在阿里云ECS,登录控制台查“弹性公网IP”;若本地运行,打开浏览器访问https://api.ipify.org 获取当前出口IP。
第三步:勾选【启用IP白名单】→勾选【仅限本设备】→再次输入邮箱验证码+谷歌验证码→提交。
注意:留空IP白名单或填写0.0.0.0/0等同于公开密钥,币安后台会标红警告“高风险配置”,无法通过审核。
在Python项目中安全注入密钥
方法一:使用creds.yml非硬编码配置
1、在项目根目录新建creds.yml文件,内容严格按如下格式(冒号后必须有一个空格):
access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
secret_key: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
2、将creds.yml加入.gitignore,确保不会被git push上传至GitHub/GitLab。
3、运行脚本前,执行python helpers/handle_creds.py加载凭证,该脚本会校验字段是否存在、长度是否合规、是否含不可见字符。
验证API连通性与权限有效性
不用写一行代码,用Postman快速确认四件事:密钥有效、网络可达、签名机制正常、权限已生效。
① 测试基础连通:新建GET请求→URL填https://api.binance.com/api/v3/time→发送→返回{"serverTime":1717438560123}即成功。
② 测试读取权限:新建GET请求→URL填https://api.binance.com/api/v3/account→Headers添加X-MBX-APIKEY:你的access_key→发送→检查response中balances字段是否为数组而非空对象。
③ 测试签名逻辑:在Params中添加timestamp(值为当前毫秒时间戳,可用https://currentmillis.com/生成)→再计算HMAC-SHA256签名追加signature参数→若返回-1021,说明本地时间比服务器快/慢超60秒,需校准系统时钟。

















