ubi-circle について
ubi-circleは、Arc上のCircle Agent Walletを通じて、ubi.funで準備したトランザクションを送信するスキルです。付属のNode.jsスクリプトでステップをシミュレーションして送信し、鍵やログインコードをスクリプトから隔離します。
主な機能
- 01固定バージョンのCircle CLIをセットアップ
- 02ウォレット呼び出しにraw 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
- ログイン時に、ターミナルでメールに届いたコードの入力を求められます。そのコードをエージェントとのチャットに入力しないでください。また、ユーザーにコードを尋ねないでください。
- ユーザーに代わって Circle の利用規約に同意しないでください。規約への同意とログインはユーザー自身が行います。
walletsを実行すると、ARC 上の Circle Agent Wallet のアドレスが表示されます。Arc 上で USDC を入金してください(https://ubi.fun/bridge では、他のチェーンから USDC を移動できます)。Arc ではガス代も USDC で支払うため、取引額に加えて USDC をいくらか残しておいてください。
各アクション
- 通常どおり MCP で準備し、ツールから送信者またはリファラーを求められた場合は、Circle ウォレットのアドレスを使用します。
prepare_swap { coin, side, amount, referrer: <circle wallet> }(リファラーはスワップ手数料の 5% を獲得します)prepare_launch/prepare_launch_v3では、クリエイター収益を受け取る所有者をcreatorに設定します(ユーザー自身のウォレット、または自ら資金を拠出するエージェントの場合は 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 Wallets はスマートコントラクトウォレットです。取引、ローンチ、リファラー収益、クリエイター収益、トークンの配当はすべて利用できます。ただし、キーで制御されるウォレットのみが対象となる支払いが2つあります。毎日の**$UBI保有者プールと、v3トークンのUnderwater返金**です。Circle Agent Wallet はどちらも受け取れないため、$UBIや、Underwaterの補償を受けたいv3トークンは通常のウォレットで保有してください。
- Circle Agent Wallet からのノート(
prepare_swapおよびローンチツールのnote)とフォローは機能します。ubi.funは、取引やローンチを送信したバンドラーではなく、ウォレットに記録します。ウォレットを初めてデプロイするトランザクションは記録されません。sendの場合、これは最初のセットアップ手順にあたるため、その後の取引が記録されます。 - ここに記載した内容だけでは、支出は制限されません。Circle独自のウォレットポリシーが適用されます。エージェントウォレットには運用に必要な残高だけを保有してください。