关于 defi-protocols
defi-protocols 是面向 DeFi 协议开发者的 Skill,涵盖 AMM、借贷、收益策略和预言机集成。它结合代码示例、公式、安全检查清单与常见问题说明。
主要功能
- 01AMM 机制与兑换计算
- 02借贷市场与清算逻辑
- 03收益策略与奖励分配
- 04预言机集成与时效检查
- 05安全清单与常见风险
适用场景
- 01实现 AMM 兑换计算
- 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 协议技能
掌握 DeFi 协议开发,包括 AMM 机制、借贷系统、收益优化和预言机集成。
快速入门
# Invoke this skill for DeFi development
Skill("defi-protocols", protocol_type="amm", chain="ethereum")
涵盖主题
1. AMM(自动做市商)
构建去中心化交易所:
- 恒定乘积:x * y = k(Uniswap V2)
- 集中流动性:基于 Tick(Uniswap V3)
- 稳定币互换:Curve 不变量
- TWAP:时间加权平均价格
2. 借贷协议
创建借贷市场:
- 超额抵押:Aave/Compound 模型
- 利率:基于资金利用率的曲线
- 清算:健康因子、激励机制
- 隔离市场:风险分层
3. 收益优化
最大化回报:
- 自动复利:Vault 策略
- 流动性挖矿:奖励分配
- veTokens:投票托管型治理
- 贿赂:Gauge 投票激励
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 |
交叉引用
- 绑定的 Agent:
04-defi-specialist - 相关技能:
solidity-development、smart-contract-security
版本历史
| 版本 | 日期 | 变更 |
|---|---|---|
| 2.0.0 | 2025-01 | 达到生产级质量,包含数学公式和安全内容 |
| 1.0.0 | 2024-12 | 首次发布 |
评论
支持 Markdown