Work

What AggSandbox runs locally

AggSandbox is a Rust CLI and Docker-based development environment for running local, forked, and multi-L2 Polygon zkEVM bridge workflows.

Why cross-chain testing needs an inspectable stack

Cross-chain systems are difficult to test because local environments need multiple networks, bridge contracts, services, transaction scripts, and clear inspection points.

Building the CLI and network environment

At Nethermind, I authored 49 merged pull requests across the Rust CLI, Docker and Anvil environments, contract deployment, AggKit integration, bridge and claim commands, multi-L2 mode, tests, and documentation. The broader project provides the Polygon zkEVM bridge contracts and services that the CLI orchestrates.

Local, forked, and multi-L2 topology

  • The Rust CLI starts and inspects Docker Compose environments containing an Anvil L1, one or more Anvil L2 chains, AggKit services, and deployed bridge contracts.
  • Local mode simulates the full stack, fork mode starts from real network state, and multi-L2 mode exercises bridging between multiple destination chains.
  • Bridge commands submit asset or message operations; status, events, bridges, and claims commands expose the intermediate state needed to diagnose the asynchronous lifecycle.
Start the sandbox, bridge an asset, and inspect the destination claim
aggsandbox start --detach
aggsandbox bridge asset --network-id 0 --destination-network-id 1 --amount 0.1 --token-address 0x0000000000000000000000000000000000000000
aggsandbox show claims --network-id 1

Why bridge state stays explicit

  • Docker Compose pins a repeatable service topology while the CLI provides one command surface for local, forked, and multi-L2 variants.
  • Operational inspection remains explicit through status, events, bridges, and claims instead of hiding bridge state behind a single success message.
  • The repository includes unit, integration, benchmark, and bridge-flow work so CLI behavior and infrastructure changes can be exercised together.

Coordinating chains, services, and claims

  • Multi-chain startup has to coordinate ports, network IDs, contract addresses, service health, and deployment ordering across several containers.
  • A bridge operation spans source submission, AggKit processing, proof or claim availability, and destination execution, so failures need to preserve enough identifiers for follow-up commands.
  • Fork and multi-L2 modes change the surrounding network assumptions while the CLI still needs stable command semantics and deterministic tests.

Where local simulation diverges from public networks

  • The Docker stack improves reproducibility but requires Docker, Rust, Make, multiple ports, and enough local resources for several chains and services.
  • Local simulations help reproduce bridge workflows but do not reproduce every timing, availability, or finality condition of public networks.
  • The CLI reduces setup steps without removing the need to understand network IDs, token addresses, transaction hashes, and claim state.

AggSandbox at v0.3.0 and beyond

The public Nethermind repository's latest tagged release is v0.3.0, published July 6, 2025. I authored 49 merged pull requests; main includes changes after that release.

Repository, release, and authored changes

Architecture, bridge, and CLI guides

When this AggSandbox evidence was reviewed