OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  agent-credit:通过信用委托从 Aave 借款

agent-credit:通过信用委托从 Aave 借款

 
  virtualization ·  2026-02-05 06:30:34 · 3 次点击  · 0 条评论  

名称: agent-credit
描述: 通过信用委托从 Aave 借款。代理通过抵押品借款实现自筹资金。支持借款、还款和健康度检查。适用于 Aave V2/V3。


Aave 信用委托

使用委托信用从 Aave 借款。您的主钱包提供抵押品,并将借款能力委托给代理钱包。随后,代理可以在需要时自主借款——债务将计入委托人的头寸。

协议说明: 适用于 Aave V3Aave V2——信用委托的函数签名(borrowrepayapproveDelegationborrowAllowance)在两个版本中完全相同。只需替换为 V2 的 LendingPool 和 ProtocolDataProvider 地址即可。唯一的表面区别是:V3 以美元(8位小数)返回抵押品/债务价值,V2 以 ETH(18位小数)返回。健康因子安全检查在两者上均可正常工作。

兼容性

  • OpenClaw — 作为技能安装,代理可自主借款
  • Claude Code — 直接从 Claude Code 会话运行脚本
  • 任何代理框架 — 纯 bash + Foundry 的 cast,在任何有 shell 的环境下均可工作

可与 Bankr 技能结合,实现“借款-兑换”流程:通过委托借入 USDC,然后使用 Bankr 进行兑换、跨链或部署。

信用委托工作原理

Aave V3 中的信用委托将两件事分开:借款能力委托授权

借款能力是整体性的。 它来自您所有资产的全部抵押头寸。如果您存入价值 1 万美元的 ETH,贷款价值比(LTV)为 80%,那么您就有 8000 美元的借款能力——仅此而已。该借款能力并不锁定于任何特定资产。

委托授权是按债务代币隔离的。 您通过调用各个 VariableDebtToken 上的 approveDelegation() 来控制代理可以借入哪些资产以及每种资产的最大数量。每种资产都有自己的债务代币合约,每次授权都是独立的。

这意味着您可以,例如:
- 存入 ETH 作为抵押品(获得广泛的借款能力)
- 授权代理最多可借入 500 USDC(通过 USDC VariableDebtToken)
- 授权代理最多可借入 0.1 WETH(通过 WETH VariableDebtToken)
- 不授权 cbETH(代理完全无法借入它)

代理只能借入您明确授权的资产,且不超过您设定的金额——但借款的容量来自您的总抵押品,而非任何单一存款。

您的抵押品(整体性)              委托授权(隔离性)
┌─────────────────────────┐             ┌──────────────────────────────┐
│  $5k ETH                │             │  USDC 债务代币 → 代理: 500   │
│  $3k USDC               │  ───LTV───▶ │  WETH 债务代币 → 代理: 0.1   │
│  $2k cbETH              │   = $8k     │  cbETH 债务代币 → 代理: 0    │
│  总计: $10k @ 80% LTV   │   容量      └──────────────────────────────┘
└─────────────────────────┘

流程

委托人(您的主钱包)                代理钱包(被委托人)
    │                                        │
    │  1. 向 Aave 提供抵押品                 │
    │  2. 在 VariableDebtToken 上            │
    │     调用 approveDelegation(代理地址, 金额) │
    │                                        │
    │            ┌─── 3. borrow(资产,        │
    │            │       金额, onBehalfOf    │
    │            │       = 委托人)           │
    │            │                            │
    │     [债务计入您的头寸]          [代币进入代理钱包]
    │            │                            │
    │            └─── 4. repay(资产,          │
    │                    金额, onBehalfOf    │
    │                    = 委托人)           │

快速开始

