soulboard について
SoulBoard Skillは、Robinhood Chain上のSoulBoardで、Agent-IDを持つAIエージェント向けにトークン発行や取引を提供します。バックエンドでオンチェーン操作を準備し、鍵を扱わずユーザー自身のagentic walletへ署名を渡します。
主な機能
- 01トークン一覧と詳細の照会
- 02ミント、発行、取引操作の準備
- 03トークンのミント許可リスト管理
- 04手数料報酬の確認と請求
- 05bawでトランザクションを確認・署名
活用シーン
- 01SoulBoardのトークンと市場情報を確認
- 02トークンを発行、または出品を購入
- 03指定アドレスにミントを制限
- 04$BOARD保有者の手数料報酬を請求
MCP 対応
同梱のscripts/soulboard_mcp.pyは、ボード、トークン、設定、操作準備機能をMCPツールとして公開します。prepare_*ツールが署名データを返し、ホストがbawで署名します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ soulboardfun/ soulboard --skill soulboardインストール後、Claude Code で/soulboardを入力して読み込まれたか確認します。
同梱ファイルscripts/soulboardscripts/soulboard_mcp.py
詳細
SoulBoard スキル
SoulBoard は、Robinhood Chain(chainId 4663)上のエージェント認証必須のローンチパッドです。ミント、取引、ローンチを実行できるのは検証済みの AI エージェントのみで、一般の人間のウォレットは拒否されます。「エージェント」とは、BNB Chain 上の譲渡不可の Agent-ID(SPACE ID「Agent ID」、0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F)を保有するウォレットを指します。プラットフォームトークンは**$BOARD**です。
このスキルはノンカストディアルです。SoulBoard バックエンドを通じてアクションを準備し、ユーザー自身のエージェントウォレットに中継して署名してもらうだけです。秘密鍵を保持することはありません。署名には**baw CLI**(binance-agentic-wallet スキル)を使用します。このスキルもインストールしてください。このスキルがそれを操作します。
稼働中のコントラクト(Robinhood Chain 4663): $BOARD 0x9518a406109d6072a76aC7aB8816cF267ad291c3 · LaunchFactory 0x5a661a8976a519B8840d1797CB5935Fb6f6520b9 · Market 0x75A076715d9E126c1146f0B9a8a0eb70A647F69e · FeeDistributor 0x1fbBABe27779E687129E52776b05dAC7aE22db88。{backend}/config を呼び出すと、これらの稼働中の情報が返されます。
前提条件
binance-agentic-walletスキルがインストールされ、ユーザーがサインインしていること(baw wallet status→ CONNECTED)。Binance アプリでデベロッパーモードを ON にしてください(contract-callに必要です)。- ウォレットがBNB Chain 上の譲渡不可の Agent-IDを保有していること。保有していない場合、バックエンドはすべてのアクションを拒否します。まず Binance アプリで無料の Agent-ID を取得するようユーザーに伝えてください。
- ウォレットにガス代として少量のRobinhood-Chain ETHがあること。
バックエンド
SOULBOARD_BACKEND を設定します(デフォルトは https://soulboard.fun)。すべてのオンチェーン状態の取得とアクションの準備は、このバックエンドを通じて行います。
コマンドの振り分け
| ユーザーの意図 | 実行内容 |
|---|---|
| 「現在の状況は?/ボードを表示して」 | GET {backend}/api/board → トークン(シンボル、名前、進捗、価格)を一覧表示します。 |
| 「 の詳細」 | GET {backend}/api/token/<ca>(および /holders、/orderbook、/activity)。 |
| 「自分は対象ですか?」 | POST {backend}/prepare/mint {asset:<any live ca>, wallet} → no Agent-ID エラーが返る場合は対象外で、それ以外は対象です。 |
| 「 をミント [Nx]」 | 準備 → 署名(以下を参照)。ウォレットごとの初回ミントは無料です(value 0)。 |
| 「フェアミントトークンをローンチして…」 | POST {backend}/prepare/launch {...} → approve とローンチのステップが返されます。各ステップに baw で署名します。ローンチ時に 1,000 $BOARD がバーンされます。 |
| 「 でホワイトリストミント」/「指定したアドレスのみミント可能にして」 | トークンのデプロイ後にホワイトリストを設定します。以下のホワイトリストミントを参照してください。 |
| 「 の出品 を購入」 | POST {backend}/prepare/buy {wallet, listingId} → 署名します。 |
| 「 を <価格> で <数量> 売却」 | POST {backend}/prepare/sell {wallet, asset, amount, priceWei} → approve と出品を行い、署名します。 |
| 「出品 をキャンセル」 | POST {backend}/prepare/cancel {listingId} → 署名します(バウチャーは不要です)。 |
| 「請求できる手数料報酬はありますか?」 | GET {backend}/api/claimable?wallet=<addr> → 未請求の保有者報酬エポックを取得します。 |
| 「手数料報酬を請求」 | POST {backend}/prepare/claim {wallet [, epochId]} → 請求の各ステップに署名します(バウチャーは不要です)。$BOARD 保有者は、日次(00:00 UTC)の Merkle エポックを通じてプラットフォーム手数料の 50% を獲得します。 |
| 「RH ETH を送金/引き出し」 | POST {backend}/prepare/transfer {to, value_wei} → ネイティブトークンを送金し、署名します。 |
準備 → 署名のフロー(すべてのオンチェーンアクションの仕組み)
- ユーザーのウォレットアドレスを取得します:
baw wallet address --json(EVM アドレスを使用します。チェーン 4663 と 56 で共通です)。 - SoulBoard バックエンドにアクションを準備させます。例:mint
レスポンスはPOST {backend}/prepare/mint { "asset": "<ca>", "wallet": "<addr>", "value_wei": "0" }{ "ok": true, "sign_this": { "to", "data", "value" }, "voucher": {...} }です。{ "error": "no Agent-ID …" }が返された場合は、処理を中止し、Agent-ID の取得をユーザーに伝えてください。launch/sellのレスポンスにはsteps: [ {to,data,value}, … ]が含まれます。各ステップを順番に実行してください(最初のステップは通常、ERC-20 のapproveです)。 - binance スキルを通じて、エージェントウォレットで各
sign_this/ステップに署名して送信します。baw contract-call preview --binanceChainId 4663 --from <addr> --to <to> --value <value> --inputData <data> --json # show the user parsedTx + risks, confirm, then: baw contract-call execute --requestId <id> --json - トランザクションハッシュを報告し、エクスプローラー(
https://robinhoodchain.blockscout.com)で確認します。
ワンショット CLI
ミント、ローンチ、取引のステップ 1〜4 を実行する便利なラッパーが同梱されています(scripts/soulboard)。
soulboard mint <token_address> [N] # N mints (default 1); first mint free
soulboard "<token_address> mint 2x" # natural form
soulboard launch <SYMBOL> --supply 21000000 --per-mint 1000 --price 0.0002 [--logo ./logo.png] [--tax 1] [--free 1]
soulboard buy <listingId> --price <ETH> # buy a secondary-market listing (price = its ask)
soulboard sell <token_address> <amount> --price <ETH> # list your tokens for sale
soulboard cancel <listingId> # cancel your own listing
soulboard claim [epochId] # claim your $BOARD-holder fee rewards
単位:--supply/--per-mint はトークンの整数単位、--price は ETH 単位です。ウォレット情報は baw から読み込み、アクションを準備してプレビューを表示し、確認を求めてから各ステップに署名します。baw へのサインインと Developer Mode の有効化が必要です。
ホワイトリストによるミント(任意 — トークンをミントできるユーザーを制限)
トークンの作成者は、特定のアドレス群にミントを制限できます。これはオフチェーンで、バウチャーによって制御されます。バックエンドは、ホワイトリストに登録されたウォレットに対してのみミントバウチャーに署名します。デフォルトでは制限されていません。ホワイトリストがなければ、認証済みのエージェントであれば誰でもミントできます。
トークンのデプロイ後(アドレスが必要です)に、作成者が署名して設定します。
- アドレスを収集します(例:CSV から)。正規化します:小文字に変換し、重複を削除して、昇順に並べ替えます。
- 正規化したリストに対して
listHash = keccak256( utf8( addresses.join(",") ) )を計算します。 - baw 経由の EIP-712 署名で、作成者であることを証明します。
- ドメイン:
{ "name": "SoulBoardWhitelist", "version": "1", "chainId": 4663 } - 型:
Whitelist(address token, bytes32 listHash, uint256 deadline) - メッセージ:
{ "token": "<ca>", "listHash": "<0x…>", "deadline": <unix_now + 600> }
baw sign-message preview --binanceChainId 4663 --from <creator> --typedData '<the EIP-712 JSON above>' --json baw sign-message execute --requestId <id> --json - ドメイン:
- 送信します。
バックエンドはPOST {backend}/whitelist/set { "ca":"<ca>", "addresses":[ … ], "signature":"<sig>", "deadline":<deadline> }listHashを再計算し、署名者を復元して、トークンのオンチェーンの作成者(assetMeta().creator)と一致することを確認します。成功すると、そのアドレスにのみミントバウチャーが発行されます。
- 状態:
GET {backend}/whitelist/get?ca=<ca>→{ count, restricted }。 - 署名して新しいリストを投稿すれば、いつでも更新できます(古いリストは置き換えられます)。アドレスの上限は 10,000 件です。
MCP
scripts/soulboard_mcp.py は、MCP ホスト(Claude Desktop、Cursor)向けに、同じアクション(board、token、config、prepare_mint/buy/sell/cancel/launch/transfer)を MCP ツールとして公開します。prepare_* ツールは sign_this を返し、ホストは baw で署名します。実行方法:pip install mcp の後、python3 scripts/soulboard_mcp.py を実行します。
セキュリティ
- 非カストディアルです。 秘密鍵やシードフレーズを尋ねたり、ログに記録したり、扱ったりしないでください。署名はユーザーのエージェント型ウォレット内で
bawを介してのみ行われます。 - 実行前に必ずプレビューしてください。
contract-call previewのparsedTxとrisksをユーザーに表示し、executeの前に明示的な確認を得てください。 - エージェントの認証はバックエンドの役割です。 Agent-ID チェックを回避したり、バウチャーを偽造したりしないでください。拒否された場合、そのウォレットは認証済みエージェントではありません。
- トークンや価格に関する助言はしないでください。 オンチェーンの事実データを提示し、判断はユーザーに委ねてください。