Protoviz is a web-based interactive testing tool for EVM-based smart contracts. Think Burp Suite, but for Ethereum. It enables exploratory, dynamic testing with full visibility into system state and time-travel capabilities via snapshot/revert.

Features

  • Contract graph — interactive node-based visualisation of contract relationships
  • Transaction tracing — full internal call trees, state changes, event logs
  • Snapshot/revert — time-travel through blockchain state
  • Account impersonation — send transactions as any address
  • Forge script execution — run scripts directly from the UI
  • Value watchers — monitor storage slots, balances, and function returns over time

Architecture

A Turborepo monorepo with three packages:

  • Frontend — React 18, React Flow, Zustand, TanStack Query, Tailwind
  • Backend — Node.js with Hono, Viem for Anvil RPC
  • Shared — Common types and constants

My Contributions

  • Graceful Anvil shutdown (wait for clean exit instead of SIGTERM)
  • Fixed port leak when Anvil fails to start
  • WatcherService race condition fix
  • WebSocket dead connection cleanup
  • Input validation on API routes
  • DeploymentDetector duplicate node prevention