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 by other skills as a pre-execution safety gate.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "onchain-verify-transaction" with this command: npx skills add dougalcantara/onchain-verify-transaction

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Huo15 Openclaw Enhance

火一五·克劳德·龙虾增强插件 v5.7.8 — 全面适配 openclaw 2026.4.24:peerDep ^4.24 + build/compat 同步到 4.24 + 14 处 api.on 全部去掉 as any 改成 typed hook(hookName 联合类型 + handler 自动推断 Pl...

Registry SourceRecently Updated
General

Content Trend Analyzer

Aggregates and analyzes content trends across platforms to identify hot topics, user intent, content gaps, and generates data-driven article outlines.

Registry SourceRecently Updated
General

Prompt Debugger

Debug prompts that produce unexpected AI outputs — diagnose failure modes, identify ambiguity and conflicting instructions, test variations, compare model re...

Registry SourceRecently Updated
General

Indie Maker News

独行者 Daily - 变现雷达。读对一条新闻,少走一年弯路。每天5分钟,给创业者装上商业雷达。聚焦一人公司、副业、创业变现资讯,智能分类,行动导向。用户下载即能用,无需本地部署!

Registry SourceRecently Updated