eth_getCode
Returns the bytecode at a given address on Astar.
Why Astar? Build on Polkadot's leading dApp hub supporting EVM, WASM, and upcoming PolkaVM environments with EVM + WASM + PolkaVM support, Build2Earn developer rewards, dApp Staking, and Soneium cross-layer integration.
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 cross-chain DeFi, multi-VM smart contracts, and XCM-enabled interoperability with Ethereum and Cosmos
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": [
"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
"latest"
],
"id": 1
}
Returns#
| Type | Description |
|---|---|
DATA | Contract bytecode or 0x if EOA |
Code Examples#
- cURL
- JavaScript
- Python
- Go
curl -X POST https://api-astar.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getCode",
"params": [
"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
"latest"
],
"id": 1
}'
import { JsonRpcProvider } from 'ethers';
const provider = new JsonRpcProvider('https://api-astar.n.dwellir.com/YOUR_API_KEY');
const address = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY';
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-astar.n.dwellir.com/YOUR_API_KEY'))
address = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY'
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-astar.n.dwellir.com/YOUR_API_KEY")
if err != nil {
log.Fatal(err)
}
address := common.HexToAddress("5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY")
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