eth_getCode
Returns the bytecode at a given address on zkSync Era.
Why zkSync? Build on Matter Labs' flagship zkEVM powering the Elastic Network of interoperable hyperchains with ZK Stack modular framework, hyperchain interoperability, native account abstraction, and $1.9B in tokenized real-world assets.
Use Cases#
The eth_getCode method is essential for:
- Contract verification - Check if address is a contract
- Security analysis - Verify deployed bytecode matches expected
- DeFi integrations - Validate contracts before interactions
- Protocol analysis - Analyze contract deployments for RWA tokenization ($1.9B, 25% market share), hyperchain deployment via ZK Stack, and cross-chain DeFi
Parameters#
| Parameter | Type | Required | Description |
|---|---|---|---|
address | DATA | Yes | 20-byte address |
blockParameter | QUANTITY|TAG | Yes | Block number or tag |
Request#
{
"jsonrpc": "2.0",
"method": "eth_getCode",
"params": [
"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
"latest"
],
"id": 1
}
Returns#
| Type | Description |
|---|---|
DATA | Contract bytecode or 0x if EOA |
Code Examples#
- cURL
- JavaScript
- Python
- Go
curl -X POST https://api-zksync-era-mainnet-full.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getCode",
"params": [
"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
"latest"
],
"id": 1
}'
import { JsonRpcProvider } from 'ethers';
const provider = new JsonRpcProvider('https://api-zksync-era-mainnet-full.n.dwellir.com/YOUR_API_KEY');
const address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb';
const code = await provider.getCode(address);
if (code === '0x') {
console.log('Address is an EOA (externally owned account)');
} else {
console.log('Address is a contract');
console.log('Bytecode length:', code.length);
}
// Check if address is a contract
async function isContract(address) {
const code = await provider.getCode(address);
return code !== '0x';
}
from web3 import Web3
w3 = Web3(Web3.HTTPProvider('https://api-zksync-era-mainnet-full.n.dwellir.com/YOUR_API_KEY'))
address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
code = w3.eth.get_code(address)
if code == b'':
print('Address is an EOA')
else:
print('Address is a contract')
print(f'Bytecode length: {len(code.hex())}')
# Check if address is a contract
def is_contract(address):
code = w3.eth.get_code(address)
return code != b''
package main
import (
"context"
"fmt"
"log"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient"
)
func main() {
client, err := ethclient.Dial("https://api-zksync-era-mainnet-full.n.dwellir.com/YOUR_API_KEY")
if err != nil {
log.Fatal(err)
}
address := common.HexToAddress("0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb")
code, err := client.CodeAt(context.Background(), address, nil)
if err != nil {
log.Fatal(err)
}
if len(code) == 0 {
fmt.Println("Address is an EOA")
} else {
fmt.Printf("Contract bytecode length: %d\n", len(code))
}
}
Related Methods#
eth_getBalance- Get account balanceeth_getStorageAt- Get contract storage