mcpField
B
bounded-onchain

bounded-onchain

github.com/bounded-sh開発075 回インストール今日更新
リポジトリ

bounded-onchain について

bounded-onchainは、Boundedアプリのウォレット、トークン、トランザクション、決済を扱うオンチェーン開発スキルです。参照先の案内とルールにより、プラグインの詳細確認や実装上の問題解決を支援します。

主な機能

  1. 01オンチェーン開発資料の案内
  2. 02プラグイン署名と呼び出し条件の確認
  3. 03ウォレットと資金管理方式の説明
  4. 04オンチェーントランザクションの診断
  5. 05決済とウォレットログインの案内

活用シーン

  1. 01プラグイン関数の引数と戻り値の確認
  2. 02エスクローやトークンアプリの口座設計
  3. 03書き込み失敗やトランザクション制限の調査
  4. 04埋め込みウォレットやウォレットログインの設定

MCP 対応

Boundedのオンチェーン開発向けエージェントスキルです。入力にはMCPとの具体的な関係は記載されていません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bounded-sh/skill --skill bounded-onchain

インストール後、Claude Code で/bounded-onchainを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

data/
plugin-catalog.json
docs/
accept-crypto.md
chain-data.md
custody-and-pdas.md
embedded-wallets.md
examples.md
meteora-token-launch.md
oapps-tokenomics-fee-split.md
onchain-trading.md
onchain-troubleshooting.md
onchain.md
onramp.md
plugin-signatures.md
plugins.md
docs/examples/
cp-amm-liquidity-positions.md
escrow.md
isolated-vault.md
nft-collection.md
prediction-market-amm.md
randomness-coin-flip.md
staking-lock-vault.md
token-launch.md
token2022-extensions.md
treasury.md
docs/plugins/_fragments/
AccountPlugin.md
CPI.md
DeFiPlugin.md
DocumentPlugin.md
NFTPlugin.md
OraclePlugin.md

詳細

Bounded オンチェーン

ウォレット、トークン、オンチェーントランザクション、決済に対応します。Bounded の標準的なメール/ソーシャルログインには、デフォルトでウォレットが含まれます。デフォルトの Turnkey 認証とサポート対象のメール/ソーシャルログインを使うと、実際の @user.address が付与されます。詳しくはdocs/embedded-wallets.mdをご覧ください。@user.id(アカウント ID)は引き続き本人確認/所有権のキーであり、@user.address はウォレットです。オンチェーンへの書き込みは、まずポリシールールと不変条件を満たす必要があるため、適用されるルールについてはbounded-backendスキルと併用してください。ファミリー全体へのルーティングについては、ルートのboundedスキルをご覧ください。

リファレンスルーター

現在のタスクまたは用語に一致する行だけを参照してください。

