关于 ubi-circle
ubi-circle 是通过 Arc 上的 Circle Agent Wallet 发送 ubi.fun 预备交易的技能。它使用随附的 Node.js 脚本模拟并提交步骤,同时避免脚本接触钱包密钥和登录验证码。
主要功能
- 01安装固定版本的 Circle CLI
- 02为钱包调用增加原始 calldata 支持
- 03模拟并发送预备交易步骤
- 04等待收据并提供交易链接
- 05说明故障处理与重发注意事项
适用场景
- 01执行预备好的 ubi.fun 兑换
- 02发送代币发行或领取步骤
- 03交易结果不确定时检查状态
MCP 相关
此技能与 ubi MCP 服务配合,由该服务准备未签名的交易步骤。技能通过随附脚本使用 Arc 上的 Circle Agent Wallet 发送步骤;Circle 负责签名和提交。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ubidotfun/ skills --skill ubi-circle安装后在 Claude Code 中输入/ubi-circle确认已加载。
附带文件scripts/ubi-circle.mjs
详细介绍
使用 Circle Agent Wallet 运行 ubi.fun
ubi MCP 服务会准备未签名的步骤(参见 ubi-trading 和 ubi-launch)。此技能使用内置的 scripts/ubi-circle.mjs(Node.js 20 或更高版本),通过 Arc 上的 Circle Agent Wallet 发送这些步骤。Circle 负责签名和提交;脚本不会接触密钥、电子邮件验证码或会话令牌。
为什么使用脚本:Circle CLI 只接受“函数签名 + 文本参数”,无法承载 Universal Router 兑换或代币发行。Circle 的 API 接受原始 calldata,因此 setup 会将一个固定版本的 Circle CLI(@circle-fin/[email protected])安装到 ~/.ubi-circle,检查其哈希,并在其旁边写入一个副本,为 ARC 上的 Circle Agent Wallet 添加 --call-data。已安装的 CLI 文件不会被修改,其他所有命令仍使用原版 CLI。
一次性设置(由用户在自己的终端中完成)
node scripts/ubi-circle.mjs setup
node scripts/ubi-circle.mjs circle terms show # read them, then:
node scripts/ubi-circle.mjs circle terms accept
node scripts/ubi-circle.mjs circle wallet login YOUR_EMAIL --type agent
node scripts/ubi-circle.mjs wallets
- 登录时,终端会要求输入通过电子邮件发送的验证码。绝不要在 Agent 聊天中输入该验证码,也不要向用户索要。
- 不要代替用户接受 Circle 的条款。条款确认和登录都应由用户完成。
wallets会打印 ARC 上的 Circle Agent Wallet 地址。请为其充值 USDC(https://ubi.fun/bridge 可将其他链上的 USDC 转入)。请在交易金额之外留出一些 USDC:Arc 使用 USDC 支付 Gas。
每次操作
- 像往常一样使用 MCP 准备操作,并在工具要求提供发送方或推荐人时使用 Circle 钱包地址:
prepare_swap { coin, side, amount, referrer: <circle wallet> }(推荐人可获得兑换手续费的 5%)- 使用
prepare_launch/prepare_launch_v3,并将creator设为应获得创作者收益的对象(用户自己的钱包,或由自身出资的 Agent 所用的 Circle 钱包) - 领取操作:
get_referrer_balance、get_coin_earnings、get_underwater_refunds、get_holder_rewards会返回相应的领取步骤
- 向用户说明将要执行的操作(金额、报价、最低到账金额、接收方),并在任何会花费资金的操作前征得用户同意。
- 将工具结果保存为 JSON 并发送:
node scripts/ubi-circle.mjs send --address <circle wallet> --file steps.json --dry-run # simulates the first step
node scripts/ubi-circle.mjs send --address <circle wallet> --file steps.json
send 接受完整的 prepare_* 结果、其 steps 数组或单个步骤。对于每个步骤,脚本会按顺序根据当时 Arc 链的状态进行模拟,通过 Circle 发送该步骤,等待交易回执,并在首次失败时停止。输出为 JSON,其中包含每个步骤的交易哈希以及 arc.etherscan.io 链接。
出现问题时
SIMULATION_FAILED:该步骤现在会回滚。此后的步骤均未发送。请重新报价并准备新步骤(报价和截止时间会过期)。OUTCOME_UNKNOWN:Circle 未能正常完成(没有交易哈希,或打印哈希后失败;已打印的哈希会出现在输出中)。不要重新发送。 交易仍可能上链。请先检查node scripts/ubi-circle.mjs circle transaction list --address <circle wallet> --chain ARC和区块浏览器。REVERTED或PENDING:在执行下一步骤前已停止;请查看区块浏览器链接。RECEIPT_UNKNOWN:该步骤已发送(其哈希会出现在输出中),但无法读取回执。不要重新发送。 请检查区块浏览器链接,然后为剩余操作准备新步骤。- 在发送步骤之前遇到
RPC_UNAVAILABLE或RPC_INVALID:Arc RPC 无法读取或返回了格式错误的答复,因此该步骤未经过模拟,也未发送。done下列出的步骤已上链;请为其余操作准备新步骤。 CIRCLE_NOT_READY:没有 Circle 会话;用户需在自己的终端中重新登录。RUNTIME_MISMATCH:~/.ubi-circle中的文件已更改;请重新运行setup。
需知事项
- Circle Agent Wallet 是智能合约钱包。交易、发币、推荐收益、创作者收益和代币分红均可正常使用。只有两项分配仅面向由密钥控制的钱包:每日 $UBI 持有者池和 v3 代币的 Underwater 退款。Circle Agent Wallet 无法获得这两项收益,因此请将 $UBI,以及希望获得 Underwater 保障的 v3 代币,存放在普通钱包中。
- Circle Agent Wallet 可使用备注(
prepare_swap和发币工具中的note)和关注功能:ubi.fun 会将每笔交易或发币记录归属于该钱包,而不是提交交易的打包器。首次部署钱包的那笔交易不会计入;使用send时,部署是第一个设置步骤,因此之后的交易会计入。 - 这里的任何内容都不会单独限制支出。Circle 自身的钱包策略仍然适用;请仅在 Agent 钱包中保留工作所需的余额。