前置条件
- agent 控制的 Base 上的 EVM 钱包(私钥保存在环境变量或密钥管理器中)。
- Base 上少量 ETH 用于 gas(质押需要两笔交易:
approve然后stake)。 - 任意非零数量的 VVV 用于质押。铸造端点仅要求钱包具备非零 sVVV 余额,因此 1 VVV 足以铸造密钥。请参阅为推理付费了解实际调用付费端点需要什么。
步骤
向 Venice 质押 VVV
将 VVV 质押到 Venice 质押智能合约 
当第二笔交易确认时,钱包的 VVV 余额减少,其 sVVV 余额相应增加。铸造端点读取 sVVV 余额以确认钱包已质押。
0x321b7ff75154472B18EDb199033fF4D116F340Ff。这需要两笔交易:- 在 VVV 代币上调用
approve(spender, amount),其中spender是质押合约。 - 在质押合约上调用
stake(amount)。

请求验证 token
调用 响应包含
GET /api/v1/api_keys/generate_web3_key 以获取由 Venice 签发的短期 token。此端点无需身份验证。token 字段。该 token 在签发 15 分钟后过期,因此请尽早签名并提交。用质押钱包签署 token
用持有质押 VVV 的钱包签署原始 token 字符串。这是对 token 字节的标准
personal_sign。ethers.Wallet.signMessage(token) 和 viem 的 account.signMessage({ message: token }) 都会产生正确的签名。端到端示例
下面的示例使用来自环境变量的真实钱包,而不是随机生成的钱包。随机钱包没有质押的 VVV,铸造将被Wallet has no staked VVV on Base 错误拒绝。
错误参考
端点返回具体、可操作的错误消息。在 agent 中映射这些错误,以便它可以决定是重试、请求新 token 还是停止。| 状态 | 错误消息包含 | 含义 | 应对方式 |
|---|---|---|---|
400 | Invalid wallet address | address 字段不是有效的 EVM 地址。 | 修正地址并重新提交。 |
400 | JWT has expired | 验证 token 在您签名并提交之前已过期。 | 请求新 token,签名并立即提交。 |
400 | JWT signature is invalid | 该 token 不是由 Venice 签发的(可能被篡改或伪造)。 | 始终使用 GET 端点返回的新鲜 token。 |
400 | JWT claims are invalid | token 的签发者或受众与 Venice 期望的不匹配。 | 使用 GET 端点返回的未修改 token。 |
400 | JWT is malformed | 提交的 token 不是 JWT。 | 确保发送 GET 端点返回的确切 token 字符串。 |
400 | Wallet signature does not match | 给定 token 的 signature 与 address 不匹配。 | 用拥有 address 的钱包签署原始 token 字节。 |
400 | Could not verify wallet signature | 验证签名的 RPC 调用失败(瞬态)。 | 退避后重试。 |
400 | Wallet has no staked VVV on Base | 钱包的 sVVV 余额为零。 | 先质押 VVV,然后重试。 |
为推理付费
铸造密钥与能够用它调用付费端点是两回事。新铸造的密钥可以正确认证,但在钱包的账户具有可花费余额之前,无法调用付费端点(如/chat/completions)。
铸造的密钥按以下优先顺序从用户账户花费:DIEM,然后是捆绑额度,然后是 USD。
| 资金来源 | 自主? | 方法 |
|---|---|---|
| 来自 VVV 质押的 DIEM | 是 | 钱包的每日 DIEM 分配与其在质押池中的份额成比例。账户需要至少 0.1 个质押 DIEM 才能让任何 DIEM 可花费。质押越多,按比例获得更多每日 DIEM,每个 epoch(00:00 UTC)刷新。 |
| 通过 Stripe 的 USD | 否(浏览器) | 使用相同的钱包登录 venice.ai(Sign-In-With-Ethereum)。仪表板会找到现有的用户记录。在 Settings、API 中添加额度。 |
| Coinbase 加密订阅 | 否(浏览器) | 相同的钱包登录,然后通过仪表板订阅。流程会重定向到 Coinbase Commerce 进行实际付款,因此无法通过脚本驱动。 |
| Coinbase onramp | 否(浏览器) | 相同的钱包登录,然后在仪表板中使用 onramp 小部件。托管在 Coinbase 的 UI 上。 |
- 质押更多 VVV,使每日 DIEM 分配覆盖 agent 的支出。铸造的密钥会自动接入。
- 使用 x402 钱包流程 代替 API 密钥。 通过 x402,agent 每个请求签署一个 Sign-In-With-X 消息,通过
POST /api/v1/x402/top-up在 Base 或 Solana 上直接用 USDC 充值,并按请求付费。x402 USDC 余额绑定到钱包,而非用户,因此它不会以余额形式出现在铸造的 Bearer 密钥下,但它确实让同一钱包以编程方式为推理付费。
相关资源
Crypto 与 Agents
将 Venice 同时用作自主 agent 的模型提供商和区块链 RPC 层。
x402 钱包身份验证
在 Base 或 Solana 上用 USDC 按请求付费,无需 API 密钥。
生成 Web3 API 密钥端点
铸造端点的端点参考。
标准 API 密钥指南
适用于希望通过仪表板铸造密钥的用户。