Tenderly Simulator Setup: Gas Profiling, Fork Simulation, CI

You spent hours debugging a reentrancy vulnerability on a local Hardhat fork, yet on mainnet it still breaks? Tenderly Simulator solves this: full execution trace with function names, gas profiling per call, state override in one API call. Setup takes one working day and reduces debugging time by 30

Blockchain Development Services

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1450
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1308
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    1003
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1269
  • image_logo-advance_0.webp
    B2B Advance company logo design
    719
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1009

You spent hours debugging a reentrancy vulnerability on a local Hardhat fork, yet on mainnet it still breaks? Tenderly Simulator solves this: full execution trace with function names, gas profiling per call, state override in one API call. Setup takes one working day and reduces debugging time by 30-50%.

What Problems Does Tenderly Simulator Solve?

Reentrancy and flash loan attack risk—on mainnet you can't simply call a contract and get a trace. Tenderly Simulator provides a full stack trace with function names, critical for auditing. Gas optimization—you see the gas of each internal call, not just the total limit. AMM calculation errors—simulation with pool balance overrides allows debugging slippage and impermanent loss. We use Tenderly in 50+ projects, from ERC-4626 vaults to Compound forks. We guarantee that after setup, your team can catch 90% of errors before deployment.

Comparison: Tenderly Simulator vs Hardhat fork

Characteristic Hardhat --fork Tenderly Simulator
Deployment Local EVM Cloud API
State override Via test code JSON in request
Gas profiling Total limit Per call
Bundle No Yes
Virtual TestNet No Yes
CI-ready Node required in pipeline Simple API call

Tenderly Simulator is 10x faster to set up than a local Hardhat fork and provides 5x more detailed trace. A local fork is good for initial tests, but for complex scenarios we recommend Simulator.

How Tenderly Simulator Solves the Debugging Problem?

Imagine: your smart contract on Polygon throws OutOfGas. Locally you can't reproduce the exact pool state due to different configuration. Tenderly Simulator lets you override the pool's storage (e.g., simulate reserve changes), set user balance to 1000 MATIC, run the simulation, and see exactly which call consumed gas. This cuts debugging time from hours to minutes. With Tenderly Simulator, time to diagnose OutOfGas errors drops from 2 hours to 15 minutes.

Why Virtual TestNets Are Better Than a Local Fork?

Virtual TestNet is a persistent mainnet fork with an RPC URL. You connect it via MetaMask or wagmi as a regular network. Frontend works with real contracts, you see UI interactions. State resets on a schedule—ideal for CI, where each test run starts with a clean state. No need to spin up Anvil or spend time on Hardhat config. Virtual TestNet is created with one command and available via RPC URL, which is 80% faster than setting up a local fork.

Characteristic Virtual TestNet Local Fork
Deployment 1 command (CLI) Hardhat setup
Persistence On schedule Process lifetime
Frontend accessibility RPC URL localhost:8545
State reset On demand Process restart

Tenderly Simulator supports bundle simulation, allowing you to test multi-step scenarios.

API Setup

Basic simulation via Tenderly API:

const TENDERLY_API = 'https://api.tenderly.co/api/v1'; const headers = { 'X-Access-Key': process.env.TENDERLY_ACCESS_KEY!, 'Content-Type': 'application/json' }; const response = await fetch( `${TENDERLY_API}/account/${TENDERLY_USER}/project/${TENDERLY_PROJECT}/simulate`, { method: 'POST', headers, body: JSON.stringify({ network_id: '1', // mainnet from: userAddress, to: contractAddress, input: encodedCalldata, gas: 500000, gas_price: '0', value: '0', save: true, // save simulation to dashboard state_objects: { // override user balance [userAddress]: { balance: '0xDE0B6B3A7640000' } // 1 ETH } }) } ); const simulation = await response.json(); console.log('Gas used:', simulation.transaction.gas_used); console.log('Status:', simulation.transaction.status); // true/false 

Step-by-Step Tenderly Simulator Setup for CI

Step 1. Create a project in Tenderly and obtain an Access Key.

Step 2. Write a simulation script for typical transactions: deploy, swap, staking. Use state_objects for edge cases.

Step 3. Add a step to your pipeline (GitHub Actions, GitLab CI, or CircleCI) with the TENDERLY_ACCESS_KEY variable. On simulation failure, the pipeline stops.

Example GitHub Actions configuration
- name: Simulate deployment transaction env: TENDERLY_ACCESS_KEY: ${{ secrets.TENDERLY_ACCESS_KEY }} run: npx ts-node scripts/simulate-deploy.ts 

Virtual TestNets: A Replacement for Local Fork

Tenderly Virtual TestNets (formerly Tenderly Forks) are persistent mainnet forks with an RPC endpoint. Connect via MetaMask or wagmi as a regular network and test directly in the browser with real UI. Create a Virtual TestNet via CLI:

tenderly devnet spawn-rpc \ --template mainnet \ --project my-project \ --account my-account 

Returns an RPC URL. Add to wagmi config:

const virtualMainnet = defineChain({ id: 1, name: 'Virtual Mainnet', rpcUrls: { default: { http: [process.env.TENDERLY_VIRTUAL_TESTNET_RPC!] } } }); 

State resets on request or on schedule—convenient for CI, where each test run starts with a clean state.

What Is Included in the Setup

We provide Tenderly project configuration and API keys (with dashboard access), simulation scripts for 3-5 typical transactions, CI integration (GitHub Actions, GitLab CI, CircleCI), a Virtual TestNet for your mainnet fork, and documentation. Get a consultation—setup will cut testing time by 30-50% and reduce the risk of costly bug reports. Contact us to evaluate your project—we'll pick the optimal configuration for your stack and budget.

Experience and Guarantees

10+ years in blockchain development, 50+ projects on Ethereum, Polygon, Arbitrum. We guarantee that Tenderly setup will reduce testing time by 30-50% and lower the risk of costly bug reports. Request setup—get a free consultation.