Skip to main content
要创建并启用 Alert,您需要指定和配置以下组件:
  • Alert Type: 触发 Tenderly 向您发送通知的链上事件。有 12 种告警触发器可供选择。
  • Alert Target: 您希望监控的一个或多个地址。所有 Alert Types 的 Target 选项相同,包括:
    • Address: 监控单个地址。
    • Network: 监控您所选网络上部署的所有地址。
    • Project: 监控 Tenderly 上某个项目中的所有地址。
    • Tag: 监控带有特定标签的所有合约和钱包。
  • Alert Parameters: 与所选 Alert Type 相关的额外设置。
  • Alert Destination: 您希望接收通知的位置。一个 Alert 可以将通知发送到多个目标。您可以在 8 种目标中发送和接收通知。
Alerts 只针对涉及您项目中合约和钱包的交易进行评估,因此您要监控的地址必须先添加到项目中。添加地址后,其交易也会显示在项目的 Transactions 视图中。要在监控高流量地址的同时避免噪音,可以在添加后将其从交易列表中隐藏;隐藏不会影响 Alerts。
本文档的其余部分将重点介绍不同的 Alert Types。
阅读 Alerting 快速入门指南 了解 设置示例 Alert 并启用它的步骤。

Successful Transaction

Parameters for the Successful Transaction Alert

Successful Transaction Alert 的参数

Successful Transaction 告警会在新事务被创建并添加到区块链时发送通知。此告警常用于监控调用特定智能合约的事务,或由特定钱包发送或接收的事务。 要创建 Successful Transaction 告警,请完成以下步骤:
  1. 从 Alert Types 列表中 选择 Successful Transaction。
  2. 在 Target 部分, 选择 Address 以监控单个地址。
  3. 从下拉列表中 选择智能合约的地址。
  4. 设置 Destination,创建新的目标或选择您之前创建的目标。
  5. 点击 Save,当事务成功执行时您将收到通知。

Failed Transaction

Parameters for the Failed Transaction Alert

Failed Transaction Alert 的参数

Failed Transaction 告警会在事务未能添加到区块链时发送通知。此告警常用于及早发现钱包、智能合约和 dapp 的使用问题。 要创建 Failed Transaction 告警,请完成以下步骤:
  1. 从 Alert Types 列表中 选择 Failed Transaction。
  2. 在 Target 部分, 选择 Address 以监控单个地址。
  3. 从下拉列表中 选择智能合约的地址。
  4. 设置 Destination,创建新的目标或选择您之前创建的目标。
  5. 点击 Save,当事务失败时您将收到通知。

Function Call

Parameters for the Function Call Alert

Function Call Alert 的参数

Function Call 告警会在所选智能合约中的特定 external 或 public 函数被调用时发送通知。当该函数在事务中首次被调用以及在执行过程中通过内部调用每次被调用时,都会发送通知。 要创建 Function Call 告警,请完成以下步骤:
  1. 从 Alert Types 列表中 选择 Function Call。
  2. 在 Target 部分, 选择 Address 以监控部署在特定地址的智能合约。
  3. 从下拉列表中 选择智能合约的地址。
  4. 选择要监控的函数。Tenderly 将从智能合约中提取所有可用函数。
  5. 设置 Destination,创建新的目标或选择您之前创建的目标。
  6. 点击 Save,当该函数在您的智能合约中被调用时您将收到通知。

Event Emitted

Parameters for the Event Emitted Alert

Event Emitted Alert 的参数

Event Emitted 告警会在所选智能合约发出特定事件时发送通知。例如,您可以使用此告警监控 ERC-20 代币,在第三方地址被授权花费余额时收到通知。 要创建 Event Emitted 告警,请完成以下步骤:
  1. 从 Alert Types 列表中 选择 Event Emitted。
  2. 在 Target 部分, 选择 Address 以监控部署在特定地址的智能合约。
  3. 从下拉列表中 选择智能合约的地址。
  4. 从可用事件列表中 选择要监控的事件函数。
  5. 设置 Destination,创建新的目标或选择您之前创建的目标。
  6. 点击 Save,当该事件函数发出事件时您将收到通知。

Event Parameter

Parameters for the Event Parameter Alert

Event Parameter Alert 的参数

