defi について
StacksのメインネットでDeFi操作を行うスキルです。ALEX DEXのスワップとZest Protocolの貸し借りに対応し、書き込み操作にはウォレットのロック解除が必要です。
主な機能
- 01ALEX DEXの見積もりとスワップ
- 02プールと対応アセットの確認
- 03Zestのポジション確認
- 04供給、引き出し、借り入れ、返済
- 05担保の有効化と報酬請求
- 06メインネット専用操作
活用シーン
- 01トークンスワップの受取予想額を確認
- 02ALEXの取引プール情報を調査
- 03Zestの貸し借りと担保を管理
- 04sBTC供給の報酬を請求
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aibtcdev/ skills --skill defiインストール後、Claude Code で/defiを入力して読み込まれたか確認します。
同梱ファイルAGENT.mddefi.ts
詳細
DeFi スキル
2 つのプロトコルにわたる DeFi 操作を提供します。
- ALEX DEX — トークンスワップ用の Stacks 上の自動マーケットメーカー(AMM)。ルーティングと価格検出に alex-sdk を使用します。メインネットのみ。
- Zest Protocol — Stacks 上のレンディングおよび借入プロトコル。資産を預けて利息を獲得し、担保を使って借り入れます。メインネットのみ。
書き込み操作(swap、supply、withdraw、borrow、repay、claim-rewards)には、ウォレットのロック解除が必要です(最初に bun run wallet/wallet.ts unlock を実行してください)。読み取り操作(get-swap-quote、get-pool-info、list-pools、list-assets、get-position)でも、ルーティングコンテキストのためにウォレットのロック解除が必要です。
使用方法
bun run defi/defi.ts <subcommand> [options]
サブコマンド
alex-get-swap-quote
ALEX DEX のスワップ見積もりを取得します。tokenX を tokenY にスワップした場合の予想出力量を返します。
bun run defi/defi.ts alex-get-swap-quote --token-x <contractId> --token-y <contractId> --amount-in <units>
オプション:
--token-x(必須)— 入力トークン:コントラクト ID(例:SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-wstx-v2)またはシンボル(STX、ALEX)--token-y(必須)— 出力トークン:コントラクト ID またはシンボル--amount-in(必須)— スワップする tokenX の量(最小単位)
出力:
{
"network": "mainnet",
"quote": {
"tokenIn": "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-wstx-v2",
"tokenOut": "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex",
"amountIn": "1000000",
"expectedAmountOut": "52341",
"route": ["STX", "ALEX"]
}
}
alex-swap
ALEX DEX でトークンスワップを実行します。ウォレットのロック解除が必要です。
bun run defi/defi.ts alex-swap --token-x <contractId> --token-y <contractId> --amount-in <units> [--min-amount-out <units>]
オプション:
--token-x(必須)— 入力トークン:コントラクト ID またはシンボル--token-y(必須)— 出力トークン:コントラクト ID またはシンボル--amount-in(必須)— スワップする tokenX の量(最小単位)--min-amount-out(任意)— スリッページ保護のための許容最小出力量(デフォルト:0)
出力:
{
"success": true,
"txid": "abc123...",
"swap": {
"tokenIn": "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-wstx-v2",
"tokenOut": "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex",
"amountIn": "1000000",
"minAmountOut": "0"
},
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet"
}
alex-get-pool-info
ALEX DEX の流動性プール情報を取得します。トークンペアの準備金残高とプールの詳細を返します。
bun run defi/defi.ts alex-get-pool-info --token-x <contractId> --token-y <contractId>
オプション:
--token-x(必須)— 1 つ目のトークンのコントラクト ID またはシンボル--token-y(必須)— 2 つ目のトークンのコントラクト ID またはシンボル
出力:
{
"network": "mainnet",
"pool": {
"poolId": "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-wstx-v2-SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex",
"tokenX": "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-wstx-v2",
"tokenY": "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex",
"reserveX": "5000000000",
"reserveY": "12000000000",
"totalShares": "8000000000"
}
}
alex-list-pools
ALEX DEX で利用可能なすべての取引プールを一覧表示します。
bun run defi/defi.ts alex-list-pools [--limit <n>]
オプション:
--limit(任意)— 返すプールの最大数(デフォルト:50)
出力:
{
"network": "mainnet",
"poolCount": 3,
"pools": [
{
"id": 1,
"pair": "wstx-v2/alex",
"tokenX": "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-wstx-v2",
"tokenY": "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex",
"factor": "100000000"
}
],
"usage": "Use the tokenX and tokenY contract IDs with alex-get-swap-quote or alex-swap"
}
zest-list-assets
Zest Protocol でサポートされているすべての資産を一覧表示します。
bun run defi/defi.ts zest-list-assets
出力:
{
"network": "mainnet",
"assetCount": 3,
"assets": [
{
"symbol": "sBTC",
"name": "Stacked Bitcoin",
"contractId": "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-token"
},
{
"symbol": "stSTX",
"name": "Stacked STX",
"contractId": "SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.ststx-token"
}
],
"usage": "Use the symbol (e.g., 'stSTX') or full contract ID in other zest-* commands"
}
zest-get-position
Zest Protocol におけるユーザーのレンディングポジションを取得します。
bun run defi/defi.ts zest-get-position --asset <symbolOrContractId> [--address <addr>]
オプション:
--asset(必須)— 資産のシンボル(例:stSTX、aeUSDC)または完全なコントラクト ID--address(任意)— ユーザーのアドレス(省略した場合はアクティブなウォレットを使用)
出力:
{
"network": "mainnet",
"address": "SP2...",
"position": {
"asset": "SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.ststx-token",
"supplied": "5000000",
"borrowed": "0"
}
}
zest-supply
Zest Protocol のレンディングプールに資産を預けて利息を獲得します。ウォレットのロック解除が必要です。
bun run defi/defi.ts zest-supply --asset <symbolOrContractId> --amount <units> [--on-behalf-of <addr>]
オプション:
--asset(必須)— 資産のシンボルまたは完全なコントラクト ID--amount(必須)— 預け入れる量(最小単位)--on-behalf-of(任意)— 別のアドレスに代わって預け入れます
出力:
{
"success": true,
"txid": "abc123...",
"action": "supply",
"asset": "SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.ststx-token",
"amount": "5000000",
"onBehalfOf": "SP2...",
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet"
}
zest-withdraw
Zest Protocol のレンディングプールから資産を引き出します。ウォレットのロック解除が必要です。
bun run defi/defi.ts zest-withdraw --asset <symbolOrContractId> --amount <units>
オプション:
--asset(必須)— 資産のシンボルまたは完全なコントラクト ID--amount(必須)— 引き出す量(最小単位)
出力:
{
"success": true,
"txid": "abc123...",
"action": "withdraw",
"asset": "SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.ststx-token",
"amount": "5000000",
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet"
}
zest-borrow
預け入れた担保を使って Zest Protocol から資産を借り入れます。ウォレットのロック解除が必要です。
bun run defi/defi.ts zest-borrow --asset <symbolOrContractId> --amount <units>
オプション:
--asset(必須)— 資産のシンボルまたは完全なコントラクト ID--amount(必須)— 借り入れる量(最小単位)
出力:
{
"success": true,
"txid": "abc123...",
"action": "borrow",
"asset": "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-token",
"amount": "100000",
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet"
}
zest-repay
借り入れた資産を Zest Protocol に返済します。ウォレットのロック解除が必要です。
bun run defi/defi.ts zest-repay --asset <symbolOrContractId> --amount <units> [--on-behalf-of <addr>]
オプション:
--asset(必須)— 資産のシンボルまたは完全なコントラクト ID--amount(必須)— 返済する量(最小単位)--on-behalf-of(任意)— 別のアドレスに代わって返済します
出力:
{
"success": true,
"txid": "abc123...",
"action": "repay",
"asset": "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-token",
"amount": "100000",
"onBehalfOf": "SP2...",
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet"
}
zest-enable-collateral
既存の zTokens を Zest Protocol v2 の担保として登録します。v0-4-market.collateral-add を呼び出します。zest-supply を経由せずに直接ボールトに入金した場合にのみ必要です(zest-supply は担保登録をアトミックに処理します)。ロック解除済みのウォレットが必要です。
bun run defi/defi.ts zest-enable-collateral --asset <symbolOrContractId> --amount <units>
オプション:
--asset(必須)— アセットのシンボル、または完全なコントラクト ID--amount(必須)— 担保として追加する zTokens の数量(最小単位)
出力:
{
"success": true,
"txid": "abc123...",
"action": "enable_collateral",
"asset": "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-token",
"amount": "100000",
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet"
}
zest-claim-rewards
Zest Protocol のインセンティブプログラムで蓄積した報酬を請求します。sBTC の供給者は wSTX 報酬を獲得できます。ロック解除済みのウォレットが必要です。
bun run defi/defi.ts zest-claim-rewards [--asset <symbolOrContractId>]
オプション:
--asset(任意)— 報酬を獲得するために供給したアセット(デフォルト:sBTC)
出力:
{
"success": true,
"txid": "abc123...",
"action": "claim_rewards",
"asset": "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-token",
"rewardAsset": "wSTX",
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet",
"note": "Rewards will be sent to your wallet once the transaction confirms."
}
注意事項
- ALEX DEX と Zest Protocol はメインネット専用です。テストネットで呼び出すとエラーが返されます。
- ALEX のスワップ見積もりには、トークンシンボル(
STX、ALEX)または完全なコントラクト ID を使用できます。利用可能なペアを確認するには、alex-list-poolsを使用してください。 - Zest の操作には、アセットシンボル(
stSTX、aeUSDC、sBTC)または完全なコントラクト ID を使用できます。対応アセットを確認するには、zest-list-assetsを使用してください。 - ウォレット操作にはロック解除済みのウォレットが必要です(最初に
bun run wallet/wallet.ts unlockを実行してください)。 - 借入操作には、プロトコル内に十分な担保が必要です。借り入れる前に、アセットを供給していることを確認してください。