Docs
Supported ChainsLineaLinea-Specific Methods

rollup_getInfo - Get zkEVM rollup configuration

Get zkEVM rollup configuration on Linea. Essential for understanding the zkEVM rollup parameters and settings.

Get zkEVM rollup configuration on the Linea network. This method provides essential information about the zkEVM rollup parameters, settings, and operational details.

Overview

Linea zkEVM is a Layer 2 scaling solution that uses zero-knowledge proofs to provide high throughput while maintaining Ethereum's security. The rollup configuration includes important parameters for:

  • Batch Processing: How transactions are batched and processed
  • Proof Generation: Zero-knowledge proof parameters
  • Bridge Operations: L1 ↔ L2 asset bridging configuration
  • Network Parameters: Chain ID, block times, and operational settings

Request Parameters

Request

This method accepts no parameters.

Response Body

Response
resultOBJECT

Rollup configuration object containing comprehensive information about the zkEVM rollup setup.

Implementation Example

Bash
curl -X POST https://api-linea-mainnet-archive.n.dwellir.com/YOUR_API_KEY \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "rollup_getInfo",
    "params": [],
    "id": 1
  }'

Understanding Linea zkEVM Configuration

Key Components

  1. Mode: Operating mode of the rollup (zkEVM)
  2. Chain ID: Network identifier (59144 for mainnet, 59140 for testnet)
  3. State Root: Root hash of the current state tree
  4. Batch Commitment: Commitment to the current batch of transactions
  5. Prover: Address of the proof generation system
  6. Version: Current version of the rollup implementation

zkEVM Architecture

  • Proof System: Zero-knowledge proofs validate transaction execution
  • Data Availability: Transaction data posted to Ethereum L1
  • EVM Compatibility: Full compatibility with Ethereum Virtual Machine
  • Finality: Probabilistic finality on L2, cryptographic finality via proofs

Common Use Cases

1. Network Health Monitoring

JavaScript
// Monitor rollup health and performance
async function monitorRollupHealth(analyzer) {
  const healthCheck = async () => {
    const status = await analyzer.getComprehensiveRollupStatus();
    
    const alerts = [];
    
    // Check block production
    if (status.current_state.block_age_seconds > 300) {
      alerts.push({
        type: 'stale_blocks',
        severity: 'warning',
        message: 'Blocks are older than expected'
      });
    }
    
    // Check gas utilization
    if (status.current_state.gas_utilization > 95) {
      alerts.push({
        type: 'high_utilization',
        severity: 'info',
        message: 'Network experiencing high usage'
      });
    }
    
    return {
      status: alerts.length === 0 ? 'healthy' : 'warning',
      alerts: alerts,
      metrics: status.current_state
    };
  };
  
  return healthCheck;
}

2. Integration Compatibility Check

Python
def check_integration_compatibility(analyzer):
    """Check if current rollup config is compatible with integration"""
    
    status = analyzer.get_comprehensive_rollup_status()
    rollup_info = status['rollup_config']
    
    compatibility = {
        'evm_compatible': True,  # zkEVM is fully EVM compatible
        'supported_features': [
            'Standard Ethereum transactions',
            'Smart contract deployment',
            'ERC token standards',
            'Event emission and filtering',
            'eth_call and eth_estimateGas',
            'Debug and trace methods'
        ],
        'limitations': [
            'Proof generation delays for finality',
            'L1 data posting affects costs',
            'Bridge withdrawals require waiting period'
        ],
        'recommended_practices': [
            'Use standard Ethereum tooling',
            'Account for L1 fee components',
            'Plan for withdrawal delays',
            'Monitor gas price fluctuations'
        ]
    }
    
    return compatibility

3. Performance Benchmarking

JavaScript
// Benchmark rollup performance characteristics
async function benchmarkRollupPerformance(analyzer) {
  const benchmark = {
    testDuration: '10 minutes',
    metrics: {},
    recommendations: []
  };
  
  // Monitor for performance data
  const performanceData = await analyzer.monitorRollupPerformance(10);
  
  benchmark.metrics = {
    avgBlockTime: performanceData.block_production.average_block_time,
    gasUtilization: performanceData.gas_utilization.average,
    healthScore: performanceData.network_health.health_score
  };
  
  // Generate recommendations
  if (benchmark.metrics.avgBlockTime > 15) {
    benchmark.recommendations.push(
      'Block times are longer than expected - monitor network congestion'
    );
  }
  
  if (benchmark.metrics.gasUtilization > 80) {
    benchmark.recommendations.push(
      'High gas utilization - consider transaction timing optimization'
    );
  }
  
  return benchmark;
}

Integration Considerations

Development

  • Tooling: Use standard Ethereum development tools (Hardhat, Truffle, Remix)
  • RPC Compatibility: Full JSON-RPC compatibility with additional rollup-specific methods
  • Gas Estimation: Account for both L2 execution and L1 data posting costs

Production Deployment

  • Security: Leverage zkEVM's cryptographic security guarantees
  • Monitoring: Monitor both L2 state and L1 proof submission
  • Bridge Integration: Plan for canonical bridge usage and withdrawal delays

User Experience

  • Transaction Speed: Fast L2 confirmation with eventual L1 finality
  • Cost Optimization: Optimize transaction data to minimize L1 costs
  • Bridge UX: Clear communication about withdrawal timeframes

Need help? Contact our support team or check the Linea documentation.