Event Parameter 告警会在事件参数匹配所设条件时发送通知。例如,您可以使用此告警监控 ERC-20 代币,在第三方地址被授权花费高于阈值的余额时收到通知。 要创建 Event Parameter 告警,请完成以下步骤:
  1. 从 Alert Types 列表中 选择 Event Parameter。
  2. 在 Target 部分, 选择 Address 以监控部署在特定地址的智能合约。
  3. 从下拉列表中 选择智能合约的地址。
  4. 从可用事件列表中 选择要监控的事件函数。
  5. 从所选事件函数所需的参数列表中 选择参数。某些事件可以有多个参数。Tenderly 会自动拉入所有必要的参数。
  6. 选择比较运算符(例如:等于、不等于等)。
  7. 输入要与参数值进行比较的比较值(例如整数、地址等)。
  8. 设置 Destination,创建新的目标或选择您之前创建的目标。
  9. 点击 Save,当事件函数中的参数匹配您定义的条件时您将收到通知。

ERC20 Token Transfer

Parameters for the ERC20 Token Transfer Alert

ERC20 Token Transfer Alert 的参数

ERC20 Token Transfer 告警会在被监控地址在事务中发送或接收 ERC-20 代币时发送通知。可使用此告警跟踪金库资金流出、存入协议合约的资金,或特定代币的大额流动。 该告警检测 ERC-20 Transfer 事件(包括铸造和销毁),以及 WETH 风格的 Deposit 和 Withdrawal 事件。检测使用与查看事务时显示的 ERC-20 转账相同的资产转账解码,因此告警覆盖的转账与您在该处看到的转账一致。

被监控地址

Target 决定告警监控哪些地址:
  • Address: 单个合约或钱包。选择 Select from Project 从项目中选取地址,或选择 Insert any address 粘贴任意地址。
  • Network: 所选网络上项目中的所有地址。
  • Project: 项目中所有网络上的所有地址。
  • Tag: 带有所选标签的所有项目地址。
对于 Network、Project 和 Tag 目标,在告警创建后添加到项目(或打上标签)的地址会被自动覆盖。

代币范围

Token scope 决定哪些 ERC-20 代币计入告警:
  • Specific token: 单个代币合约。选择器按代币符号、名称或地址搜索,并列出被监控地址所在网络上的代币。使用 Address 目标时,选择器还会显示被监控地址持有的余额。
  • Any ERC20 token: 任意 ERC-20 代币,包括未添加到项目中的代币。
  • Project tokens: 添加到项目中的所有 ERC-20 合约。
  • Tokens with tag: 项目中带有所选标签的所有 ERC-20 合约。
选择 Any ERC20 token 时,Trigger 下方会显示 Notify me only about tokens with a USD price 复选框,默认处于勾选状态。它会跳过没有已知美元价格的代币转账,例如垃圾代币和空投代币。取消勾选后,告警会匹配所有 ERC-20 代币的转账。
ERC20 Token Transfer alert parameters with the Any ERC20 token scope and the Notify me only about tokens with a USD price checkbox checked

ERC20 Token Transfer 告警:监控单个地址转出的任何有美元价格的 ERC-20 代币

触发方向与金额条件

Trigger 设置转账相对于被监控地址的方向:
  • Any transfer: 发送或接收的代币。
  • Received: 流入被监控地址的代币。向被监控地址铸造代币计为接收。
  • Sent: 流出被监控地址的代币。从被监控地址销毁代币计为发送。
Condition 按转账金额进行过滤,仅在代币范围为 Specific token 时可用: 金额可以按代币单位(切换按钮显示代币符号,例如 USDC)输入,也可以按 Raw 单位(应用 decimals 之前的整数值)输入。切换单位时,数值会就地换算。如果代币的 decimals 未知,则只能按 raw 单位输入金额。

净额模式

默认情况下,每笔匹配的转账都会单独触发告警。启用 Notify me about the net amount 后,告警会汇总事务内每个被监控地址每种代币的所有转入和转出,并在事务结束时评估余额的净变化:
  • 相互抵消的转账(例如在同一事务中借出并归还的闪电贷)不会产生通知。
  • Trigger 和 Condition 作用于净变化。净增加计为接收,净减少计为发送;金额条件比较净变化的绝对值。

