Hanzo Rollups
L2 scaling infrastructure & rollup services
Deploy and manage rollup infrastructure. From optimistic to ZK rollups, we handle sequencers, provers, and data availability so you can focus on your application.
Rollup-as-a-Service
Deploy your own L2 or L3 rollup with managed infrastructure.
High Throughput
Process thousands of transactions per second with low fees.
Security Inheritance
Inherit Ethereum's security while scaling your application.
Native Bridging
Built-in bridges for seamless L1 ↔ L2 asset transfers.
Get Your API Key
Start building in under 5 minutes
No credit card required. Free tier includes 300M compute units/month.
Trusted by developers building:
Key Capabilities
Everything you need, nothing you don't.
Rollup-as-a-Service
Deploy your own L2 or L3 rollup with managed infrastructure.
High Throughput
Process thousands of transactions per second with low fees.
Security Inheritance
Inherit Ethereum's security while scaling your application.
Native Bridging
Built-in bridges for seamless L1 ↔ L2 asset transfers.
Data Availability
Multiple DA options: Ethereum, Celestia, EigenDA, or custom.
Sequencer Management
Managed sequencer infrastructure with decentralization options.
Fraud & Validity Proofs
Support for both optimistic and ZK proving systems.
Interoperability
Connect to the broader L2 ecosystem and cross-chain protocols.
Analytics & Monitoring
Real-time metrics for rollup performance and health.
Simple to Integrate
Get started with just a few lines of code. SDKs for every language.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "@hanzo/rollups/IL2Bridge.sol";
import "@hanzo/rollups/ICrossChainMessenger.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
/// @title L2Bridge - Bridge assets between L1 and L2 rollups
contract L2Bridge {
IL2Bridge public bridge;
ICrossChainMessenger public messenger;
mapping(bytes32 => bool) public processedDeposits;
event DepositInitiated(address indexed from, uint256 amount, uint256 l2ChainId);
event WithdrawalCompleted(address indexed to, uint256 amount);
constructor(address _bridge, address _messenger) {
bridge = IL2Bridge(_bridge);
messenger = ICrossChainMessenger(_messenger);
}
// Bridge ETH from L1 to L2
function bridgeETHToL2(uint256 l2ChainId) external payable {
bridge.depositETH{value: msg.value}(l2ChainId, msg.sender);
emit DepositInitiated(msg.sender, msg.value, l2ChainId);
}
// Bridge ERC20 tokens to L2
function bridgeTokenToL2(
address token,
uint256 amount,
uint256 l2ChainId
) external {
IERC20(token).transferFrom(msg.sender, address(this), amount);
IERC20(token).approve(address(bridge), amount);
bridge.depositERC20(token, amount, l2ChainId, msg.sender);
emit DepositInitiated(msg.sender, amount, l2ChainId);
}
// Finalize withdrawal on L1 (called by relayer)
function finalizeWithdrawal(
bytes32 withdrawalHash,
address to,
uint256 amount,
bytes calldata proof
) external {
require(!processedDeposits[withdrawalHash], "Already processed");
require(bridge.verifyWithdrawalProof(withdrawalHash, proof), "Invalid proof");
processedDeposits[withdrawalHash] = true;
payable(to).transfer(amount);
emit WithdrawalCompleted(to, amount);
}
}Built For
Gaming & Social
High-frequency, low-cost transactions for gaming economies and social apps.
DeFi Scaling
Scale DeFi protocols with lower gas costs while maintaining security.
Enterprise Chains
Private or permissioned rollups with custom governance.
App-Specific Chains
Dedicated throughput and customization for your application.
Supported Chains
Start Building with Hanzo Rollups
Get your free API key and ship your first request in under 5 minutes. No credit card required.