get_simulation_asset_transfers
Returns all token and native asset transfers from a simulated or on-chain transaction, including sender, recipient, token info, and amount. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project).
get_simulation_balance_changes
Returns the net per-address balance impact with USD values from a simulated or on-chain transaction. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project).
get_simulation_call_trace
Returns the flattened call trace for a simulated or on-chain transaction — every internal EVM call with decoded function names, inputs, outputs, and per-call gas. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project).
get_simulation_events
Returns decoded events (logs) emitted during a simulated or on-chain transaction, including event names, emitting addresses, and ABI-decoded parameters. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project).
get_simulation_exposure_changes
Returns token approval and allowance changes (approvals, revocations, permits) from a simulated or on-chain transaction. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project).
get_simulation_gas_breakdown
Returns a per-call gas breakdown including intrinsic gas and refunds. Gas values are inclusive of subcalls. Useful for identifying expensive operations. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project).
get_simulation_generated_access_list
Returns the EIP-2930 access list for a previously simulated transaction. Useful for gas optimization. Requires simulation_id from simulate_transaction or resimulate_transaction. Requires an active project (set via set_active_project).
get_simulation_state_changes
Returns storage slot diffs and native balance diffs caused by a simulated or on-chain transaction. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project).
get_user_info
Returns the authenticated user's info and the currently active project (if set).
get_vnet
Returns details of the active Virtual TestNet including RPC endpoints, chain configuration, fork origin, and status. Requires an active project and vnet (set via set_active_project and set_active_vnet).
get_vnet_simulation_asset_changes
Returns token and native asset transfers for a Virtual TestNet transaction. Pass the operation_id from simulate_vnet_transaction or get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet).
get_vnet_simulation_balance_changes
Returns net per-address balance changes (with dollar values) for a Virtual TestNet transaction. Pass the operation_id from simulate_vnet_transaction or get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet).
get_vnet_simulation_call_trace
Returns the flattened call trace for a Virtual TestNet transaction — every internal EVM call with per-call gas. Pass the operation_id from get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet).
get_vnet_simulation_events
Returns decoded events (logs) emitted during a Virtual TestNet transaction, including event names and emitting addresses. Pass the operation_id from get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet).
get_vnet_simulation_gas_breakdown
Returns a per-call gas breakdown for a Virtual TestNet transaction, sorted by gas usage. Pass the operation_id from get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet).
get_vnet_simulation_generated_access_list
Returns an EIP-2930 access list generated from a previously executed Virtual TestNet transaction. Useful for gas optimization. Pass the vnet_id and operation_id from get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet).
get_vnet_simulation_state_changes
Returns storage slot diffs caused by a previously executed Virtual TestNet transaction. Uses the trace endpoint; pass the operation_id from get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet).
get_vnet_transactions
Lists transactions executed on a Virtual TestNet, with pagination. Requires an active project and vnet (set via set_active_project and set_active_vnet).
increase_time
Advances the block timestamp on a Virtual TestNet by the given number of seconds. IMPORTANT: this has no effect until mine_block is called — always follow with mine_block. Use for time-dependent simulations like interest accrual, governance timelocks, or oracle staleness. Requires an active project and vnet (set via set_active_project and set_active_vnet).
list_projects
Lists all Tenderly projects accessible to the authenticated user.
list_vnets
Lists Virtual TestNets in the active project. Virtual TestNets are private, persistent forks of public EVM networks for development and testing. Requires an active project (set via set_active_project).
mine_block
Mines exactly one new block on a Virtual TestNet. Required after increase_time to make time changes take effect. Do not call in a loop to advance many blocks — instead, use increase_time to jump forward by the desired duration, then call mine_block once. Requires an active project and vnet (set via set_active_project and set_active_vnet).
resimulate_transaction
Replays an on-chain transaction in Tenderly's simulation environment to get a full decoded execution trace. Useful for debugging reverted or suspicious transactions. Requires an active project (set via set_active_project).
resimulate_vnet_transaction
Re-traces a previously executed Virtual TestNet transaction by its operation ID (from get_vnet_transactions). Returns a summary with status, gas usage, and decoded method. Use follow-up tools (listed in the response hint) to inspect state changes and generated access lists. Requires an active project and vnet (set via set_active_project and set_active_vnet).
revert_vnet
Reverts a Virtual TestNet to a previously created snapshot, undoing all state changes since that point. The snapshot is consumed — create a new one with snapshot_vnet if you need to revert again. Typical pattern: snapshot_vnet → run scenario A → revert_vnet → run scenario B → compare. Requires an active project and vnet (set via set_active_project and set_active_vnet).
send_vnet_transaction
Sends and executes a transaction on a Virtual TestNet. The sender is impersonated — no private key needed. Omit 'to' for contract deployment. Requires an active project and vnet (set via set_active_project and set_active_vnet).
set_active_project
Sets the active Tenderly project for subsequent tool calls. Must be called before tools that require a project context.
set_active_vnet
Sets the active Virtual TestNet for subsequent tool calls. All VNet tools operate on the active VNet — call this before using them. Use list_vnets to find available VNets. Automatically called when you create or fork a VNet. Requires an active project (set via set_active_project).
set_erc20_balance
Sets the ERC-20 token balance of any address on a Virtual TestNet. Use this to give test accounts specific token balances without transfers or approvals. For native token (ETH/MATIC) balance, use fund_account instead. Requires an active project and vnet (set via set_active_project and set_active_vnet).
set_storage_at
Sets a raw storage slot value at any contract address on a Virtual TestNet. This is a low-level primitive — prefer set_erc20_balance for token balances and fund_account for native balance. Use this only when you need to write a specific storage slot directly (e.g. Chainlink oracle price override, protocol parameter bitmap, liquidity index). Requires an active project and vnet (set via set_active_project and set_active_vnet).
simulate_transaction
Simulates a transaction on any Tenderly-supported EVM network without spending gas. Returns the outcome including decoded traces, gas usage, and revert reason. For reverted transactions, includes decoded custom Solidity errors with name and typed parameters when available. Requires an active project (set via set_active_project).
simulate_vnet_transaction
Simulates a transaction on a Virtual TestNet without changing its state. Returns a summary with status, gas usage, decoded method, and decoded error details for reverted transactions. Omit 'to' for contract deployment. Use follow-up tools (listed in the response hint) to inspect call traces, events, and gas breakdown. Requires an active project and vnet (set via set_active_project and set_active_vnet).
snapshot_vnet
Creates a state snapshot of a Virtual TestNet and returns a snapshot ID. Use before running a simulation scenario so you can revert back with revert_vnet. Snapshots are lightweight — take one before any destructive or exploratory operation. Requires an active project and vnet (set via set_active_project and set_active_vnet).
trace_transaction
Traces an on-chain transaction's execution and returns a summary: status, gas used, decoded method name, and error details. For reverted transactions, includes decoded custom Solidity errors with name and typed parameters when available. Use follow-up tools (listed in the response hint) to inspect call traces, events, and state changes. Requires an active project (set via set_active_project).
trace_vnet_transaction
Returns a decoded execution trace summary for a Virtual TestNet transaction — contract name, function name, decoded input parameters, decoded output, and decoded error details for reverted transactions. For deeper analysis, use follow-up tools listed in the response hint. Pass the operation_id from get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet).
vnet_call
Executes a read-only eth_call on a Virtual TestNet without changing state. The data field must be ABI-encoded calldata (4-byte function selector + encoded arguments). Returns raw hex — decode with the contract ABI to extract return values. For reading multiple addresses at once, prefer vnet_multicall to save round trips. Result is truncated to 10 KB if the return data is very large. Requires an active project and vnet (set via set_active_project and set_active_vnet).
vnet_multicall
Executes up to 10 read-only eth_call requests in a single batch on a Virtual TestNet. Returns one result per call, in the same order. Each call's data must be ABI-encoded calldata (4-byte function selector + encoded arguments). Prefer this over multiple vnet_call invocations when reading data for several addresses or contracts. Individual results are truncated to 10 KB if very large. Requires an active project and vnet (set via set_active_project and set_active_vnet).