ethers.js
Connect to 256 Blocks using ethers.js v6
ethers.js is a complete and compact library for interacting with the Ethereum blockchain and its ecosystem. This guide covers ethers.js v6.
Installation
npm install ethersOr with yarn:
yarn add ethersQuick Start
Connect to 256 Blocks using the X-API-Key header with FetchRequest:
import { ethers, FetchRequest } from 'ethers';
// Create a FetchRequest with custom headers
const fetchRequest = new FetchRequest('https://rpc.256blocks.com/ethereum');
fetchRequest.setHeader('X-API-Key', 'your-api-key');
// Create the provider
const provider = new ethers.JsonRpcProvider(fetchRequest);
// Get the latest block number
const blockNumber = await provider.getBlockNumber();
console.log('Latest block:', blockNumber);Reading Account Balance
import { ethers, FetchRequest } from 'ethers';
const fetchRequest = new FetchRequest('https://rpc.256blocks.com/ethereum');
fetchRequest.setHeader('X-API-Key', 'your-api-key');
const provider = new ethers.JsonRpcProvider(fetchRequest);
// Get account balance
const address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb';
const balance = await provider.getBalance(address);
console.log('Balance:', ethers.formatEther(balance), 'ETH');Reading Contract Data
import { ethers, FetchRequest } from 'ethers';
const fetchRequest = new FetchRequest('https://rpc.256blocks.com/ethereum');
fetchRequest.setHeader('X-API-Key', 'your-api-key');
const provider = new ethers.JsonRpcProvider(fetchRequest);
// ERC-20 ABI (minimal)
const erc20Abi = [
'function balanceOf(address account) view returns (uint256)',
'function decimals() view returns (uint8)',
'function symbol() view returns (string)'
];
// USDC contract on Ethereum
const usdcAddress = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48';
const contract = new ethers.Contract(usdcAddress, erc20Abi, provider);
const balance = await contract.balanceOf('0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb');
const decimals = await contract.decimals();
const symbol = await contract.symbol();
console.log(`Balance: ${ethers.formatUnits(balance, decimals)} ${symbol}`);Multi-Chain Support
Connect to different chains by changing the endpoint:
import { ethers, FetchRequest } from 'ethers';
function createProvider(chain: string, apiKey: string) {
const fetchRequest = new FetchRequest(`https://rpc.256blocks.com/${chain}`);
fetchRequest.setHeader('X-API-Key', apiKey);
return new ethers.JsonRpcProvider(fetchRequest);
}
// Create providers for different chains
const ethProvider = createProvider('ethereum', 'your-api-key');
const baseProvider = createProvider('base', 'your-api-key');
const arbProvider = createProvider('arbitrum', 'your-api-key');
const polygonProvider = createProvider('polygon', 'your-api-key');