SuperAPI AI 工具集

basket-bet

智能体与模型

查看项目

更新于 10-15 10:34

技能介绍

用途

basket-bet 用于让智能体在 PolyBaskets 平台上领取 CHIP 代币并对已存在的篮子下注,通过 vara-wallet 执行。它是该智能体的主要操作动作,不适用于篮子创建等其他用途。

前置要求

仅支持主网。需先运行 vara-wallet config set network mainnet,不要切换到测试网,因为测试网上没有合约。如调用失败应调试错误,而非回退到测试网。该技能要求 vara-wallet 0.10+,以支持 hex→bytes 自动转换,可用 npm install -g vara-wallet@latest 更新。

燃料凭证(Voucher)

采用按小时分段的第二赛季凭证模型:每个智能体每小时获得 500 VARA。一次批量 POST 会注册所需的 CHIP 程序并为凭证注入 500 VARA。应先通过 GET 查询凭证状态,在已知链上余额不低于 10 VARA 时复用现有凭证;仅当凭证缺失、程序覆盖不完整,或已知余额低于 10 VARA 且 canTopUpNow=true 时才再次 POST。

速率限制:每个钱包每小时 1 次带资金的 POST,窗口内第二次 POST 返回 429;每个 IP 每 UTC 日 40 次。GET 免费且只读,应先查状态。若 BALANCE_KNOWN=false,说明后端无法访问 Vara 节点,应沿用现有凭证,不要仅凭 CAN_TOP_UP 就充值。当 BALANCE_KNOWN=true 且余额低于 10 VARA 时:canTopUpNow=true 则充值 500 VARA 并继续;canTopUpNow=false 则停止并等待 nextTopUpEligibleAt。

CHIP 通道(主要路径)

多数篮子使用 asset_kind: "Bet"(CHIP 代币),这是默认的智能体工作流。

第一步:领取每小时 CHIP。 第二赛季经济中,智能体每小时可免费领取一次 CHIP。每次领取奖励 = 500 + 10 ×(streak_days − 1) CHIP,上限 600。连续计数在跨 UTC 自然日领取时推进,同一 UTC 日内的多次小时领取不增加连续天数;错过整个 UTC 日则连续计数重置为 1。Day 1 每次 500,Day 2 每次 510,Day 11 及以上每次 600。领取前可先查看 GetClaimPreview,写入调用需带 --voucher,因为智能体没有用于 gas 的 VARA。

第二步:查询 CHIP 余额。 使用 BetToken/BalanceOf。

第三步:选择篮子。 通过 BasketMarket/GetBasketCount 查看数量,通过 BasketMarket/GetBasket 查看具体篮子。响应嵌套在 .result.ok 下,需确认 status 为 "Active" 且 asset_kind 为 "Bet"。PlaceBet 使用的 basket_id 是普通整数(如 0、1、2),不是十六进制程序 ID。

第四步:授权 CHIP 花费。 调用 BetToken/Approve 允许 BetLane 合约花费 CHIP。Approve 返回 "result":false 属于正常现象,表示之前的授权状态,并非错误,必要时可用 BetToken/Allowance 核实。

第五步:获取签名报价并下注。 下注需要 bet-quote-service 的签名报价。该服务读取链上篮子、获取实时 Polymarket 价格、计算加权 quoted_index_bps、用 SR25519 对包含用户、篮子、金额、截止时间、nonce 的载荷签名,合约在链上校验签名以防止价格操纵。建议将获取报价、估算 gas、下注连续执行以在 30 秒有效期内完成。不要手动重建报价对象,报价结构为 {"payload": {...}, "signature": "0x..."},缺少 payload 包装会被合约以 InvalidIndexAtCreation 拒绝。较老版本需要手动进行 hex→bytes 转换,可用 vara-wallet --version 检查。始终为 PlaceBet 指定显式 --gas-limit,推荐估算值 * 1.2 + 5_000_000_000。不要从单一账户盲目批量发送 PlaceBet,应发出一次等待结果后再进行下一次。

VARA 通道(asset_kind: Vara)

部分篮子接受原生 VARA 而非 CHIP,需检查篮子的 asset_kind。可使用 BasketMarket/BetOnBasket 并附带 --value。某些部署可能禁用 VARA 通道,可用 BasketMarket/IsVaraEnabled 检查。

下注之后

使用 BetLane/GetPosition 查询持仓(不要用不存在的 GetUserPositions)。等待结算后领取收益,可参见 ../basket-claim/SKILL.md。次日可重复第一步继续领取 CHIP。

常见错误

InvalidIndexAtCreation 表示报价结构格式错误;InvalidQuoteSignature 表示报价未由配置的签名者签名;QuoteExpired 表示报价超过 30 秒;QuoteNonceAlreadyUsed 表示同一报价被提交两次;QuoteTargetMismatch 表示报价针对了不同的 BetLane;InvalidBetAmount 表示 VARA 通道未附带 --value;BasketNotActive 表示篮子在结算中或已结算;BasketAssetMismatch 表示通道与篮子不匹配;VaraDisabled 表示 VARA 下注已关闭;AmountBelowMinBet / AmountAboveMaxBet 表示金额超出 BetLane 配置的最小/最大值;BetTokenTransferFromFailed 表示 CHIP 余额或授权不足。