深入解析 Aave V3 数据:使用 Bitquery API 进行多维度分析

·

Aave 是以太坊上顶级的去中心化借贷协议,并已实现多链部署。作为一个去中心化、非托管的流动性协议,用户可以作为存款人或借款人参与其中。存款人向市场提供流动性以获得被动收入,而借款人则可以以超额抵押(永久)或低抵押(单区块流动性)的方式获取资金。

Aave 已升级至 V3 版本,在保留 aToken、即时流动性、稳定利率借贷和信用委托等核心功能的基础上,新增了跨链流动性通道 Portal、高效模式 eMode、隔离模式等特性,进一步提升了协议的灵活性与安全性。

如何获取 Aave V3 链上数据

通过 Bitquery 提供的多种 API,我们可以高效获取 Aave V3 的各类链上数据,包括用户行为、资产供应与借贷量、利率变化及闪电贷交易等。以下将介绍几种常见的数据查询方法。

用户每日活动统计

用户在与 Aave V3 交互时,主要会调用“存款”、“借款”、“取款”和“还款”等功能。通过以下查询,可以按事件类型和日期统计每日独立地址的活动次数:

query ($network: EthereumNetwork!, $address: String!, $limit: Int, $offset: Int, $from: ISO8601DateTime, $till: ISO8601DateTime) {
  ethereum(network: $network) {
    smartContractEvents(
      options: {desc: "count", limit: $limit, offset: $offset}
      date: {since: $from, till: $till}
      smartContractAddress: {is: $address}
      smartContractEvent: {in: ["Supply", "Borrow", "Withdraw", "Repay"]}
    ) {
      smartContractEvent { name }
      block { timestamp { time(format: "%Y-%m-%d") } }
      count(uniq: callers)
    }
  }
}

资产借贷量分析

若要获取特定资产(如 USDC)在以太坊上的借贷量,需在转账记录中筛选出与 Aave V3 合约相关的交易,并按日期汇总。以下查询以 USDC 为例:

query ($network: EthereumNetwork!, $token: String!, $dateFormat: String!, $from: ISO8601DateTime, $till: ISO8601DateTime) {
  ethereum(network: $network) {
    transfers(
      currency: {is: $token}
      height: {gt: 0}
      amount: {gt: 0}
      date: {since: $from, till: $till}
      any: {sender: {is: "0x98C23E9d8f34FEFb1B7BD6a91B7FF122F4e16F5c"}}
    ) {
      date { date(format: $dateFormat) }
      count: countBigInt
      amount
    }
  }
}

当前与历史利率查询

存款年化收益率(Supply APY)和借款利率是用户关注的重点。通过监听 Aave V3 合约中“ReserveDataUpdated”事件,并结合特定资产(如 DAI)的合约地址,可以获取其历史利率数据:

{
  EVM(dataset: combined, network: eth) {
    Events(
      orderBy: {descending: Block_Number}
      limit: {count: 10}
      where: {
        Transaction: {To: {is: "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"}},
        Log: {Signature: {Name: {is: "ReserveDataUpdated"}}},
        Arguments: {includes: {Value: {Address: {is: "0x6B175474E89094C44Da98b954EedeAC495271d0F"}}}}
      }
    ) {
      Log { Signature { Name } }
      Block { Date Time }
      Arguments { Name Value { … on EVM_ABI_Integer_Value_Arg { integer } … on EVM_ABI_BigInt_Value_Arg { bigInteger } … on EVM_ABI_Address_Value_Arg { address } } }
    }
  }
}

👉 查看实时利率数据工具

独立用户数统计

每日独立用户数反映了协议的活跃程度。通过统计每日调用 Aave V3 合约的独立地址数,可以获得这一指标:

query ($network: EthereumNetwork!, $dateFormat: String!, $address: String!, $from: ISO8601DateTime, $till: ISO8601DateTime) {
  ethereum(network: $network) {
    smartContractCalls(
      date: {since: $from, till: $till}
      any: {smartContractAddress: {is: $address}}
    ) {
      count: countBigInt(uniq: callers)
      date { date(format: $dateFormat) }
    }
  }
}

闪电贷交易分析

闪电贷是 DeFi 中常用的套利工具,但其交易费用(尤其是优先费)对开发者尤为重要。以下查询可获取闪电贷交易的矿工奖励和优先费数据:

{
  EVM(dataset: combined, network: eth) {
    Calls(
      limit: {count: 10000000}
      where: {Call: {To: {is: "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"}, Signature: {Name: {is: "flashLoanSimple"}}}, Block: {Date: {after: "2023-08-01", before: "2023-10-25"}}}
      orderBy: {descending: Block_Number}
    ) {
      Call { Signature { Name } }
      Transaction { Hash }
      Fee { SenderFee Savings PriorityFeePerGas MinerReward EffectiveGasPrice Burnt }
      Receipt { GasUsed }
    }
  }
}

常见问题

Aave V3 的主要新特性有哪些?

Aave V3 引入了跨链流动性通道 Portal、高效模式 eMode、隔离模式等。Portal 允许用户在不同链之间转移流动性,eMode 提高了相同类别资产间的借贷效率,隔离模式则限制了某些高风险资产的使用场景以保障协议安全。

如何获取实时的 Aave 利率数据?

可以通过监听 Aave V3 合约的“ReserveDataUpdated”事件获取实时利率数据。使用 Bitquery 的 GraphQL API,编写查询语句筛选特定资产的利率更新事件,即可获得最新或历史的存款和借款利率。

闪电贷交易中如何控制 Gas 费用?

闪电贷交易对区块包含的及时性要求较高,因此需要设置适当的优先费(Priority Fee)。开发者可以通过分析历史闪电贷交易的矿工奖励和燃气消耗数据,估算出合理的费用范围,从而提高交易成功率。

👉 获取更多链上数据分析策略

Bitquery 支持哪些区块链的数据查询?

Bitquery 目前支持超过 40 条区块链的数据查询,包括以太坊、BNB Chain、Solana 等主流公链,并提供统一的 GraphQL 接口,方便开发者跨链检索和分析数据。

是否可以不写代码分析 Aave 数据?

可以。Bitquery 提供了图形化的数据探索工具(Explorer),用户无需编写代码即可查询和可视化 Aave 等协议的链上数据,适合快速进行基础分析和验证想法。

如何跟踪特定资产的供应和借贷变化?

通过筛选特定资产的转账事件和 Mint/Burn 事件,可以跟踪其每日供应和借贷量。结合时间聚合和合约地址过滤,即可得到该资产的资金流动情况。