通知内容

每条通知都会列出匹配的转账。每笔转账包括被监控地址、代币、金额和交易对手(接收代币时为发送方,发送代币时为接收方)。在净额模式下,每个条目是一个地址和一种代币的净变化,不包含交易对手。

创建 ERC20 Token Transfer 告警

  1. 从 Alert Types 列表中 选择 ERC20 Token Transfer。
  2. 选择 Target,并选择要监控的地址、网络或标签。
  3. 选择 Token scope:Specific token、Any ERC20 token、Project tokens 或 Tokens with tag。选择 Specific token 或 Tokens with tag 时,请选择代币或代币标签。
  4. 选择 Trigger:Any transfer、Received 或 Sent。
  5. 可选:选择 Specific token 时,选择 Condition 并输入金额或范围。
  6. 选择 Any ERC20 token 时,保持勾选 Notify me only about tokens with a USD price 以跳过没有价格的代币,或取消勾选以匹配所有代币。
  7. 可选:勾选 Notify me about the net amount,按事务评估余额的净变化。
  8. 设置 Destination,创建新的目标或选择您之前创建的目标。
  9. 点击 Save,当发生匹配的 ERC-20 转账时您将收到通知。
使用早期的合约与方向表单配置的 ERC20 Token Transfer 告警会在同一编辑器中打开。保存编辑后,告警将以当前配置存储。

告警无法检测的余额变化

该告警跟踪的是代币转账,因此没有转账事件的余额变化不会触发它:
  • Rebase 代币和生息代币(例如 stETH、Aave aTokens、AMPL):因 rebase 或利息累积产生的余额变化不会发出事件。这些代币的常规转账可以被检测到。
  • 汇率型代币(例如 cTokens、wstETH、ERC-4626 金库份额):告警统计的是代币数量,因此汇率变化不会触发告警。
  • 转账收费代币(fee-on-transfer): 报告的金额是 Transfer 事件中的值,可能高于接收方实际收到的金额。
  • 只发出 Minted 或 Burned 而不发出 Transfer 事件的 ERC-777 代币,以及 Transfer 事件布局不标准的代币(大多部署于 2018 年之前)。
如需针对余额水平而非转账设置告警,请对 balanceOf 使用 View Function 告警。

Allowlisted Callers

Parameters for the Allowlisted Alert

Allowlisted Alert 的参数

Allowlisted Callers 告警允许您添加受信任的地址,仅在不在该列表中的地址调用智能合约时收到通知。 要创建 Allowlisted Callers 告警,请完成以下步骤:
  1. 从 Alert Types 列表中 选择 Allowlisted Callers。
  2. 在 Target 部分, 选择 Address 以监控部署在特定地址的智能合约。
  3. 从下拉列表中 选择智能合约的地址。
  4. 输入您熟悉且希望从监控中排除的地址。
  5. 设置 Destination,创建新的目标或选择您之前创建的目标。
  6. 点击 Save,当您创建的地址列表之外的其他人调用您的智能合约时您将收到通知。

Blocklisted Callers

Parameters for the Blocklisted Alert

Blocklisted Alert 的参数

Blocklisted Caller 告警允许您添加不希望的地址,并仅在这些地址向所选 Target 发送事务时收到通知。此告警可用于监控未授权地址尝试调用您的多签钱包或合约。 要创建 Blocklisted Callers 告警,请完成以下步骤:
  1. 从 Alert Types 列表中 选择 Blocklisted Callers。
  2. 在 Target 部分, 选择 Address 以监控部署在特定地址的智能合约或钱包。
  3. 从下拉列表中 选择智能合约的地址。
  4. 输入您要关注的地址,当它们对您的智能合约或钱包采取操作时您将收到通知。
  5. 设置 Destination,创建新的目标或选择您之前创建的目标。
  6. 点击 Save,当您创建的地址列表中的地址调用您的智能合约时您将收到通知。

Balance Change

Parameters for the Balance Change Alert

Balance Change Alert 的参数

