Chain configuration
See World Chain methods for per-method availability and Debug and trace APIs for the tracing namespaces.
MetaMask
Add World Chain Mainnet as a custom network. On Chainstack, get your World Chain endpoint, then in MetaMask select Add a custom network and fill in:- Network name — World Chain
- Default RPC URL — your Chainstack World Chain endpoint
- Chain ID —
480 - Currency symbol — ETH
- Block explorer URL —
https://worldscan.org
ethers.js
Install ethers.js:viem
World Chain ships in viem’s bundled chain list asworldchain, so you do not need defineChain:
http() as above. The bundled chain definition carries a public RPC URL, and http() with no argument would use that instead of your node.
web3.py
Install web3.py:web3.py rejects lowercase addresses with
InvalidAddress. Wrap any address you did not get from the library itself in Web3.to_checksum_address(), as above.Three World Chain behaviors that affect tooling
There is no transaction pool to read. Thetxpool_* namespace is not served — txpool_status, txpool_content, txpool_contentFrom, and txpool_inspect all return -32601. No mode or plan change turns them on, because World Chain is an OP Stack chain and pending transactions stay with the sequencer.
Pending-transaction subscriptions succeed and then deliver nothing. eth_subscribe("newPendingTransactions") returns a subscription ID and eth_newPendingTransactionFilter returns a filter ID, so neither call looks like it failed. No transaction ever arrives. newHeads and logs subscriptions both work normally. See What gives you mempool access.
Filters are node-local. A Global Node endpoint is load balanced across backends, and a filter created by eth_newFilter or eth_newBlockFilter lives on the backend that created it. A follow-up eth_getFilterChanges that lands elsewhere returns -32602 filter not found. Poll eth_getLogs over an explicit block range instead, or hold a WSS subscription, which keeps one connection to one backend for its lifetime.