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

3
请求验证 token
调用 响应包含
GET /api/v1/api_keys/generate_web3_key 以获取由 Venice 签发的短期 token。此端点无需身份验证。token 字段。该 token 在签发 15 分钟后过期,因此请尽早签名并提交。4
用质押钱包签署 token
用持有质押 VVV 的钱包签署原始 token 字符串。这是对 token 字节的标准
personal_sign。ethers.Wallet.signMessage(token) 和 viem 的 account.signMessage({ message: token }) 都会产生正确的签名。5
铸造 API 密钥
将地址、签名和 token 以及您想要的密钥类型 必填字段:
POST 到同一端点。address、signature、token、apiKeyType(INFERENCE 或 ADMIN)。可选字段:description、expiresAt、consumptionLimit(限制此密钥的总支出,以 usd、vcu 或 diem 计)。成功时响应包含铸造的 apiKey 字符串。将其存储在 agent 的密钥存储中,并作为正常的 Bearer token(Authorization: Bearer <key>)使用。端到端示例
下面的示例使用来自环境变量的真实钱包,而不是随机生成的钱包。随机钱包没有质押的 VVV,铸造将被Wallet has no staked VVV on Base 错误拒绝。
错误参考
端点返回具体、可操作的错误消息。在 agent 中映射这些错误,以便它可以决定是重试、请求新 token 还是停止。为推理付费
铸造密钥与能够用它调用付费端点是两回事。新铸造的密钥可以正确认证,但在钱包的账户具有可花费余额之前,无法调用付费端点(如/chat/completions)。
铸造的密钥按以下优先顺序从用户账户花费:DIEM,然后是捆绑额度,然后是 USD。
如果 agent 需要完全 crypto 原生、无头的资金路径,最干净的选项是:
- 质押更多 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 密钥指南
适用于希望通过仪表板铸造密钥的用户。