用途:该技能处理 Revolut X API 的认证设置,是所有其他 Revolut X 技能的前置依赖,适用于搭建 API 访问、配置密钥以及排查认证错误。
主要能力:生成 Ed25519 密钥对;配置 API key 与私钥环境变量;通过 scripts/revx_sign.py 对已认证请求签名;调试 401/403/409 认证错误。
用法:
- 生成密钥对:openssl genpkey -algorithm ed25519 -out private.pem,然后 openssl pkey -in private.pem -pubout -out public.pem,得到 private.pem 与 public.pem。
- 注册公钥:在 exchange.revolut.com -> Profile -> API Keys 粘贴 public.pem 完整内容(含 BEGIN/END 行),获取 64 字符 API key。
- 配置环境变量:export REVX_API_KEY='your-64-character-api-key',export REVX_PRIVATE_KEY='/path/to/private.pem'。
- 验证:python scripts/revx_sign.py GET /api/1.0/balances,返回余额 JSON 数组即成功。
请求签名:每次认证请求需三个头——X-Revx-API-Key、X-Revx-Timestamp(毫秒 Unix 时间戳)、X-Revx-Signature(Base64 编码的 Ed25519 签名)。待签消息为 {timestamp}{HTTP_METHOD}{/api/path}{query_string}{json_body},无分隔符。scripts/revx_sign.py 自动处理;手动实现见 references/signing-examples.md。所有端点采用路径版本 /api/1.0/,Base URL 为 https://revx.revolut.com/api/1.0。
错误处理:401 表示 API key 或签名无效,需核对密钥、私钥与注册公钥是否匹配、系统时钟是否准确;403 表示 IP 未加白名单或权限不足;409 表示时间戳偏差过大,需同步系统时钟。
限制与注意:私钥必须保密,切勿分享、提交或放入请求;时间戳必须为毫秒而非秒;签名中的 JSON body 需为紧凑格式(无空格);GET/DELETE 无 body 时签名中完全省略 body。配套技能包括 revolut-x-configuration、revolut-x-balance、revolut-x-orders、revolut-x-trades、revolut-x-market-data、revolut-x-public-market-data。费用、定价与平台范围等未提供。