building-blocks
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseBuilding Blocks (DeFi Legos)
构建模块(DeFi乐高)
What You Probably Got Wrong
你可能误解的几个点
DeFi TVL: Ethereum DeFi TVL is $50B+ (Feb 2026). If you're quoting numbers from 2023-2024, they're stale.
Uniswap V4 is live. Launched mainnet January 31, 2025 on 10+ chains. V4 introduced a hooks system — custom logic attached to pools (dynamic fees, TWAMM, limit orders, custom oracles). This is the biggest composability upgrade since flash loans. PoolManager addresses are different per chain (NOT deterministic like V3).
Costs changed everything: A flash loan arbitrage on mainnet costs ~$0.05-0.50 in gas now (was $5-50). This opens composability patterns that were previously uneconomical.
The dominant DEX on each L2 is NOT Uniswap. Aerodrome and Velodrome merged into Aero (November 2025, Dromos Labs) — the unified DEX dominates both Base and Optimism. Camelot is a major native DEX on Arbitrum. Don't default to Uniswap on every chain.
DeFi总锁仓量(TVL): 以太坊DeFi总锁仓量已超过500亿美元(2026年2月数据)。如果你引用的是2023-2024年的数据,那已经过时了。
Uniswap V4已上线主网:于2025年1月31日在10多条链上推出。V4引入了Hooks系统——可附加到资金池的自定义逻辑(如动态手续费、TWAMM、限价订单、自定义预言机)。这是自闪电贷以来最大的组合性升级。不同链上的PoolManager地址各不相同(与V3的确定性地址不同)。
Gas成本彻底改变格局: 主网的闪电贷套利Gas成本现在约为0.05-0.5美元(此前为5-50美元)。这让原本不经济的组合性模式变得可行。
各Layer2的主流DEX并非都是Uniswap:Aerodrome与Velodrome已合并为Aero(2025年11月,由Dromos Labs推出)——这款统一的DEX在Base和Optimism上占据主导地位。Camelot是Arbitrum上的主流原生DEX。不要默认在所有链上都使用Uniswap。
Key Protocol Addresses (Verified Feb 2026)
核心协议地址(2026年2月验证)
| Protocol | Contract | Mainnet Address |
|---|---|---|
| Uniswap V2 Router | Router | |
| Uniswap V2 Factory | Factory | |
| Uniswap V3 Factory | Factory | |
| Uniswap V3 SwapRouter02 | Router | |
| Uniswap V4 PoolManager | PoolManager | |
| Uniswap Universal Router (V4) | Router | |
| Aave V3 Pool | Pool | |
See for complete multi-chain address list including L2-native protocols (Aerodrome, GMX, Pendle, Velodrome, Camelot, SyncSwap, Morpho).
addresses/SKILL.md| 协议 | 合约类型 | 主网地址 |
|---|---|---|
| Uniswap V2 Router | Router | |
| Uniswap V2 Factory | Factory | |
| Uniswap V3 Factory | Factory | |
| Uniswap V3 SwapRouter02 | Router | |
| Uniswap V4 PoolManager | PoolManager | |
| Uniswap Universal Router (V4) | Router | |
| Aave V3 Pool | Pool | |
完整的多链地址列表(包括Layer2原生协议Aerodrome、GMX、Pendle、Velodrome、Camelot、SyncSwap、Morpho)请查看。
addresses/SKILL.mdUniswap V4 Hooks (New)
Uniswap V4 Hooks(新功能)
Hooks let you add custom logic that runs before/after swaps, liquidity changes, and donations. This is the biggest composability upgrade since flash loans.
Hooks允许你添加在交易、流动性变更、捐赠操作前后运行的自定义逻辑。这是自闪电贷以来最大的组合性升级。
Hook Interface (Solidity)
Hook接口(Solidity)
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);
}
}Hook use cases with real code patterns:
- Dynamic fees — adjust based on volatility, time-of-day, or oracle data
- TWAMM — split large orders over time to reduce price impact
- Limit orders — execute when price crosses a threshold
- MEV protection — auction swap ordering rights to searchers
- Custom oracles — TWAP updated on every swap
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, // ← 在此处挂载Hook
afterSwap: false,
beforeDonate: false,
afterDonate: false,
beforeSwapReturnDelta: false,
afterSwapReturnDelta: false,
afterAddLiquidityReturnDelta: false,
afterRemoveLiquidityReturnDelta: false
});
}
// 动态手续费:高交易量时段收取更高手续费
function beforeSwap(
address,
PoolKey calldata key,
IPoolManager.SwapParams calldata params,
bytes calldata
) external override returns (bytes4, BeforeSwapDelta, uint24) {
// 返回动态手续费覆盖值(例如,正常时段0.05%,波动时段0.30%)
uint24 fee = _isHighVolatility() ? 3000 : 500;
return (this.beforeSwap.selector, BeforeSwapDeltaLibrary.ZERO_DELTA, fee | 0x800000);
}
}Hook的实际应用场景:
- 动态手续费——根据波动性、时段或预言机数据调整手续费
- TWAMM——将大额订单拆分执行以降低价格冲击
- 限价订单——当价格突破阈值时自动执行
- MEV防护——将交易排序权拍卖给搜索者
- 自定义预言机——每次交易后更新TWAP
Composability Patterns (Updated for 2026 Gas)
组合性模式(适配2026年Gas成本)
These patterns are now economically viable even for small amounts due to sub-dollar gas:
由于Gas成本降至1美元以下,这些模式即使对于小额资金也具备经济可行性:
Flash Loan Arbitrage
闪电贷套利
Borrow from Aave → swap on Uniswap for profit → repay Aave. All in one transaction. If unprofitable, reverts (lose only gas: ~$0.05-0.50).
从Aave借入资金→在Uniswap进行交易获利→偿还Aave。所有操作在单笔交易中完成。若无利润则回滚(仅损失Gas费:约0.05-0.5美元)。
Leveraged Yield Farming
杠杆收益耕作
Deposit ETH on Aave → borrow stablecoin → swap for more ETH → deposit again → repeat. Gas cost per loop: ~$0.02 on mainnet, negligible on L2.
在Aave存入ETH→借入稳定币→兑换为更多ETH→再次存入→重复操作。主网每轮循环Gas成本约0.02美元,Layer2上可忽略不计。
Meta-Aggregation
元聚合
Route swaps across multiple DEXs for best execution. 1inch and Paraswap check Uniswap, Curve, Sushi simultaneously.
跨多个DEX路由交易以获取最优执行价格。1inch和Paraswap会同时检查Uniswap、Curve、Sushi等平台。
ERC-4626 Yield Vaults
ERC-4626收益金库
Standard vault interface — the "ERC-20 of yield." Every vault exposes the same functions regardless of strategy.
solidity
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?Why ERC-4626 matters: Composability. Any protocol can integrate any vault without custom adapters. Yearn V3, Aave's wrapped tokens, Morpho vaults, Pendle yield tokens — all ERC-4626.
标准化金库接口——“收益版ERC-20”。无论采用何种策略,所有金库都暴露相同的函数。
solidity
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()决定份额价格
// 随着收益累积,totalAssets增长→份额价值提升
function totalAssets() public view override returns (uint256) {
return IERC20(asset()).balanceOf(address(this)) + _getAccruedYield();
}
}
// 使用方式:存入/取出操作标准化
// vault.deposit(1000e6, msg.sender); // 存入1000 USDC,获取份额
// vault.redeem(shares, msg.sender, msg.sender); // 销毁份额,取回USDC
// vault.convertToAssets(shares); // 我的份额价值多少USDC?ERC-4626的重要性: 组合性。任何协议无需自定义适配器即可集成任意金库。Yearn V3、Aave包装代币、Morpho金库、Pendle收益代币——均采用ERC-4626标准。
Flash Loan (Aave V3 — Complete Pattern)
闪电贷(Aave V3——完整模式)
solidity
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 (mainnet):
Flash loan fee: 0.05% (5 basis points). Free if you repay to an Aave debt position.
0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2solidity
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 {
// 借入`amount`数量的`token`——必须在同一交易中偿还本金+0.05%手续费
POOL.flashLoanSimple(address(this), token, amount, "", 0);
}
function executeOperation(
address asset,
uint256 amount,
uint256 premium, // 0.05%手续费
address,
bytes calldata
) external override returns (bool) {
// --- 在此处编写你的套利逻辑 ---
// 在DEX A低价买入,在DEX B高价卖出
// 最终必须持有至少`amount + premium`数量的`asset`
uint256 owed = amount + premium;
IERC20(asset).approve(address(POOL), owed);
return true; // 若无利润,在此处回滚——仅损失Gas费(约0.05-0.5美元)
}
}Aave V3 Pool(主网):
闪电贷手续费: 0.05%(5个基点)。若偿还至Aave债务头寸则免手续费。
0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2Building on Base
基于Base构建
Dominant DEX: Aero (formerly Aerodrome, ~$500-600M TVL) — NOT Uniswap. In November 2025, Dromos Labs merged Aerodrome (Base) and Velodrome (Optimism) into a unified cross-chain DEX called Aero. Same contracts, same ve(3,3) model, new brand.
主流DEX:Aero(前身为Aerodrome,总锁仓量约5-6亿美元)——而非Uniswap。2025年11月,Dromos Labs将Base上的Aerodrome与Optimism上的Velodrome合并为统一跨链DEXAero。合约相同,采用ve(3,3)模型,品牌更新。
How Aero Works (Critical Difference from Uniswap)
Aero的工作原理(与Uniswap的核心差异)
- LPs deposit tokens into pools → earn AERO emissions (not trading fees!)
- veAERO voters lock AERO → vote on which pools get emissions → earn 100% of trading fees + bribes
- This is the opposite of Uniswap where LPs earn fees directly
- Flywheel: Pools generating most fees → attract most votes → get most emissions → attract more LPs → deeper liquidity → more fees
- 流动性提供者(LP)存入代币到资金池→赚取AERO代币奖励(而非交易手续费!)
- veAERO投票者锁定AERO→投票决定哪些资金池获得奖励→赚取100%交易手续费+贿赂
- 这与Uniswap的LP直接赚取手续费模式完全相反
- 飞轮效应: 产生最高手续费的资金池→吸引最多投票→获得最多奖励→吸引更多LP→流动性更深→产生更多手续费
Aerodrome Swap (Router Interface)
Aerodrome交易(Router接口)
solidity
// 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);solidity
// Aerodrome Router: 0xcF77a3Ba9A5CA399B7c97c74d54e5b1Beb874E43 (Base)
struct Route {
address from;
address to;
bool stable; // true = 稳定币对(类似Curve), false = 波动币对(类似Uni V2)
address factory; // 0x420DD381b31aEf6683db6B902084cB0FFECe40Da
}
// 通过Router进行交易
function swapExactTokensForTokens(
uint256 amountIn,
uint256 amountOutMin,
Route[] calldata routes,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);Base-Specific Patterns
Base专属模式
- Coinbase Smart Wallet — ERC-4337 wallet, passkey auth, gasless txs via Coinbase paymaster
- OnchainKit — to bootstrap a Base app with React components
npm create onchain - Farcaster Frames v2 — mini-apps embedded in social posts that trigger onchain actions
- AgentKit — Coinbase's framework for AI agents to interact onchain
- Coinbase智能钱包——ERC-4337钱包,支持Passkey认证,通过Coinbase支付方实现无Gas交易
- OnchainKit——执行快速搭建带有React组件的Base应用
npm create onchain - Farcaster Frames v2——嵌入社交帖子的迷你应用,可触发链上操作
- AgentKit——Coinbase推出的AI Agent链上交互框架
Building on Arbitrum (Highest DeFi Liquidity)
基于Arbitrum构建(DeFi流动性最高)
GMX V2 — How GM Pools Work
GMX V2——GM资金池工作原理
- Each market has its own isolated pool (unlike V1's single GLP pool)
- LPs deposit into GM (liquidity) pools → receive GM tokens
- Fully Backed markets: ETH/USD backed by ETH + USDC. Backing tokens match the traded asset.
- Synthetic markets: DOGE/USD backed by ETH + USDC. Uses ADL (Auto-Deleveraging) when thresholds are reached.
- LPs earn: trading fees, liquidation fees, borrowing fees, swap fees. But bear risk from trader PnL.
- 每个市场拥有独立的隔离资金池(与V1的单一GLP资金池不同)
- LP存入资金到GM(流动性)池→获得GM代币
- 全额抵押市场: ETH/USD由ETH+USDC全额抵押,抵押代币与交易资产匹配
- 合成市场: DOGE/USD由ETH+USDC抵押,达到阈值时触发ADL(自动减仓)
- LP收益来源:交易手续费、清算手续费、借贷手续费、交易兑换费。但需承担交易者盈亏风险。
Pendle — Yield Tokenization
Pendle——收益代币化
Pendle splits yield-bearing assets into principal and yield components:
- SY (Standardized Yield): Wraps any yield-bearing asset. E.g., wstETH → SY-wstETH.
- PT (Principal Token): The principal. Redeemable 1:1 at maturity. Trades at a discount (discount = implied yield).
- YT (Yield Token): All yield until maturity. Value decays to 0 at maturity.
- Core invariant:
SY_value = PT_value + YT_value
Use cases:
- Buy PT at discount = lock in fixed yield (like a zero-coupon bond)
- Buy YT = leverage your yield exposure (bet yield goes up)
- LP in Pendle pools = earn trading fees + PENDLE incentives
Pendle将生息资产拆分为本金和收益两部分:
- SY(标准化收益代币): 包装任意生息资产。例如wstETH→SY-wstETH。
- PT(本金代币): 代表本金,到期可1:1赎回,交易时存在折价(折价=隐含收益率)。
- YT(收益代币): 代表到期前的所有收益,到期时价值归零。
- 核心恒等式:
SY价值 = PT价值 + YT价值
应用场景:
- 折价买入PT = 锁定固定收益(类似零息债券)
- 买入YT = 杠杆化收益敞口(押注收益率上升)
- 在Pendle资金池提供流动性 = 赚取交易手续费+PENDLE激励
Arbitrum-Specific Tech
Arbitrum专属技术
- Stylus: Write smart contracts in Rust/C++/WASM alongside EVM (10-100x gas savings for compute-heavy operations)
- Orbit: Launch custom L3 chains (47 live on mainnet)
See for all verified protocol addresses (GMX, Pendle, Camelot, Aerodrome, Velodrome, SyncSwap, Morpho).
addresses/SKILL.md- Stylus: 可使用Rust/C++/WASM与EVM并行编写智能合约(计算密集型操作Gas成本降低10-100倍)
- Orbit: 启动自定义L3链(主网已有47条)
所有已验证的协议地址(GMX、Pendle、Camelot、Aerodrome、Velodrome、SyncSwap、Morpho)请查看。
addresses/SKILL.mdDiscovery Resources
资源发现
- DeFi Llama: https://defillama.com — TVL rankings, yield rankings, all chains
- Dune Analytics: https://dune.com — query onchain data
- ethereum.org/en/dapps/ — curated list
- DeFi Llama: https://defillama.com — TVL排名、收益率排名、全链数据
- Dune Analytics: https://dune.com — 查询链上数据
- ethereum.org/en/dapps/ — 精选DApp列表
Guardrails for Composability
组合性安全准则
- Every protocol you compose with is a dependency. If Aave gets hacked, your vault depending on Aave is affected.
- Oracle manipulation = exploits. Verify oracle sources.
- Impermanent loss is real for AMM LPs. Quantify it before providing liquidity.
- The interaction between two safe contracts can create unsafe behavior. Audit compositions.
- Start with small amounts. Test with minimal value before scaling.
- Flash loan attacks can manipulate prices within a single transaction. Design for this.
- 你组合的每个协议都是一个依赖项。若Aave被黑客攻击,依赖Aave的你的金库也会受到影响。
- 预言机操纵=漏洞利用。请验证预言机数据源。
- 无常损失对AMM LP真实存在。提供流动性前请量化风险。
- 两个安全合约的交互可能产生不安全行为。请对组合逻辑进行审计。
- 从小额资金开始。在规模化前先用最小价值测试。
- 闪电贷攻击可在单笔交易中操纵价格。请针对此场景设计逻辑。