← 返回
未分类 Key 中文

Onchain Verify Transaction

Verify an EVM transaction's calldata via Tenderly before signing. Confirms which tokens move, in what amounts, and to which addresses. Designed to be called...
在签名前通过 Tenderly 验证 EVM 交易的 calldata,确认代币种类、数量及目标地址。
dougalcantara dougalcantara 来源
未分类 clawhub v0.1.3 1 版本 100000 Key: 需要
★ 0
Stars
📥 428
下载
💾 0
安装
1
版本
#latest

概述

Onchain Verify Transaction

Simulate an EVM transaction against a forked chain state using Tenderly, and verify that the resulting asset changes match stated intent. Intended to be invoked by other skills as a pre-execution safety gate.

When to use

This skill should be invoked before any onchain transaction is sent when:

  • A transaction payload was produced by an external API or untrusted source
  • The calldata is opaque (e.g. a raw data hex string from a swap router)
  • The user has not explicitly waived verification

If this skill is not installed, calling skills should warn the user that pre-execution verification is unavailable and ask for explicit confirmation before proceeding.

Setup

One environment variable is required:

export TENDERLY_NODE_ACCESS_KEY="your-key-here"

Obtain a key from Tenderly — the free tier supports approximately 62,500 simulations per month (400 TUs per simulation, 25M TU/month free).

Supported chains

The Tenderly gateway uses a per-chain subdomain. Route to the correct endpoint based on the transaction's chainId. The access key is passed as a header — do not embed it in the URL:

ChainchainIdEndpoint
---------
Base8453https://base.gateway.tenderly.co
Ethereum1https://mainnet.gateway.tenderly.co
Optimism10https://optimism.gateway.tenderly.co
Arbitrum One42161https://arbitrum.gateway.tenderly.co
Polygon137https://polygon.gateway.tenderly.co

If the chainId is not in this list, skip verification, warn the user that the chain is unsupported, and require explicit confirmation before proceeding.

> Add new entries as additional chains become supported.

Verify a transaction

Input

The calling skill provides a transaction payload with the following fields:

FieldTypeNotes
---------
fromaddressThe wallet sending the transaction
toaddressThe contract being called
datahex stringEncoded calldata
valuehex stringNative token value (e.g. "0x0")
chainIdintegerUsed to select the correct Tenderly endpoint

For cross-chain swaps, chainId refers to the source chain — the chain where the transaction is sent. Verify the outbound leg only.

Request

TENDERLY_URL="https://base.gateway.tenderly.co"

curl -sS -X POST "$TENDERLY_URL" \
  -H "Content-Type: application/json" \
  -H "X-Access-Key: $TENDERLY_NODE_ACCESS_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tenderly_simulateTransaction",
    "params": [
      {
        "from": "0xYourWalletAddress",
        "to": "0xContractAddress",
        "data": "0xCalldata",
        "value": "0x0"
      },
      "latest"
    ]
  }'

Response fields

FieldDescription
------
result.assetChangesERC-20 token transfers: token address, from, to, amount
result.balanceChangesNative token (ETH) balance changes per address

Verification logic

After Tenderly simulation, check the following before approving execution:

  1. Token destination — do output tokens land in the expected recipient address? Flag any tokens going to an unexpected address.
  2. Token identity — is the output token what was requested? Flag substitutions.
  3. Output amount — is the output within the expected range (accounting for slippage)? Flag if materially lower than quoted.
  4. Input drain — does the simulation drain more input token than authorized? Flag any excess.
  5. Unexpected approvals — does the calldata grant approvals beyond what was declared? Flag unlimited or unexpected approvals.

If any check fails, stop and surface the discrepancy clearly. Do not proceed to execution without explicit user confirmation.

Narration

"Verifying transaction on Base via Tenderly..."
"Verification complete. Asset changes:"
"  → Send 5 USDC from 0xYour... to 0xRouter..."
"  ← Receive 0.00242 WETH at 0xYour..."
"All checks passed. Proceeding to execution."

If a check fails:

"Verification flagged an issue:"
"  Output token destination is 0xUnexpected... — expected 0xYour..."
"Do not proceed until this is resolved. Aborting."

Error handling

ConditionAction
------
TENDERLY_NODE_ACCESS_KEY not setWarn that verification is unavailable; require explicit user confirmation before proceeding
chainId not in supported listWarn that chain is unsupported for verification; require explicit user confirmation
Tenderly returns an errorSurface the error message; treat as verification failure and require confirmation
Rate limit hit (HTTP 429)Warn the user; do not retry automatically; require confirmation to proceed without verification
Verification passes all checksReturn control to the calling skill to proceed with execution
Verification fails a checkHalt; surface the specific discrepancy; do not execute

版本历史

共 1 个版本

  • v0.1.3 当前
    2026-03-30 18:22 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

it-ops-security

OpenClaw Backup

alex3alex
备份与恢复 OpenClaw 数据。适用于创建备份、设置自动备份计划、从备份恢复或管理备份轮转。处理 ~/.openclaw 目录归档并包含适当的排除规则。
★ 89 📥 30,713
professional

spanDEX Agentic Swap

dougalcantara
从 spanDEX API 获取代币兑换报价及可执行 calldata。适用于用户想要兑换代币、获取最优价格或最快路径,以及接收钱包交易数据的场景。
★ 6 📥 712
it-ops-security

1password

steipete
设置和使用 1Password CLI (op)。适用于:安装 CLI、启用桌面应用集成、登录(单/多账户)、通过 op 读取/注入/运行密钥。
★ 53 📥 31,361