Docs
Docs
Home
Getting Started
Agent Tooling
CLI
Supported Chains
Acala
Aptos
Arbitrum
Arc
Asset Hub
Astar
Avalanche
Base
Berachain
Bifrost
Binance Smart Chain
Bittensor
Blast
Boba Network
Bridge Hub
Celo
Centrifuge
Chiliz
Cronos
Enjin
Ethereum
Etherlink
Flow EVM Gateway
Gnosis
Hydration
Hyperliquid
Immutable
Ink
IoTeX
Kusama
Linea
LISK
Manta Atlantic
Manta Pacific
Mantle
MegaETH
Monad
Movement
Neuroweb
opBNB
Optimism
Plasma
Polkadot
Polygon
Pulsechain
Robinhood
Ronin
Scroll
Sonic
Starknet
Taiko
Tempo
Sui
TRON
Unichain
Viction
World Chain
XDC Network
XX Network
Zetachain
zkSync Era
Zora
Supported ChainsLineaJSON-RPC APIMining Methods

eth_coinbase - Linea RPC Method

Check the legacy eth_coinbase compatibility method on Linea. Public endpoints may return an address, `unimplemented`, or another unsupported-method response depending on the client.

Linea RPC endpoint: endpoint URLs, plans and pricing.

Checks the legacy eth_coinbase compatibility method on Linea. Public endpoints may return an address, unimplemented, or another unsupported-method response depending on the client behind the endpoint.

Why Linea? Build on Consensys-backed zkEVM L2 with $1B+ TVL and 807% growth in 2025 with 15-30x lower fees than Ethereum mainnet, 6,200 TPS throughput, SWIFT integration with 12+ institutions, and $725M Consensys backing.

Note: Treat eth_coinbase as a legacy compatibility probe. On shared infrastructure, this method may return unimplemented or another unsupported-method error, so it is not a dependable production signal.

When to Use This Method

eth_coinbase is relevant for enterprise developers, DeFi builders, and teams seeking Consensys ecosystem integration when you need to:

  • Check client compatibility - Confirm whether the connected client still exposes eth_coinbase
  • Audit migration assumptions - Remove Ethereum-era assumptions that every endpoint reports an etherbase address
  • Harden integrations - Fall back to supported identity or chain-status methods when eth_coinbase is unavailable

Best Practices

  • Returns the node's mining address; most providers return their own address or 0x0
  • Not a reliable way to identify validators or block producers on modern chains
  • Use eth_accounts for listing user-managed accounts
  • Treat unimplemented or method-not-found responses as a normal condition
JSON-RPC request
{
  "jsonrpc": "2.0",
  "method": "eth_coinbase",
  "params": [],
  "id": 1
}

Code Examples

Common Use Cases

1. Validator Configuration Verification

Verify that a node's coinbase matches the expected reward address:

JavaScript
async function verifyCoinbase(provider, expectedAddress) {
  try {
    const coinbase = await provider.send('eth_coinbase', []);

    if (coinbase.toLowerCase() === expectedAddress.toLowerCase()) {
      console.log('Coinbase address verified');
      return true;
    } else {
      console.warn(`Coinbase mismatch: expected ${expectedAddress}, got ${coinbase}`);
      return false;
    }
  } catch {
    console.error('Could not retrieve coinbase - may not be configured');
    return false;
  }
}

2. Block Producer Identification

Identify the coinbase address alongside block production details:

JavaScript
async function getProducerInfo(provider) {
  const [coinbase, mining, hashrate] = await Promise.allSettled([
    provider.send('eth_coinbase', []),
    provider.send('eth_mining', []),
    provider.send('eth_hashrate', [])
  ]);

  return {
    coinbase: coinbase.status === 'fulfilled' ? coinbase.value : 'not configured',
    isMining: mining.status === 'fulfilled' ? mining.value : false,
    hashrate: hashrate.status === 'fulfilled' ? parseInt(hashrate.value, 16) : 0
  };
}

3. Multi-Node Coinbase Audit

Audit coinbase addresses across a fleet of Linea nodes:

JavaScript
async function auditCoinbases(endpoints) {
  const results = await Promise.all(
    endpoints.map(async (endpoint) => {
      const provider = new JsonRpcProvider(endpoint);
      try {
        const coinbase = await provider.send('eth_coinbase', []);
        return { endpoint, coinbase, configured: true };
      } catch {
        return { endpoint, coinbase: null, configured: false };
      }
    })
  );

  const unique = new Set(results.filter(r => r.configured).map(r => r.coinbase));
  console.log(`Found ${unique.size} unique coinbase address(es) across ${endpoints.length} nodes`);

  return results;
}

Error Handling

Common errors and solutions:

Error CodeDescriptionSolution
-32000Etherbase must be explicitly specifiedNode has no coinbase configured - set via client CLI flag
-32601Method not foundNode client may not support this method
-32603Internal errorNode may be initializing - retry after delay
-32005Rate limit exceededReduce request frequency

Related Methods

  • eth_mining - Check if the node is actively mining
  • eth_hashrate - Get the mining hash rate
  • eth_accounts - List all accounts managed by the node

eth_hashrate

Get the legacy eth_hashrate compatibility value on Linea. Public endpoints may return `0x0` or an unsupported-method error depending on the client.

eth_estimateL1Fee - Estimate L1 data posting fee

Estimate L1 data posting fee on Linea zkEVM. Essential for understanding transaction costs on the zkEVM rollup.

On this page

When to Use This MethodBest PracticesCode ExamplesCommon Use Cases1. Validator Configuration Verification2. Block Producer Identification3. Multi-Node Coinbase AuditError HandlingRelated Methods