前提条件

  1. 必须安装 Foundrycast CLI):
    bash curl -L https://foundry.paradigm.xyz | bash && foundryup

  2. 委托人设置(由用户完成一次,而非代理):
    - 向 Aave V3 提供抵押品(通过 app.aave.com 或合约)
    - 在您希望代理借入的资产的 VariableDebtToken 上调用 approveDelegation(代理地址, 最大金额)
    - 可以通过以下命令找到 VariableDebtToken 地址:cast call $DATA_PROVIDER "getReserveTokensAddresses(address)(address,address,address)" $ASSET --rpc-url $RPC

  3. 配置技能
    bash mkdir -p ~/.openclaw/skills/aave-delegation cat > ~/.openclaw/skills/aave-delegation/config.json << 'EOF' { "chain": "base", "rpcUrl": "https://mainnet.base.org", "agentPrivateKey": "0xYOUR_AGENT_PRIVATE_KEY", "delegatorAddress": "0xYOUR_MAIN_WALLET", "poolAddress": "0xA238Dd80C259a72e81d7e4664a9801593F98d1c5", "dataProviderAddress": "0x2d8A3C5677189723C4cB8873CfC9C8976FDF38Ac", "assets": { "USDC": { "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "decimals": 6 }, "WETH": { "address": "0x4200000000000000000000000000000000000006", "decimals": 18 } }, "safety": { "minHealthFactor": "1.5", "maxBorrowPerTx": "1000", "maxBorrowPerTxUnit": "USDC" } } EOF

  4. 验证设置
    bash scripts/aave-setup.sh

核心用法

检查状态(授权额度、健康度、债务)

# 完整状态报告
scripts/aave-status.sh

# 检查特定资产的委托授权
scripts/aave-status.sh USDC

# 仅检查健康因子
scripts/aave-status.sh --health-only

通过委托借款

# 借入 100 USDC
scripts/aave-borrow.sh USDC 100

# 借入 0.5 WETH
scripts/aave-borrow.sh WETH 0.5

借款脚本自动执行以下操作:
1. 检查委托授权额度(是否充足?)
2. 检查委托人健康因子(借款是否安全?)
3. 执行借款
4. 报告结果

偿还债务

# 偿还 100 USDC
scripts/aave-repay.sh USDC 100

# 偿还全部 USDC 债务
scripts/aave-repay.sh USDC max

还款脚本自动执行以下操作:
1. 授权 Pool 合约使用代币(如果需要)
2. 执行还款
3. 报告剩余债务

安全系统

每次借款操作在执行前都会运行以下检查:

  1. 委托授权额度 — 剩余授权额度是否 >= 请求金额?
  2. 健康因子 — 借款后委托人的健康因子是否 > minHealthFactor(默认 1.5)?
  3. 单笔交易上限 — 金额是否 <= maxBorrowPerTx
  4. 确认 — 在发送前记录完整的操作详情

如果任何一项检查失败,借款操作将被中止,并显示清晰的错误信息。

⚠️ 代理绝不能绕过安全检查。 如果用户要求代理借款而健康因子过低,代理应拒绝并解释原因。

功能

读取操作(无需 Gas)

  • 检查委托授权额度 — 代理还能借多少?
  • 检查健康因子 — 委托人的头寸是否安全?
  • 检查未偿债务 — 委托人对每种资产欠款多少?
  • 检查可用流动性 — Aave 资金池中是否有足够的资金可供借出?
  • 解析债务代币地址 — 查找任何资产的 VariableDebtToken 地址

写入操作(需要代理钱包有 Gas)

  • 借款 — 利用委托信用从 Aave 提取资金
  • 还款 — 归还借入的资金以减少委托人的债务
  • 授权 — 授权 Pool 合约使用代币进行还款

支持的链

资金池地址 Gas 成本
Base 0xA238Dd80C259a72e81d7e4664a9801593F98d1c5 非常低
Ethereum 0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2
Polygon 0x794a61358D6845594F94dc1DB02A252b5b4814aD 非常低
Arbitrum 0x794a61358D6845594F94dc1DB02A252b5b4814aD

完整地址列表(包括债务代币)请参阅 deployments.md

常见模式

代理自筹 Gas 费用

# 检查是否有足够的 Gas
BALANCE=$(cast balance $AGENT_ADDRESS --rpc-url $RPC)
if [ "$BALANCE" -lt "1000000000000000" ]; then  # < 0.001 ETH
  # 借入少量 WETH 作为 Gas
  aave-borrow.sh WETH 0.005
fi

通过 Bankr 实现借款 + 兑换

# 从委托信用中借入 USDC
aave-borrow.sh USDC 100
# 使用 Bankr 兑换为 ETH
bankr.sh "在 Base 上将 100 USDC 兑换为 ETH"

定期定额投资(DCA)

# 代理每周借入 USDC 并兑换为 ETH
aave-borrow.sh USDC 100
bankr.sh "在 Base 上将 100 USDC 兑换为 ETH"

安全优先的投资组合再平衡

# 始终先检查健康度
aave-status.sh
# 仅在健康时才借款
aave-borrow.sh USDC 500

配置参考

config.json 字段

字段 必填 描述
chain 链名称(base、ethereum、polygon、arbitrum)
rpcUrl JSON-RPC 端点 URL
agentPrivateKey 代理钱包私钥(0x 前缀)
delegatorAddress 委托信用的用户主钱包地址
poolAddress Aave V3 Pool 合约地址
dataProviderAddress Aave V3 PoolDataProvider 地址
assets 符号 → {地址, 小数位数} 的映射
safety.minHealthFactor 借款后的最低健康因子(默认:1.5)
safety.maxBorrowPerTx 单笔交易最大借款额(默认:1000)
safety.maxBorrowPerTxUnit maxBorrowPerTx 的单位(默认:USDC)

环境变量(覆盖配置)

变量 覆盖项
AAVE_RPC_URL rpcUrl
AAVE_AGENT_PRIVATE_KEY agentPrivateKey
AAVE_DELEGATOR_ADDRESS delegatorAddress
AAVE_POOL_ADDRESS poolAddress
AAVE_MIN_HEALTH_FACTOR safety.minHealthFactor

错误处理

错误 原因 解决方法
INSUFFICIENT_ALLOWANCE 超出委托授权金额 委托人必须再次调用 approveDelegation()
HEALTH_FACTOR_TOO_LOW 借款可能导致清算风险 减少借款金额或增加抵押品
AMOUNT_EXCEEDS_CAP 达到单笔交易安全上限 减少金额或更新配置
INSUFFICIENT_LIQUIDITY Aave 资金池中资金不足 尝试较小的金额或不同的资产
INSUFFICIENT_GAS 代理钱包没有原生代币 向代理钱包发送 Gas 费用
EMODE_MISMATCH 资产与委托人的 eMode 不兼容 借入同一 eMode 类别中的资产

安全

完整的威胁模型和应急程序请参阅 safety.md

关键规则:
1. 委托人的私钥绝不能出现在此仓库、配置或脚本中 — 这是代理的工作空间。委托人通过 Aave UI 或区块浏览器管理其账户。
2. 切勿将 config.json 提交到版本控制 — 它包含代理的私钥
3. 切勿将 minHealthFactor 设置为低于 1.2 — 清算发生在 1.0
4. 始终限制委托授权金额 — 切勿批准 type(uint256).max
5. 监控委托人健康度 — 如果健康因子降至 2.0 以下,请设置警报
6. 代理必须拒绝在安全检查失败时借款,即使被要求执行

资源

  • Aave V3 文档: https://docs.aave.com/developers
  • 信用委托指南: https://docs.aave.com/developers/guides/credit-delegation
  • Aave 地址簿: https://github.com/bgd-labs/aave-address-book
  • Foundry 手册: https://book.getfoundry.sh/
  • 债务代币参考: https://docs.aave.com/developers/tokens/debttoken
3 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor