defi-protocols について
defi-protocols は、DeFi プロトコルを開発する人向けのスキルで、AMM、レンディング、利回り戦略、オラクル連携を扱います。実装例や数式に加え、セキュリティ確認項目とよくある問題への対処をまとめています。
主な機能
- 01AMMの仕組みとスワップ計算
- 02レンディング市場と清算ロジック
- 03利回り戦略と報酬分配
- 04オラクル連携と鮮度確認
- 05セキュリティ項目と一般的なリスク
活用シーン
- 01AMMのスワップ計算を実装
- 02レンディング金利と清算ロジックを設計
- 03オラクル価格データを連携・検証
- 04プロトコルの一般的なセキュリティリスクを確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pluginagentmarketplace/ custom-plugin-blockchain --skill defi-protocolsインストール後、Claude Code で/defi-protocolsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/config.yamlschema.jsonreferences/GUIDE.mdPATTERNS.mdscripts/validate.py詳細
DeFi プロトコルスキル
AMM の仕組み、貸付システム、利回り最適化、オラクル統合など、DeFi プロトコル開発を習得できます。
クイックスタート
# Invoke this skill for DeFi development
Skill("defi-protocols", protocol_type="amm", chain="ethereum")
対象トピック
1. AMM(自動マーケットメーカー)
分散型取引所を構築します。
- 定積積:x * y = k(Uniswap V2)
- 集中流動性:ティックベース(Uniswap V3)
- ステーブルスワップ:Curve の不変式
- TWAP:時間加重平均価格
2. 貸付プロトコル
貸付市場を作成します。
- 過剰担保型:Aave/Compound モデル
- 金利:利用率ベースの曲線
- 清算:健全性係数、インセンティブ
- 分離市場:リスクの区分
3. 利回り最適化
リターンを最大化します。
- 自動複利運用:ボールト戦略
- 流動性マイニング:報酬の分配
- veTokens:投票ロック型ガバナンス
- 賄賂:ゲージ投票のインセンティブ
4. オラクル統合
価格フィードを保護します。
- Chainlink:分散型オラクル
- TWAP:価格操作への耐性
- 鮮度チェック:価格の鮮度
- フォールバック:複数オラクルの構成
コード例
AMM スワップ計算
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
library SwapMath {
uint256 constant FEE_NUMERATOR = 997;
uint256 constant FEE_DENOMINATOR = 1000;
/// @notice Calculate output amount for constant product AMM
function getAmountOut(
uint256 amountIn,
uint256 reserveIn,
uint256 reserveOut
) internal pure returns (uint256) {
uint256 amountInWithFee = amountIn * FEE_NUMERATOR;
uint256 numerator = amountInWithFee * reserveOut;
uint256 denominator = reserveIn * FEE_DENOMINATOR + amountInWithFee;
return numerator / denominator;
}
/// @notice Calculate price impact percentage (basis points)
function getPriceImpact(
uint256 amountIn,
uint256 reserveIn
) internal pure returns (uint256) {
return (amountIn * 10000) / (reserveIn + amountIn);
}
}
Chainlink オラクル
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";
contract PriceOracle {
AggregatorV3Interface public immutable priceFeed;
uint256 public constant STALENESS_THRESHOLD = 1 hours;
error StalePrice();
error InvalidPrice();
constructor(address feed) {
priceFeed = AggregatorV3Interface(feed);
}
function getPrice() external view returns (uint256) {
(, int256 price,, uint256 updatedAt,) = priceFeed.latestRoundData();
if (block.timestamp - updatedAt > STALENESS_THRESHOLD) {
revert StalePrice();
}
if (price <= 0) revert InvalidPrice();
return uint256(price);
}
}
フラッシュローンのコールバック
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "@aave/v3-core/contracts/flashloan/base/FlashLoanSimpleReceiverBase.sol";
contract Arbitrage is FlashLoanSimpleReceiverBase {
function executeOperation(
address asset,
uint256 amount,
uint256 premium,
address,
bytes calldata
) external override returns (bool) {
// Execute arbitrage logic here
// Repay: amount + premium
IERC20(asset).approve(address(POOL), amount + premium);
return true;
}
}
DeFi 数式
定積積 AMM
Invariant: x * y = k
Output: dy = y - k/(x + dx)
Price: p = y/x
Slippage: dx/(x + dx) * 100%
金利
Utilization: U = borrows / (deposits + borrows)
Borrow Rate: R = base + slope * U (when U < optimal)
Supply Rate: R_supply = R_borrow * U * (1 - reserve_factor)
健全性係数
HF = (collateral * liquidation_threshold) / debt
Liquidation when HF < 1
よくある落とし穴
| 落とし穴 | リスク | 防止策 |
|---|---|---|
| 現物価格オラクル | フラッシュローンによる操作 | TWAP を使用 |
| スリッページチェックなし | サンドイッチ攻撃 | 最小出力を強制 |
| 古い価格 | 誤った清算 | updatedAt をチェック |
| 再入可能性 | 資金の流出 | CEI + ガード |
セキュリティチェックリスト
- オラクルの鮮度を検証する
- スリッページを保護する
- フラッシュローン攻撃への耐性
- 再入可能性ガード
- 管理者のアクセス制御
- 緊急停止メカニズム
- パラメーターのタイムロック
トラブルシューティング
「オラクル価格の乖離」
# Compare oracle vs DEX price
cast call $ORACLE "latestRoundData()" --rpc-url $RPC
cast call $POOL "slot0()" --rpc-url $RPC
「サンドイッチ攻撃を検出しました」
最小出力の強制を追加します。
require(amountOut >= minAmountOut, "Slippage exceeded");
プロトコルアドレス(メインネット)
| プロトコル | コントラクト |
|---|---|
| Uniswap V3 Router | 0xE592427A0AEce92De3Edee1F18E0157C05861564 |
| Aave V3 Pool | 0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2 |
| Chainlink ETH/USD | 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 |
関連項目
- Bonded Agent:
04-defi-specialist - 関連スキル:
solidity-development、smart-contract-security
バージョン履歴
| バージョン | 日付 | 変更内容 |
|---|---|---|
| 2.0.0 | 2025-01 | 数式とセキュリティを含む本番品質のリリース |
| 1.0.0 | 2024-12 | 初回リリース |
コメント
Markdown 対応