One URL. Standard JSON-RPC. Faster Base.
No SDK, no network object, no signup. Point your client at one HTTPS endpoint and keep your code. It works with viem, ethers, wagmi, web3.py, and curl, anything that speaks Ethereum RPC.
Get connected
https://rpc.baseazul.devChain ID 8453 0x2105. Single region (us-east-1 (Virginia)), wrap it in a fallback for production.
curl -X POST https://rpc.baseazul.dev \ -H 'content-type: application/json' \ -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'# => {"jsonrpc":"2.0","id":1,"result":"0x2105"}import { createPublicClient, http, fallback } from 'viem';import { base } from 'viem/chains';// Azul first; transparently falls back to the public RPC if it ever blips.export const client = createPublicClient({ chain: base, transport: fallback( [http('https://rpc.baseazul.dev'), http('https://mainnet.base.org')], { rank: true }, // poll latency, keep the fastest path on top ),});const tip = await client.getBlockNumber(); // => latest Base block (bigint)import { JsonRpcProvider } from 'ethers';const provider = new JsonRpcProvider('https://rpc.baseazul.dev');const tip = await provider.getBlockNumber();// => latest Base block height, e.g. 21000000 (number)import { createConfig, http } from 'wagmi';import { base } from 'wagmi/chains';export const config = createConfig({ chains: [base], transports: { [base.id]: http('https://rpc.baseazul.dev'), },});from web3 import Web3w3 = Web3(Web3.HTTPProvider("https://rpc.baseazul.dev"))tip = w3.eth.block_number# => latest Base block height, e.g. 21000000Paste the curl tab and you’ll get back 0x2105, you’re connected.
Build against it
Pair with a fallback
Azul runs from a single region (us-east-1 (Virginia)). Wrap it in viem’s fallback() (see the viem tab above) so a backup takes over on errors.
Writes fan out for you
You don’t need a wrapper. eth_sendRawTransaction already races multiple paths to the sequencer for the lowest inclusion latency.
Method support
All eth_*, net_*, web3_* are open and keyless. debug_*, trace_*, txpool_* need a free key. HTTP today; WebSocket is roadmap.
Upgrade path
Anonymous access is keyless, ungated, and the default. Most apps never need more. Two rungs above it when you do. Compare tiers and limits →
Free key
Hit a limit, or need debug_* / trace_*? A free key raises your rate limits, widens the eth_getLogs window, and opens blocked namespaces.
Edge
Fill-sensitive? Edge adds a pre-confirmation feed (early access) and an end-to-end priority path, the data advantage trading desks pay for. We make money on Edge, so we never monetize your traffic. That is also why there is nothing to log.