Balance Change 告警在事务执行后特定地址的网络原生代币余额匹配条件时发送通知。此告警可帮助您了解何时需要为钱包(例如机器人或 keeper)充值。 要创建 Balance Change 告警,请完成以下步骤:
  1. 从 Alert Types 列表中 选择 Balance Change。
  2. 在 Target 部分, 选择 Address 以监控部署在特定地址的智能合约或钱包。
  3. 从下拉列表中 选择智能合约或钱包的地址。
  4. 选择比较运算符(例如:等于、不等于等)。
  5. 以 wei 为单位设置余额阈值。 只有当事务将某地址的余额设置为满足所设条件的值时,该告警才会触发。当余额本身已处于满足条件的状态时不会触发。
  6. 设置 Destination,创建新的目标或选择您之前创建的目标。
  7. 点击 Save,当您的智能合约或钱包上网络原生代币余额匹配您定义的阈值条件时您将收到通知。

Transaction Value

Parameters for the Transaction Value Alert

Transaction Value Alert 的参数

Transaction Value 告警在涉及某个钱包或智能合约的事务的价值(以 wei 计)匹配某个值时通知您。 要创建 Transaction Value 告警,请完成以下步骤:
  1. 从 Alert Types 列表中 选择 Transaction Value。
  2. 在 Target 部分, 选择 Address 以监控部署在特定地址的智能合约或钱包。
  3. 选择比较运算符(例如:等于、大于等)。
  4. 输入要比较的以 wei 为单位的值。
  5. 设置 Destination,创建新的目标或选择您之前创建的目标。
  6. 点击 Save,当来自该钱包或智能合约的事务价值匹配您指定的 wei 值时您将收到通知。

State Change

Parameters for the State Change Alert

State Change Alert 的参数

State Change 告警在智能合约中数值型(int/uint)状态变量发生变化时通知您。使用此告警,您可以在多签所需确认数增加或减少时收到通知。类似地,您也可以观察智能合约的任何其他类似配置的状态变量。 要创建 State Change 告警,请完成以下步骤:
  1. 从 Alert Types 列表中 选择 State Change。
  2. 在 Target 部分, 选择 Address 以监控部署在特定地址的智能合约或钱包。
  3. 从智能合约中选择要监控的状态变量。
  4. 为所选状态变量配置额外参数。根据状态变量的数据类型,您需要配置额外的参数以告知 Tenderly 如何将状态变量的属性值与您期望的值进行比较:
    • Threshold passed(阈值突破): 当属性值突破阈值时触发。每次值突破阈值时您只会收到一次告警。
    • Percentage change(百分比变化): 当属性值以您设定的百分比增加或减少时触发。
    • Criteria(条件): 当事务设定的新属性值匹配比较条件时触发。
    • Value changed(值变化): 每当属性值发生变化时触发告警。
  5. 设置 Destination,创建新的目标或选择您之前创建的目标。
  6. 点击 Save,当智能合约中的状态变量发生变化时您将收到通知。

View Function

Parameters for the View Function Alert

View Function Alert 的参数

View Function 告警在事务改变智能合约中所选 view 函数的返回值时通知您。例如,您可以使用 balanceOf('0x...') view 函数跟踪某个 ERC-20 代币在特定地址的余额变化。 要创建 View Function 告警,请完成以下步骤:
  1. 从 Alert Types 列表中 选择 View Function。
  2. 在 Target 部分, 选择 Address 以监控部署在特定地址的智能合约或钱包。
  3. 选择智能合约地址。
  4. 从声明的 view 函数列表中, 选择要监控的 view 函数。您需要指定 view 函数可能需要的任何参数。
  5. 根据 view 函数返回的数据类型配置额外参数。
    1. Threshold passed(阈值突破): 定义阈值,当返回值突破阈值时收到告警。您还需要定义比较运算符类型(小于、等于等)以及用于比较的值。每次值突破阈值时您只会收到一次告警。
    2. Percentage change(百分比变化): 定义百分比,当值发生一定百分比变化时收到告警。您还需要定义比较运算符类型以及用于比较的值。
    3. Criteria(条件): 使用不同的比较运算符定义任意类型的条件,当条件满足时收到通知。
    4. Value changed(值变化): 每当返回值以任何方式发生变化时收到通知。
  6. 设置 Destination,创建新的目标或选择您之前创建的目标。
  7. 点击 Save,当您所选 view 函数的返回值相比上一区块发生变化时您将收到通知。