building-blocks について
DeFi 開発者向けのプロトコル組み合わせガイドです。マルチチェーンのアドレス、Uniswap V4 のフック、チェーン別の DEX パターン、構成上のリスクを扱います。
主な機能
- 01マルチチェーンのプロトコルアドレス
- 02Uniswap V4 のフックパターン
- 03フラッシュローンと利回り構成の例
- 04チェーン別 DeFi 開発ガイド
- 05プロトコル構成のリスク指針
活用シーン
- 01対象チェーンの DEX やレンディングの調査
- 02独自の Uniswap V4 フックの設計
- 03プロトコル構成前のリスク評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ austintgriffith/ ethskills --skill building-blocksインストール後、Claude Code で/building-blocksを入力して読み込まれたか確認します。
詳細
ビルディングブロック(DeFiレゴ)
よくある誤解
DeFi TVL: 現在のEthereumのDeFi TVLは、DeFi Llamaで確認してください。2023〜2024年の数値を引用している場合、すでに古くなっています。
Uniswap V4は稼働中です。 2025年1月31日に10以上のチェーンでメインネットローンチしました。V4ではフックシステムが導入されました。これはプールにカスタムロジック(動的手数料、TWAMM、指値注文、カスタムオラクル)を追加するものです。フラッシュローン以来、最も大きなコンポーザビリティの向上です。PoolManagerのアドレスはチェーンごとに異なります(V3のように決定論的ではありません)。
コストがすべてを変えました: メインネットでのフラッシュローン・アービトラージにかかるガス代は、現在約$0.05-0.50です(以前は$5-50でした)。これにより、以前は採算が合わなかったコンポーザビリティのパターンが実現可能になります。
各L2で優勢なDEXはUniswapではありません。 AerodromeとVelodromeはAeroに統合され(2025年11月、Dromos Labs)、統合されたDEXがBaseとOptimismの両方で優勢です。CamelotはArbitrumを代表するネイティブDEXです。どのチェーンでもUniswapを前提にしないでください。
主要プロトコルのアドレス(2026年3月確認済み)
| プロトコル | コントラクト | メインネットアドレス |
|---|---|---|
| Uniswap V2 Router | Router | 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D |
| Uniswap V2 Factory | Factory | 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f |
| Uniswap V3 Factory | Factory | 0x1F98431c8aD98523631AE4a59f267346ea31F984 |
| Uniswap V3 SwapRouter02 | Router | 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45 |
| Uniswap V4 PoolManager | PoolManager | 0x000000000004444c5dc75cB358380D2e3dE08A90 |
| Uniswap Universal Router (V4) | Router | 0x66a9893cc07d91d95644aedd05d03f95e1dba8af |
| Aave V3 Pool | Pool | 0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2 |
L2ネイティブプロトコル(Aerodrome、GMX、Pendle、Velodrome、Camelot、SyncSwap、Morpho)を含む、全チェーンのアドレス一覧についてはaddresses/SKILL.mdを参照してください。
Uniswap V4フック(新機能)
フックを使うと、スワップ、流動性の変更、寄付の前後に実行されるカスタムロジックを追加できます。フラッシュローン以来、最も大きなコンポーザビリティの向上です。
フックインターフェース(Solidity)
import {BaseHook} from "v4-periphery/src/utils/BaseHook.sol";
import {IPoolManager} from "v4-core/interfaces/IPoolManager.sol";
import {PoolKey} from "v4-core/types/PoolKey.sol";
import {BeforeSwapDelta, BeforeSwapDeltaLibrary} from "v4-core/types/BeforeSwapDelta.sol";
contract DynamicFeeHook is BaseHook {
constructor(IPoolManager _manager) BaseHook(_manager) {}
function getHookPermissions() public pure override returns (Hooks.Permissions memory) {
return Hooks.Permissions({
beforeInitialize: false,
afterInitialize: false,
beforeAddLiquidity: false,
afterAddLiquidity: false,
beforeRemoveLiquidity: false,
afterRemoveLiquidity: false,
beforeSwap: true, // ← We hook here
afterSwap: false,
beforeDonate: false,
afterDonate: false,
beforeSwapReturnDelta: false,
afterSwapReturnDelta: false,
afterAddLiquidityReturnDelta: false,
afterRemoveLiquidityReturnDelta: false
});
}
// Dynamic fee: higher fee during high-volume periods
function beforeSwap(
address,
PoolKey calldata key,
IPoolManager.SwapParams calldata params,
bytes calldata
) external override returns (bytes4, BeforeSwapDelta, uint24) {
// Return dynamic fee override (e.g., 0.05% normally, 0.30% during volatility)
uint24 fee = _isHighVolatility() ? 3000 : 500;
return (this.beforeSwap.selector, BeforeSwapDeltaLibrary.ZERO_DELTA, fee | 0x800000);
}
}
実際のコードパターンで実現できるフックの用途:
- 動的手数料 — ボラティリティ、時刻、オラクルデータに応じて調整します
- TWAMM — 大口注文を時間をかけて分割し、価格への影響を抑えます
- 指値注文 — 価格がしきい値を超えたときに実行します
- MEV保護 — サーチャーにスワップの順序決定権をオークションで販売します
- カスタムオラクル — スワップごとにTWAPを更新します
コンポーザビリティのパターン(2026年のガス代に対応)
ガス代が1ドル未満になったことで、これらのパターンは少額でも採算が取れるようになりました。
フラッシュローン・アービトラージ
Aaveから借り入れ → Uniswapで利益が出るようにスワップ → Aaveに返済します。すべて1つのトランザクションで実行されます。利益が出ない場合はリバートし、失うのはガス代のみです:約$0.05-0.50。
レバレッジド・イールドファーミング
AaveにETHを預け入れ → ステーブルコインを借り入れ → 追加のETHと交換 → 再度預け入れ → 繰り返します。1ループあたりのガス代は、メインネットで約$0.02、L2では無視できる程度です。
メタアグリゲーション
最適な約定を実現するため、複数のDEXを経由してスワップをルーティングします。1inchとParaswapはUniswap、Curve、Sushiを同時に確認します。
ERC-4626イールドボールト
標準化されたボールトインターフェース、つまり「イールド版のERC-20」です。戦略に関係なく、すべてのボールトが同じ関数を公開します。
import {ERC4626} from "@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol";
import {ERC20, IERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract SimpleYieldVault is ERC4626 {
constructor(IERC20 asset_)
ERC4626(asset_)
ERC20("Vault Shares", "vSHARE")
{}
// totalAssets() drives the share price
// As yield accrues, totalAssets grows → shares worth more
function totalAssets() public view override returns (uint256) {
return IERC20(asset()).balanceOf(address(this)) + _getAccruedYield();
}
}
// Usage: deposit/withdraw are standardized
// vault.deposit(1000e6, msg.sender); // deposit 1000 USDC, get shares
// vault.redeem(shares, msg.sender, msg.sender); // burn shares, get USDC back
// vault.convertToAssets(shares); // how much USDC are my shares worth?
ERC-4626が重要な理由: コンポーザビリティです。どのプロトコルでも、カスタムアダプターなしで任意のボールトを統合できます。Yearn V3、Aaveのラップドトークン、Morphoのボールト、Pendleのイールドトークンは、すべてERC-4626です。
フラッシュローン(Aave V3 — 完全なパターン)
import {FlashLoanSimpleReceiverBase} from
"@aave/v3-core/contracts/flashloan-v3/base/FlashLoanSimpleReceiverBase.sol";
import {IPoolAddressesProvider} from
"@aave/v3-core/contracts/interfaces/IPoolAddressesProvider.sol";
contract FlashLoanArb is FlashLoanSimpleReceiverBase {
constructor(IPoolAddressesProvider provider)
FlashLoanSimpleReceiverBase(provider) {}
function executeArb(address token, uint256 amount) external {
// Borrow `amount` of `token` — must repay + 0.05% fee in same tx
POOL.flashLoanSimple(address(this), token, amount, "", 0);
}
function executeOperation(
address asset,
uint256 amount,
uint256 premium, // 0.05% fee
address,
bytes calldata
) external override returns (bool) {
// --- Your arbitrage logic here ---
// Buy cheap on DEX A, sell expensive on DEX B
// Must end with at least `amount + premium` of `asset`
uint256 owed = amount + premium;
IERC20(asset).approve(address(POOL), owed);
return true; // If unprofitable, revert here — lose only gas (~$0.05-0.50)
}
}
Aave V3 Pool(メインネット): 0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2
フラッシュローン手数料: 0.05%(5ベーシスポイント)。Aaveの債務ポジションに返済する場合は無料です。
Baseでの構築
優勢なDEX:Aero(旧Aerodrome、TVL約$500-600M)です。Uniswapではありません。2025年11月、Dromos LabsはAerodrome(Base)とVelodrome(Optimism)を統合し、Aeroという統合クロスチェーンDEXにしました。コントラクトとve(3,3)モデルはそのままで、ブランドが新しくなりました。
Aerodromeの仕組み(Uniswapとの重要な違い)
- LPはトークンをプールに預け入れ、AEROのエミッションを獲得します(取引手数料ではありません!)
- veAEROの投票者はAEROをロックし、どのプールにエミッションを配分するか投票して、取引手数料の100%と賄賂を獲得します
- LPが直接手数料を獲得するUniswapとは逆の仕組みです
- フライホイール: 最も多くの手数料を生むプール → 最も多くの票を集める → 最も多くのエミッションを獲得する → より多くのLPを集める → 流動性が深まる → 手数料が増える
Aerodrome Swap(ルーターインターフェース)
// Aerodrome Router: 0xcF77a3Ba9A5CA399B7c97c74d54e5b1Beb874E43 (Base)
struct Route {
address from;
address to;
bool stable; // true = stable pair (like Curve), false = volatile (like Uni V2)
address factory; // 0x420DD381b31aEf6683db6B902084cB0FFECe40Da
}
// Swap via Router
function swapExactTokensForTokens(
uint256 amountIn,
uint256 amountOutMin,
Route[] calldata routes,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
Base固有のパターン
- Coinbase Smart Wallet — ERC-4337ウォレット、パスキー認証、Coinbase paymasterによるガスレス取引
- Farcaster Frames v2 — ソーシャル投稿に埋め込まれ、オンチェーン操作を実行するミニアプリ
- AgentKit — AIエージェントがオンチェーンで操作するためのCoinbaseのフレームワーク
Arbitrumでの構築(DeFi流動性が最も高いチェーン)
GMX V2 — GMプールの仕組み
- 各市場には、それぞれ独立したプールがあります(V1の単一GLPプールとは異なります)
- LPはGM(流動性)プールに預け入れ、GMトークンを受け取ります
- 完全担保市場: ETH/USDはETHとUSDCで担保されます。担保トークンは取引対象の資産と一致します。
- 合成市場: DOGE/USDはETHとUSDCで担保されます。しきい値に達すると、ADL(自動デレバレッジ)が使用されます。
- LPは取引手数料、清算手数料、借入手数料、スワップ手数料を獲得します。ただし、トレーダーの損益によるリスクも負います。
Pendle — 利回りのトークン化
Pendleは、利回りを生む資産を元本と利回りの要素に分割します。
- SY(Standardized Yield): 利回りを生むあらゆる資産をラップします。例:wstETH → SY-wstETH。
- PT(Principal Token): 元本です。満期時に1:1で償還できます。割引価格で取引されます(割引率=インプライド利回り)。
- YT(Yield Token): 満期までのすべての利回りです。満期時に価値は0になります。
- 基本不変条件:
SY_value = PT_value + YT_value
ユースケース:
- 割引価格でPTを購入する=固定利回りを確定する(ゼロクーポン債のようなもの)
- YTを購入する=利回りへのエクスポージャーをレバレッジする(利回りの上昇に賭ける)
- PendleプールにLPとして参加する=取引手数料とPENDLEインセンティブを獲得する
Arbitrum固有のテクノロジー
- Stylus: EVMと並行して、Rust/C++/WASMでスマートコントラクトを記述できます(計算負荷の高い処理でガスを10~100倍節約)
- Orbit: カスタムL3チェーンを立ち上げます(メインネットで47件稼働中)
検証済みプロトコルアドレス(GMX、Pendle、Camelot、Aerodrome、Velodrome、SyncSwap、Morpho)については、addresses/SKILL.mdを参照してください。
発見に役立つリソース
- DeFi Llama: https://defillama.com — TVLランキング、利回りランキング、全チェーン
- Dune Analytics: https://dune.com — オンチェーンデータをクエリする
- ethereum.org/en/dapps/ — 厳選された一覧
コンポーザビリティのためのガードレール
- 組み合わせるすべてのプロトコルは依存関係になります。 Aaveがハッキングされると、Aaveに依存するボールトにも影響します。
- オラクルの操作はエクスプロイトにつながります。 オラクルの情報源を確認してください。
- AMMのLPにはインパーマネントロスが実際に発生します。流動性を提供する前に、その影響を定量化してください。
- 安全な2つのコントラクトを組み合わせても、安全でない挙動が生じることがあります。 組み合わせを監査してください。
- 少額から始めてください。 規模を拡大する前に、最小限の金額でテストしてください。
- フラッシュローン攻撃は、単一のトランザクション内で価格を操作できます。これを考慮して設計してください。