タスクまたは用語参照先
プラグインの名前空間または関数をすばやく見つけるプラグインカタログ - 名前空間/関数の簡易ルーター
すべてのシグネチャと呼び出し可能なコンテキストを確認するシグネチャ完全版インデックス
あるプラグイン関数の正確なシグネチャ、マニフェストの引数説明と署名者マーカー、戻り値の型、呼び出し可能なコンテキストプラグインカタログ、次に docs/plugins/ 内の該当する名前空間のページ
Token-2022 の送金税、ウォレット/ボールトに留保された手数料、ミントの回収、専用の引き出し権限、手数料受取先としてのトレジャリー、未請求の報酬送金手数料の回収
誰が資金を保有するか、誰が署名するか、エスクローと名前付き PDA とユーザーウォレットの違い、@AccountPlugin.createAccount、アカウント ID の衛生管理、作成・資金投入・利用の慣用パターンカストディと PDA
エスクロー、ボールト、トレジャリー、ステーキング、マーケット、ローンチ、NFT、Token-2022、ランダムネス、流動性アプリの完全なポリシー例のインデックス
失敗するオンチェーン書き込み:エラーの検索、レント、ATA の支払者、トランザクション制限、確認、環境の違いオンチェーンのトラブルシューティング
Poofnet でシミュレートされた SOL、USDC、またはその他のトークンを任意のウォレットに入金する方法、bounded wallet fund、realtime_offchainPoofnet オンチェーンシミュレーション
SOLANA_DEVNET_RPC_URL is required、SOLANA_MAINNET_RPC_URL、validate pre-built transaction、署名前に送信が失敗する、--rpc-url フラグがない、公開 RPC へのフォールバックCLI の送信には明示的な RPC エンドポイントが必要です
ブラウザーのオンチェーン set() で送信できない、init() の chain、デフォルトの Helius RPC、任意のトップレベル rpcUrl オーバーライドブラウザー/SDK の RPC のデフォルトとオーバーライド
onchain account resolution failed (422)、onchain account not found: <pubkey>、オンチェーンに存在しないアカウントを指定する書き込み、誤ったミント/プールの導出、getTokenMintAddress の引数 1 個と 3 個の不一致オンチェーンアカウントの不足とプラットフォームの 502 エラー
onchain account resolution failed (502)、onchain query failed (502)、403 も 422 も伴わない Transaction building failed、名前付きクエリと通常の getBalance が同時に失敗する、プラットフォームリゾルバーの障害プラットフォームリゾルバーとオンチェーンクエリの 502 エラー
署名後に Pump.fun のローンチが insufficient lamports(need 1461600、Create Metadata Accounts v3)で失敗する、アプリカストディによる作成者への資金提供エラー一覧とトークンローンチの例
オンチェーンコレクション、onchain:true、--protocol、Solana、メインネットの許可、パッチ、読み取り専用 !、FieldReadOnlyオンチェーン
コンパイラーとデプロイ済み環境でのサポートの違い、devnet のステータス、ブロック中または未検証の統合(Jupiter、Phoenix、DFlow、Kamino、Pump.fun、PumpSwap、Tensor、SPL ステークプール、リキッドステーキング、Raydium CPMM、Meteora DLMM)、runtime-v4 による制限機能のステータス
Helius、ミラー/インデクサー、取りこぼされたトランザクション、結果整合性、ミラーされていない書き込み、Webhook、取り込みキュー/DLQ、復旧と照合の担当者ミラーの完全性
ボンディングカーブ、AMM、共有価格またはカウンター、高負荷時に書き込みが失敗する、競合、スリッページ、支払い上限/受け取り最小値高負荷時の共有価格とカウンター
トランザクションが大きすぎる、413、1182/1232 バイトのパケット制限、大きすぎるフック、ルックアップテーブルトランザクションサイズの制限
governance.upgrade、不変/コントローラーポリシー、マニフェストルート、ガバナンス対象のセッション、復旧、延長、キャンセルruntime-v3 のガバナンス
@CPI、@Solana、@Bytes、@App、@DocumentPlugin.updateField、@PredictionMarketPlugin、PDA、get/getAfter、ProgramData、shouldSubmitTx、skipPreflight、@contract.address、@AccountPlugin.getAccountAddress、汎用 CPI、アプリ間連携、予測市場の算術、ランタイムの同等性、@Solana.verifyEd25519、@Solana.secp256k1Recover、@Bytes.sha256、@Bytes.keccak256、署名検証、EVM 署名者の復元ポリシーのプリミティブ
オークション、注文板、複数トランザクションの金融ステートマシン、集約バケット、パーミッションレスなクランク、遅延請求/決済、固定小数点単位、独立した算術オラクル、操作レシートの再試行、_hook_completed、_error_messageポリシーを基盤とする金融ステートマシン
Anchor/カスタムエラー、または古い数値デコードカスタムエラーの診断
取引、Phoenix のパーペチュアル、DEX スワップ、サーバー署名による実行オンチェーン取引
エスクローのカストディ、source 引数、エンティティごとの資金、名前付き PDA アカウント、@AccountPlugin.createAccount名前付きエスクローアカウント
ルール算術のオーバーフロー、int64、除算を先に行う制約、桁の大きな値の比較ルール算術
Pyth の USD 価格、小数表記の価格文字列、getPriceFeedScaled、マイクロ USD、整数による価格算術価格フィードの単位とランタイムでの利用可否
ランダムネス、VRF、抽選/ガチャ/シャッフル、@OraclePlugin、requestRandomness、getRandomNumber、isRevealPathランダムネス
Meteora のトークンローンチ、DBC、アンチスナイプ手数料の減衰、DAMM v2、createMeteoraConfig、createMeteoraVirtualPool、claimDammV2PoolFees、withdrawLeftoverMeteora のローンチ
Pump.fun、PumpSwap、@PumpFunPlugin、createToken/createTokenV2、buyExactSolIn、作成者手数料、手数料の分配、updateShareholders、distributeCreatorFees、pumpswapDeposit/pumpswapWithdraw、引数名/単位Pump.fun リファレンス
複数当事者への手数料分配、feepool、mulDivFloor、キーパー/スケジュールによるオンチェーン書き込み、actAs、手数料で賄う rollingSum のビルド許容量oApps のトークノミクス
メール/ソーシャルユーザー向けの埋め込みウォレット、@user.address、Turnkey、auth.wallets埋め込みウォレット
403 anonymous_onchain_blocked、ゲスト/signInAnonymously セッションからのオンチェーンコレクションへの書き込み、poofnet では動作するがメインネットでは動作しないゲストはオンチェーンコレクションに書き込めません
Solana ウォレットを持ち込むログイン、walletLogin、Phantom/Wallet-Standard、SIWSウォレットログイン
onramp()、カードで SOL/USDC を購入、Coinbase Onramp、ウォレットへの入金オンランプ
暗号資産/USDC の受け入れ、payments.acceptCrypto、販売者への精算、直接送金レール暗号資産の受け入れ

