Three deterministic migration engines. One unified mission: eliminate legacy technical debt.
A 100% deterministic JS-AST strike that migrates legacy Web3.js v1 patterns to modern v4 modular syntax.
Transforms default exports to named exports with strict module structure.
Enforces strict `new` constructors for all provider and signer instances.
Automatically fixes malformed event signatures and topic filters.
Migrates legacy provider patterns to Web3.js v4's modular architecture.
// Before (Legacy)
const Web3 = require('web3');
const web3 = new Web3('http://localhost:8545');
// After (Modern)
import { Web3 } from 'web3';
const web3 = new Web3(provider);
Symbol Table-aware math refactor. Safely swaps BigNumber methods for native BigInt operators with zero risk.
Traces variable types through the entire AST before making any changes.
Converts .add(), .sub(), .mul(), .div() to native +, -, *, / operators.
Migrates .eq(), .gt(), .lt(), .gte(), .lte() to ==, >, <, >=, <=.
If we can't verify the type, we don't touch it—absolute zero false positives.
// Before (Ethers v5)
const balance = await provider.getBalance(addr);
const formatted = balance.div(1e18).toString();
// After (Ethers v6)
const balance = await provider.getBalance(addr);
const formatted = (balance / 1n).toString();
The official path for Python smart contract evolution. Deterministically transforms Brownie projects to the modern Ape Framework.
Converts Brownie's global imports to Ape's explicit package imports.
Migrates Brownie's account-centric patterns to Ape's account ecosystem.
Transforms Brownie deployment syntax to Ape's modular deployment.
Converts Brownie tests to Ape's pytest integration with proper fixtures.
# Before (Brownie)
from brownie import accounts, interface
account = accounts[0]
token = interface.IERC20(addr)
# After (Ape)
from ape import accounts, project
account = accounts[0]
token = project.Token.at(addr)
Technology
Deterministic pattern matching using Abstract Syntax Tree analysis.
Code transformation engine powered by AST manipulation.
Automated node/python validation after every transformation.
Multi-phase orchestration with dependency resolution.