realbond について
realbondは、BSC上のRealbondローンチパッドおよび税トークン向けにトランザクションcalldataを作成するTypeScript製CLIスキルです。コントラクト状態の読み取りやドライランに対応し、ユーザーの確認後に`baw`経由で書き込みを送信します。
主な機能
- 01エージェント・バインド・ローンチ・ポジション状態の確認
- 02エージェントウォレットとX IDの紐付け
- 03ローンチ作成とボンディングカーブ取引
- 04税トークンの配当確認と請求
- 05ドライランによるcalldataプレビュー
- 06実行前のユーザー確認
活用シーン
- 01ローンチ適格性と一時停止状態の確認
- 02バックエンド発行クレームによるウォレット紐付け
- 03ローンチ作成やトークン売買
- 04税の処理や配当の請求
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ realbond-ai/ realbond-skill --skill realbondインストール後、Claude Code で/realbondを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.env.exampleREADME.mdpackage.json.gitignorepackage-lock.jsonLICENSEsrc/baw.tschain.tscli.tsbindingClaim.tscalldata.tsconfig.tsticket.tsfee.tssimulate.tssrc/abi/taxToken.jsonlaunchpad.jsonregistry.jsonsrc/commands/parse.tsbind.tscontext.tspause.tsposition.tsstatus.tstax.tstrade.tswrite.tstest/baw.test.tscalldata.test.tsfee.test.ts詳細
Realbond スキル
BSC(チェーン 56)上の v2 IdentityRegistry、AgentLaunchpad、税トークンの calldata をエンコードし、エージェントウォレット経由で baw contract-call preview → 確認 → baw contract-call execute を実行する TypeScript CLI です。
インストール
npx skills add realbond-ai/realbond-skill
または、クローンからインストールします(すべてのコマンドをスキルのディレクトリから実行してください)。
git clone https://github.com/realbond-ai/realbond-skill && cd realbond-skill
npm install
npx tsx src/cli.ts <command> [args] [--dry-run]
ウェブサイトには、この形式(npx tsx src/cli.ts ...)でコマンドが表示されます。Node 22 以降と、ログイン済みの baw CLI(baw auth / baw wallet status)が必要です。
環境変数
| 変数 | 使用箇所 | 意味 |
|---|---|---|
RPC_URL | status、position、bind、create、buy、sell(一時停止の確認、見積もり、または all)、税関連コマンド | BSC JSON-RPC エンドポイント。例:https://bsc-dataseed.binance.org |
LAUNCHPAD_REGISTRY | status、bind | v2 IdentityRegistry プロキシ。未設定の場合、status は registry: "not configured"(および paused.bind: "not configured")を出力します |
LAUNCHPAD_ADDRESS | すべてのローンチコマンド、status | v2 AgentLaunchpad プロキシ。未設定の場合、status は paused.launch / paused.trade: "not configured" を出力します |
AGENT_WALLET | bind、buy、sell の見積もり / all、税関連コマンド、position、すべてのドライラン以外の書き込み、status のデフォルトアドレス | baw ... --from に渡されるエージェントウォレット |
v2 コントラクトアドレス(BSC メインネット):LAUNCHPAD_REGISTRY=0xc94D593B1162BB93e95951f9ecaab8B9fC4849b5、
LAUNCHPAD_ADDRESS=0x71Be2d9EC26b637a35e66fFDE80849625d29fEEE。v1 のアドレスはこのバージョンでは動作しません。プライベートな RPC URL をコミットしないでください。
コマンド
| コマンド | コントラクト呼び出し | 備考 |
|---|---|---|
status [address] | Agent ID の balanceOf/handleOf、レジストリの isEligible/bindingOf、ローンチパッドとレジストリの pausedFlags | 読み取り専用の JSON です。binding には isBound、xId、isPublic、followerTier、followerThresholdAtBinding、isBlueVerified(X 認証済みかどうか)、boundAt が表示されます。公開バインディングの場合のみ screenName も表示されます。paused には launch、trade、bind が表示されます(「プラットフォームの一時停止」を参照)。 |
bind <binding.json> | レジストリの bind(claim, signature) | 下記の「バインディング」を参照してください。ガス上限は 400000 です。 |
create <ticket.json> | ローンチパッドの createLaunch(name, symbol, metaCid, taxed) | すべてのウォレットで利用できます(Agent ID も X バインディングも不要です)。Create ページで作成したファイルを使います。name は 64 以下、symbol は 16 以下、metaCid は UTF-8 で 128 バイト以下である必要があります。taxed は true である必要があります(無税ローンチは UntaxedLaunchDisabled でリバートします)。salt を含む v1 チケットは拒否されます。 |
buy <id> <netBnb> [--min-tokens <wei>] | ローンチパッドの buy(id, minTokens)(payable) | Agent ID と X バインディングが必要です(それ以外の場合は NOT_ELIGIBLE)。ガス上限は 7000000 です。「取引」を参照してください。 |
sell <id> <amount|all> [--min-bnb <wei>] | ローンチパッドの sell(id, tokens, minBnb) | amount はトークン単位(小数、18 桁)です。all はウォレット残高を読み取ります。承認は不要です。 |
position <id> | ローンチ、トークン、税トークンの読み取り | AGENT_WALLET の読み取り専用 JSON です。status、token、taxed、balance、walletCap/remainingCap/quoteSellAll(Live の場合のみ)、tax: {withdrawableDividend, accruedTax}(税トークン。どちらもトークン wei 単位)が含まれます。 |
process-tax <id> | 税トークンの processTax() | 税トークンのみです。accruedTax が 0 の場合はローカルで拒否されます。 |
claim-dividend <id> | 税トークンの claimDividend() | 税トークンのみです。BNB ではなくトークンが支払われます。引き出し可能な額がない場合はローカルで拒否されます。 |
2 つの税関連コマンドは、ローンチパッドではなくトークンコントラクトにトランザクションを送信します。
ローンチ ID は id < nextId() で検証されます。statusOf だけでは、存在しない ID も Live と報告されます。
v2 で削除されました(パーサーがその旨を表示します):register(bind を使用)、claim、refund、graduate、update-salt、
update-salt-and-graduate。現在は期限、払い戻し、個別の卒業ステップはありません。
グローバルフラグ --dry-run:{to, data, value, gasLimit} の JSON を出力し(value は wei 単位、gasLimit は 10 進数、バックエンドが推定する場合は null)、baw を呼び出さずに 0 で終了します。コマンドで必要な場合はチェーン読み取りも引き続き実行されます(一時停止チェック、buy の見積もり、sell の見積もりまたは all、bind のシミュレーション)。そのため、一時停止中の機能は引き続き PLATFORM_PAUSED で失敗します。
バインド(bind)
- Verify ページでエージェントウォレットを入力し、バインドが公開されることを確認して、X の読み取り専用アクセスを許可し、
binding.jsonをダウンロードします。これは Realbond バックエンドによって署名されたクレーム(claim、signature、registry、chainId)です。フォロワー数に応じたティアは、認可時点のフォロワー数を基に設定されます。 - 1 時間以内に
bind binding.jsonを実行します。クレームには認可から 1 時間後のdeadlineが含まれており、残り時間が 2 分(120 秒)未満の場合、CLI は処理を拒否します。 - CLI は、
claim.agent == AGENT_WALLET、chainId == 56、registry == LAUNCHPAD_REGISTRY、期限、および署名から復元されるアドレスがレジストリーのオンチェーンsigner()と一致することをローカルで確認します。公開範囲、ティア(下限値>= 0 / 100 / 1,000 / 10,000 / 100,000フォロワーとして表示されます。ティア 0 は 100 人未満を意味します)、X の認証済みステータスを表示した後、AGENT_WALLETからeth_callでbindをドライランします。リバート(AlreadyBound、XAlreadyBound、BadSignature、ClaimExpiredなど)が発生した場合は、bawの呼び出し前にデコードされたエラー名を表示して処理を停止します。 - トランザクションは
--gasLimit 400000を指定してbaw経由で送信されます。
バインドできるのは公開情報のみであり、バインド後にスクリーンネームとティアを変更することはできません。 1 つの X アカウントにバインドできるウォレットは最大 1 つで、その逆も同様です。
ティアは認可時点のフォロワー数の範囲(100 人未満、100~1k、1k~10k、10k~100k、100k 以上)に基づき、更新されません。binding.json を他人に渡さないでください。このファイルによって、記載されたウォレットにあなたの X アカウントがバインドされます。
プライバシー:バックエンドが署名するのは公開クレームのみです。そのため、スクリーンネーム、ティア、X の認証済みステータス、Agent ID のハンドル、ウォレットは公開され、スクリーンネームはオンチェーンイベントに永久に残ります。プレーンな uid がオンチェーンに記録されることはなく、記録されるのは xId = SHA256(uid) のみです。Realbond バックエンドはあなたの X の身元を把握し、保持します。また、リーダーボードには認可時点で取得した正確なフォロワー数が表示され、その数で並べ替えられます。
取引
ローンチごとに、ローンチパッドへ1,000,000,000トークンがミントされます。紐付けられたエージェントはボンディングカーブでBNBを使って購入します。純調達額が15 BNBに達する購入が行われると、同じトランザクション内でローンチがグラデュエーションします。残りのトークンと15 BNBはPancakeSwap V2のペアに入れられ、そのLPはバーンされます。グラデュエーション前はトークンを譲渡できません。また、各ウォレット(クリエイターを含む)が保有できるのは最大20,000,000トークン(2%)です。上限は現在の残高で計算されるため、売却すると空きができます。カーブでは売買に1%の手数料がかかります。ローンチはどのウォレットからでも作成できますが、購入には適格なウォレット(Agent IDを保有し、Xとのバインディングがあること)が必要です。カーブへの売り戻しはどの保有者にも開放されており、グラデュエーション前に利用できる唯一の退出方法です。バインディングのないクリエイターは、自分のローンチを購入できません。
-
購入の前に、CLIはローンチパッドから
registry()、およびisEligible(AGENT_WALLET)を読み取ります(RPC_URLが必要です)。適格でないウォレットではNOT_ELIGIBLE: ... buying requires an Agent ID and an X bindingが表示され、何も送信されません。不足している条件を確認するにはstatusを実行してください。コントラクトもそのような購入をNotEligibleでリバートします。 -
buy <id> <netBnb>では、カーブに対する純額のBNBを指定します。CLIはvalue = ceil(net * 10100 / 10000)を送信します(1%の手数料を上乗せ)。たとえば、buy 1 0.01では0.0101BNBが送信されます。各購入では最初にquoteBuy(id, AGENT_WALLET, value)を呼び出します(RPC_URLが必要です)。見積もりがリバートした場合、エラー名(WrongStatus:取引中ではない、または不明、WalletCapReached、BuyTooSmall)が表示され、何も送信されません。minTokensは、--min-tokensで上書きしない限り、見積もりトークン数の99%(スリッページ1%)です。見積もりを上回る値を指定すると、Slippageで購入がリバートする旨の警告が表示されます。ウォレット上限または15 BNBの目標を超える分は、同じトランザクション内で返金されます。見積もりに返金が含まれる場合、CLIが警告します。 -
sell <id> <amount|all>:--min-bnbを指定しない場合、quoteSellを呼び出し、minBnbをbnbOut - feeの99%に設定します(コントラクトは手数料差し引き後の支払額を比較します)。 -
ウェブサイトの購入・売却パネルには、
--min-tokens/--min-bnbがあらかじめ入力されたコマンドが表示されます。 -
すべての
buyには--gasLimit 7000000が付与されます。購入がグラデュエーションを起こす可能性があるためです(フォークで測定したグラデュエーション時のガスは約3.65M)。これは上限であり、実際に使用したガス分だけが課金されます。
グラデュエーション後はカーブが閉鎖され(WrongStatus)、たとえばbaw swapを使ってPancakeSwapで取引してください。税トークンはPancakeSwapでの購入・売却に1%の手数料がかかるため、スワップでは手数料徴収トークンに対応した機能が必要です(RouterのswapExact...SupportingFeeOnTransferTokens)。
税トークン
すべてのローンチは税トークンです(taxed: true)。税率と分配比率は永久に固定されています。グラデュエーション後、トークンの正規PancakeSwap V2ペアでの各売買では、トークンの1%がトークンコントラクトに支払われ、50/50で分配されます(ウォレット間の送金には課税されません)。
- 保有者(50%):取引前に10,000トークンを超えて保有しているウォレットへ、トークン自体で即時に付与されます(持分に応じて分配。ペア、デッドアドレス、ローンチパッド、トークンコントラクトは対象外)。購入したトークンに対して、トレーダー自身は何も得られません。
claim-dividendで引き出せます。請求したトークンも今後の配当の対象になります。 - プラットフォーム(50%):
accruedTaxとして蓄積されます。process-taxを実行すると(誰でも実行可能、ブロックごとに最大1回、1回あたりプールの最大0.5%)、蓄積分がBNBに売却され、その全額がプラットフォームの財務資金に送られます。配当の対象となるウォレットがない場合、保有者分もaccruedTaxに加算されます。
10,000トークンを超えて保有するウォレットは、自身の売買に対する税金からも(取引前の残高に基づき)持分に応じた配分を得ますが、常に自身が支払う税金より少なくなります。保有者分を得るために他人の取引へサンドイッチ攻撃を仕掛けても、その取引の対象となる持分が約5倍を超えない限り損失になります。各取引の中で配当を付与するため、ペアの購入ではガスが約3万多くかかります。
クリエイターが受け取る税金は0%で、割り当てもなく、作成時の購入もありません。クリエイターも同じ上限のもと、カーブで購入します。まずposition <id>を使って、accruedTaxとwithdrawableDividend(トークンwei単位)を確認してください。
プラットフォームの一時停止
プラットフォームのオーナーは、3つの機能を個別に一時停止できます。ローンチパッドの launch(create)と trade(カーブの buy および
sell)、そしてレジストリの bind です。status は、それぞれ true/false、コントラクトアドレスが未設定の場合は "not configured"、
読み取りに失敗した場合は {error} として、これらを paused: {launch, trade, bind} の形式で表示します。
create、buy、sell、または bind を実行する前(--dry-run の場合も含む)に、CLI は対応する
pausedFlags() を読み取ります。機能が一時停止中の場合、baw の呼び出し前に
PLATFORM_PAUSED: <launch|trade|bind> is paused by the platform owner で終了します。読み取り自体に失敗した場合は、トランザクションを送信せず、そのエラーで終了します。
PLATFORM_PAUSED は、オーナーが意図的に機能をオフにしたことを意味します。ループで再試行せず、時間をおいてから status を確認してください。
税関連のコマンド(process-tax、claim-dividend)は一時停止されません。グラデュエート済みのトークンは PancakeSwap で取引されるため、一時停止の影響を受けません。
実行のたびに確認
各書き込みコマンドでは、次の処理が実行されます。
baw contract-call preview --binanceChainId 56 --from <AGENT_WALLET> --to <contract> --value <wei> --inputData <calldata> [--gasLimit <cap>] --json- プレビュー(シミュレーション、リスク)を標準エラー出力に表示し、
Execute this transaction? [y/N]と確認します。 yの場合に限り、baw contract-call execute --requestId <requestId> --jsonを実行し、{txHash, status}を表示します。txHash: nullを伴うstatus: PENDING_CONFIRMATIONは、Binance App で承認が必要であることを意味します。
ユーザーに代わって y と回答してはいけません。この確認は、人間が行うチェックポイントです。標準入力がターミナルでない場合(パイプ入力の場合)、CLI は標準エラー出力に警告を表示しますが、文字どおりの y の入力は引き続き必要です。
ネットワークに関する注意
baw は https://www.binance.com に直接接続し、HTTPS_PROXY を無視します。baw wallet status が
Connection refused (0.0.0.0:443) で失敗する場合、ローカルのリゾルバーが汚染された応答を返しています。
サインインする前に dig +short www.binance.com を確認し、システムの DNS を信頼できるリゾルバー(例:
8.8.8.8)に設定してください。TUN モードのプロキシは、DNS も引き継がない限り役に立ちません。