manifest について
Manifestは、Manifestのパーミッションレスなオーダーブックを使った取引、ルーティング、ポートフォリオ、フロントエンド連携を支援するスキルです。市場データの読み取り、注文操作、ウォレット設定、ローカルとグローバルの流動性の選択を案内します。
主な機能
- 01市場状態とオーダーブックの読み取り
- 02SDKを使った注文とキャンセル
- 03ウォレットアダプター設定とシート取得の案内
- 04ローカル残高とグローバル残高の区別
- 05リバース注文など各種注文タイプへの対応
活用シーン
- 01Manifestのオーダーブック表示
- 02ブラウザーウォレットからの注文
- 03複数市場での資金共有
- 04継続的な両側流動性の提供
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sendaifun/ skills --skill manifestインストール後、Claude Code で/manifestを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
docs/troubleshooting.mdexamples/global-liquidity/global-order.tsexamples/read-market/read-market.tsexamples/reverse-liquidity/amm-style-batch.tsexamples/wallet-order/place-order.tsresources/manifest-actions.mdmanifest-sdk.mdtemplates/manifest-setup.ts詳細
Manifest DEX 統合ガイド
Manifest のパーミッションレスなオーダーブックを基盤として、取引、ルーティング、ポートフォリオ、フロントエンドの統合を構築します。
概要
以下の作業を行う場合に、このスキルを使用します。
- Manifest の市場状態やオーダーブックを読み取る
- Manifest SDK を使用して注文の発注、キャンセル、入金、出金を行う
- 市場ローカル残高とグローバル残高のどちらを使うか判断する
- ラッパーのセットアップ、シートの取得、ウォレットアダプターのフローを処理する
Limit、PostOnly、ImmediateOrCancel、Global、Reverse、ReverseTightの注文タイプを理解する
必要に応じて、次の参考資料を読み込んでください。
resources/manifest-actions.mdresources/manifest-sdk.mddocs/troubleshooting.mdexamples/read-market/read-market.tsexamples/wallet-order/place-order.tsexamples/global-liquidity/global-order.tsexamples/reverse-liquidity/amm-style-batch.tstemplates/manifest-setup.ts
手順
- 作業が読み取り専用の市場アクセスか、トランザクション構築かを判断します。
- 読み取り専用アクセスでは、
Marketの読み取りまたはManifestClient.getClientReadOnly(...)を優先します。 - トランザクション構築では、署名者が管理するフローには
getClientForMarket(...)を使用します。ウォレットアダプターのフローでは、まずgetSetupIxs(...)を使用してからgetClientForMarketNoPrivateKey(...)を使用します。 - 流動性を市場ローカル(ラッパー残高と市場シート)にするか、グローバル(グローバルアカウントと
OrderType.Global)にするかを判断します。 - 継続的な両側流動性が必要な場合は、通常の指値注文の代わりに
ReverseまたはReverseTightを検討します。 - UI やオーダーブックの作業では、表示用に整形されたレベルを取得できる
bidsL2()とasksL2()を優先します。 - クリーンアップ動作を文書化または実装する場合は、ラッパーレベルのキャンセルとコアレベルのキャンセルを区別します。
cancelAllIx()では、reverse と global に関するすべてのエッジケースを完全には網羅できません。より確実にクリーンアップするにはcancelAllOnCoreIx()を使用します。 - 次の前提条件を明示します。
- クラスター
- 市場アドレス
- トレーダー/署名者のモデル
- ラッパー/グローバルのセットアップがすでに完了しているかどうか
例
基本的な使い方
ユーザーから「Manifest 市場の最良買い気配と最良売り気配を表示して」と頼まれた場合:
エージェントは次の手順を行います。
Market.loadFromAddress(...)またはManifestClient.getClientReadOnly(...)を使用します。bestBidPrice()とbestAskPrice()、またはbidsL2()/asksL2()を読み取ります。- 署名やセットアップの処理を加えずに、価格を返します。
ウォレットでの取引フロー
ユーザーから「ブラウザーウォレットで Manifest の注文を発注して」と頼まれた場合:
エージェントは次の手順を行います。
ManifestClient.getSetupIxs(...)を呼び出します。- セットアップが必要な場合は、まずラッパーの状態を作成し、必要に応じてシートを取得します。
- 次に
ManifestClient.getClientForMarketNoPrivateKey(...)を使用します。 client.placeOrderIx(...)で注文命令を構築します。
グローバル流動性のフロー
ユーザーから「同じ資金を複数の Manifest 市場で使って」と頼まれた場合:
エージェントは次の手順を行います。
- この要件には市場ローカル残高では不十分であることを説明します。
createGlobalAddTraderIx(...)を使用してグローバルアカウントをセットアップします。globalDepositIx(...)で入金します。OrderType.Globalの注文を発注します。
Reverse 注文
ユーザーから「約定後に反転する継続的な流動性を提供して」と頼まれた場合:
エージェントは次の手順を行います。
OrderType.ReverseまたはOrderType.ReverseTightを推奨します。- reverse 注文では
lastValidSlotの代わりにspreadBpsを使用することを説明します。 - より高精度な狭いスプレッドが必要な場合は、
ReverseTightを使用します。 - クリーンアップにはラッパーレベルでのキャンセルだけでなく、
cancelAllOnCoreIx()が必要になる場合があることを伝えます。
このスキルに含まれる、コピーしてすぐ使えるサンプル:
examples/read-market/read-market.tsexamples/wallet-order/place-order.tsexamples/global-liquidity/global-order.tsexamples/reverse-liquidity/amm-style-batch.ts
ガイドライン
- DO: ウォレットアダプターを使った取引フローの前に、
getSetupIxs(...)を使用してください。 - DO: 匿名での確認やセットアップ前の確認には、
getClientReadOnly(...)を使用してください。 - DO: UI に表示するオーダーブックには、
bidsL2()/asksL2()を使用してください。 - DO: マーケット単位のアカウントロジックとグローバルアカウントのロジックを分けてください。
- DO: 関連する場合は、ラッパーの状態、マーケットシート、グローバルアカウントについて明示してください。
- DON'T: 接続済みのウォレットに、ラッパーの状態やマーケットシートがすでにあると想定しないでください。
- DON'T:
OrderType.Globalを通常のマーケット単位の注文と同等に扱わないでください。 - DON'T:
cancelAllIx()を使えば、リバース注文やグローバル注文に関する例外ケースも常にすべてクリーンアップできると想定しないでください。 - DON'T: 例で秘密鍵を要求したり、埋め込んだりしないでください。
よくあるエラー
エラー:読み取り専用です
原因:読み取り専用クライアントに対して書き込みメソッドを呼び出したか、支払者/ラッパーのコンテキストなしで呼び出しました。
解決策:getClientForMarket(...) に切り替えるか、getSetupIxs(...) のフローを完了してから、getClientForMarketNoPrivateKey(...) を使用してください。
エラー:セットアップがまだ必要です
原因:ラッパーの作成またはマーケットシートの取得が完了していません。
解決策:通常のラッパーベースの取引アクションを構築する前に、ManifestClient.getSetupIxs(...) が返す命令を実行してください。
エラー:グローバル注文への資金供給が正しくありません
原因:トレーダーが、対応するトークンの資金が入ったグローバルアカウントを持たずに、OrderType.Global を使用しています。
解決策:必要に応じて createGlobalAddTraderIx(...) を実行し、次に globalDepositIx(...) を実行してから、グローバル注文を出してください。
エラー:全注文のキャンセル後もリバース注文/グローバル注文が残っています
原因:ラッパー側のキャンセルでは、コアレベルのすべての注文状態を完全にはカバーできません。
解決策:コアの完全なクリーンアップが必要な場合は、cancelAllOnCoreIx() を使用してください。
参考資料
- 公式サイト:
https://manifest.trade - SDK パッケージ:
https://www.npmjs.com/package/@bonasa-tech/manifest-sdk - ソースリポジトリ:
https://github.com/Bonasa-Tech/manifest - TypeScript クライアントのドキュメント:
https://github.com/Bonasa-Tech/manifest/tree/main/client/ts