Rules Of Thumb

  • オンチェーンログインのデフォルトは、Turnkey のデフォルトのメール/ソーシャル認証に、任意のウォレットログインを加えたものです。 通常のフローでは authMode や auth.wallets を追加しないでください。対応するメール/ソーシャルユーザーはすでに @user.address を持っています。"auth": { "wallets": true } をデプロイするのは、EXTERNAL キーペアのセッション(ウォレットログイン、server-SDK のキーペアクライアント、CLI のキーペアデータレーン)に限ります。完全なルールとオプトアウトについては、docs/embedded-wallets.md -> recommended login を参照してください。
  • ウォレット/オンチェーンの意味でのみ @user.address を使用し、通常の所有権には @user.id を使用してください。bounded-backend スキルを参照してください。
  • ゲスト(signInAnonymously)セッションでは、どのネットワークでも onchain: true のコレクションに書き込めません。 Poofnet、devnet、mainnet のすべてで、トランザクションの構築前に 403 anonymous_onchain_blocked が返されるため、テストネットワークで動作するゲストフローが本番移行後に失敗することはありません。ゲストがアクセスできる範囲はオフチェーンに保ち、最初のオンチェーン書き込みの前にアップグレードを促してください。ゲストは onchain コレクションに書き込めません を参照してください。
  • 関数の既存のマニフェストの説明がアカウント ID を受け付ける場合、パブリックキーではない文字列は、それ自体のプログラム署名付き PDA に解決されます。@contract.address はアプリ全体で共有される ONE つの資金プールです。名前付き ID は名前ごとに別の資金プールになります。すべてのソース、所有者、作成者、宛先が 3 種類すべてのカストディ形式を受け付けると想定せず、関数ページで該当する引数のマニフェストの説明を確認してください。ユーザー資金を別々のプールに分けて扱う場合(エスクロー、オークション、賞金プール、テナントごとの残高など)、受け付けられる場合は名前付きアカウントを使用してください。最初の入金前に決定してください。後から変更する場合は、稼働中の残高を移行する必要があります。
  • オンチェーン書き込みでは、ネットワーク/RPC を明示的に設定し、デフォルトでは devnet を使用してください。書き込み直後の読み取りを確認と見なさないでください。 CLI はトランザクションを直接送信し、エンドポイントは SOLANA_DEVNET_RPC_URL/SOLANA_MAINNET_RPC_URL からのみ読み取ります。フラグ、設定ファイルの設定、公衆 RPC へのフォールバックはありません。 環境変数が設定されていない場合、署名前に validate pre-built transaction: SOLANA_DEVNET_RPC_URL is required ... で書き込みが失敗します。そのため、アプリが realtime_devnet または realtime_mainnet の場合は、bounded を実行するシェルで設定してください。 CLI の送信には明示的な RPC エンドポイントが必要です を参照してください。
  • Mainnet はプレースホルダーではなく、実際の接続先です。プログラムは mainnet-beta で稼働しています。mainnet アプリの作成には有料アカウントプランが必要です(API キーや共有シークレットは不要です)。また、あなたが作成するアプリは、作成者のウォレット(サインイン済みの本人が管理を証明できるウォレット。ローカル CLI キーペア、またはウェブログインの場合は Bounded アカウント自身のウォレットで、権限確認の署名はデプロイごとのブラウザー承認を通じて行われます)によってオンチェーンで所有されます。その所有権を別の人のウォレットに移すことはできません。唯一の引き渡し先は OpenApps エージェントです。OpenApps アプリは、誰もそのキーを保持せずにプラットフォームがポリシーを更新できるよう、OpenApps のカストディキーによってオンチェーンで所有された状態で mainnet 上で動作します。エージェントに渡す mainnet アプリは、あなた自身のウォレットで署名するトランザクションにより、そのキーへ一度だけ移されます(openapps スキルを参照)。docs/onchain.md を参照してください。
  • @contract.address は Solana のプログラム ID を示すセンチネルであり、直接クエリで返されるアプリのエスクローアドレスではありません。 対応する組み込みプラグインは、センチネルをアプリのエスクロー PDA に解決します。 現在デプロイされている Devnet ランタイムでは、センチネルを @AccountPlugin.getAccountAddress(@contract.address) として組み合わせないでください。この関数は現在、文字列のアカウント ID を受け付ける一方、センチネルはアドレス型であるため、この呼び出しは失敗します。 実際のエスクローアドレスが必要な Devnet のポリシークエリでは、現在の Devnet プログラム ID を文字列リテラルとして指定してください:@AccountPlugin.getAccountAddress("openTv7fbpYSseNHYmCZFZ1CZgj4r8D9fKNgEz1qo6F")。 このリテラルは Devnet 固有であり、デプロイ済みプログラムが変更された場合は更新が必要です。 policy-primitives.md を参照してください。
  • ディスカバリー、デプロイ済みランタイムのサポート、ライブネットワークでの検証は、互いに独立した 3 つの状態として扱ってください。
  • フックを作成する前に、オフラインで呼び出し可能なシグネチャの情報源として bounded plugins list --json と bounded plugins describe <plugin.function> --json を使用してください。
  • プラグインやプリミティブを提案する前に、Solana devnet capability catalog を確認してください。
  • コンパイラーのタグ、マニフェスト、証明コントラクト、Poofnet モデル、ルックアップテーブルの項目、ローカルバリデーターのテストから、devnet のサポートを推測しないでください。
  • ライブ環境での証拠にホスト型リリースマーカーを使う場合は、bounded domains list --app-id <id> --env <environment> --json の slugUrl、または成功したサイトデプロイの正確なレシートにある url から、環境が明示されたサイト URL を取得してください。 staging の証拠には、人が表示したホスト名をコピーするのではなく、JSON フィールドそのものがあることを必須にしてください。 bounded apps inspect で確認できるのは、アクティブなポリシー/ランタイムの公開情報であり、ホストされた URL は含まれません。
  • runtime-v1 のデプロイでは runtime-v2 のプリミティブを出力しないでください。docs/policy-primitives.md に従ってください。
  • 名前付きクエリは、プラグインが許可するコレクションに配置してください。オンチェーンデータを読み取る場合は onchain: true、オフチェーン専用プラグイン(@DeFiPlugin.getSwapQuote など)を呼び出す場合やオフチェーンドキュメントを読み取る場合は onchain: false にします。どちらも Solana アプリで動作します。匿名実行が許可されるのは、パスの読み取りルールが呼び出し元を許可する、ID に依存しないクエリです。@user.address/@user.evmAddress を読み取るクエリには、その ID が必要です。匿名で利用できるのはブラウザー SDK であり、CLI ではありません。Solana mainnet では現在、サインアウト状態でのチェーンクエリは失敗するため、プラットフォームのクエリ支払者の修正がリリースされるまでは、そこでサインイン済みのウォレットを必須にしてください。
  • runtime-v3 のガバナンスも同様に扱ってください。デプロイ済みの機能レジストリが v3 を報告してからのみ登録し、ポリシーの意図ではなく、観測されたチェーン状態に基づいてガバナンスを公開してください。
  • Poofnet と Solana の動作を一致させてください。
  • bounded wallet fund は realtime_offchain での明示的な開発用資金提供に限って使用してください。 呼び出し元はアプリの所有者、管理者、または開発者である必要があり、残高は選択したアプリのシミュレートされた台帳内にのみ存在します。
  • 純粋な/読み取り専用のプリミティブは、実際に実行可能なランタイム間で同じ形状を返す必要があります。変更を伴うプリミティブは、モデル化された効果を適用するか、安全側に倒して失敗する必要があります。
  • 検証のみの成功は、パリティのバグです。
  • Poofnet のオンチェーンフックでは、アプリケーション側での成功とは _hook_completed == _transaction_hash のことです。行の存在と _error_message == null は保留中の状態にすぎません。ただし、これらのスタンプはシミュレーター専用です。実際のチェーンプロトコルで、これらを必須とするポリシーの RULE は永久に成立しません。そのような条件で出金を制御すると、一方向の弁となってユーザー資金がロックされ、シミュレーション側の証明とテストはすべて成功したままになります。ルールでは、フック自身が書き込む宣言済みフィールド(paidAt のようなもの)またはフックから導出されたヘッド状態を条件にしてください。予約済みの _ スタンプは Poofnet クライアント専用です。意味上の操作 ID ごとに、ポリシー上許可された再試行経路を用意してください。予約済みレシートスタンプは Poofnet 専用 を参照してください。
  • Helius のミラーリングは環境レベルの Bounded インフラです。環境/ネットワークごとに生のプログラム用 Webhook を 1 つだけ使用し、アプリごとには作成しないでください。アプリの構築者が Webhook URL を作成したり、プロバイダーのシークレットを指定したりすることはありません。オペレーター向けの運用手順(Webhook、シークレット、キュー/DLQ、復旧)は、このスキルではなくモノレポにあります。アプリ側での注意事項については、ミラーリングの完全性 を参照してください。
  • 暗号資産は非カストディアル方式で受け付けられます。販売者は自身のウォレットで決済します。

コメント