使用Coinbase Prime API时POST请求报invalid api key但GET请求正常
解决Coinbase Prime POST创建钱包返回401 "invalid api key"的问题
针对你遇到的GET请求正常但POST /v1/portfolios/{PORTFOLIO_ID}/wallets返回401的情况,可从以下几个方向排查:
检查请求签名是否包含POST payload:Coinbase Prime的API签名要求对请求方法、路径、时间戳、请求体(POST/PUT时)进行组合哈希。很多时候GET请求只需要签名路径和参数,但POST如果没把JSON payload加入签名计算,就会触发鉴权失败。确保签名生成时完整包含了请求体的原始字符串(注意不要格式化JSON,要用原始的紧凑格式)。
确认API密钥的权限范围:部分API密钥可能仅配置了读权限(比如允许获取 portfolios),但没有创建钱包的写权限。登录Coinbase Prime后台,查看该密钥的权限设置,确认是否包含钱包创建相关的权限(如
wallet:create)。核对请求头的关键字段:
- 确保
CB-ACCESS-TIMESTAMP是当前UTC时间,与服务器时间差不超过30秒,时间偏差过大也会导致鉴权失败。 - POST请求必须设置
Content-Type: application/json头,否则服务器可能无法正确解析payload,间接引发鉴权问题。
- 确保
验证payload的合法性:虽然不带name字段会返回参数错误,但如果payload格式不符合要求(比如name不是字符串、存在多余字段),也可能导致服务器在鉴权环节出现异常。确保payload是标准JSON,例如:
{"name": "my-custom-wallet"}
内容的提问来源于stack exchange,提问作者hedgedandlevered
相关产品推荐
相关产品推荐

