Skip to main content
198+ Blockchain Interfaces

FREE RPC

Free RPC for 50+ blockchains instantly. No signup required.

Perfect for testing and development. Upgrade for production.

67
99.9%
24/7
FREE

Choose Your Blockchain

Select a blockchain to access its RPC endpoints

Our Mission

Making blockchain development accessible to everyone

No signup. No paywalls. No complexity. Just RPC that works.
The best ideas come from everywhere, not just those who can afford it.

Why FREE RPC?

Because getting started shouldn't require a credit card. We provide free RPC access so you can prototype, learn, and build without barriers. Read more about who runs this.

Instant RPC Access

Start building immediately.
No registration, no complexity.

Explore Blockchains

Perfect for learning, testing, and experimenting with blockchain.

198 RPC Interfaces

Connect to any major blockchain.
All in one place, all free to try.

Community Gift

Our way of supporting the Web3 ecosystem and helping it grow.

Built with love by the Tatum team

Need higher limits? Upgrade for production workloads.

The details

What you get, and the limits

Everything in the grid above is callable right now, with no account. Below is a request you can run before reading any further, then what the ceiling is and how to tell when a project has outgrown it. The counts come from the same blockchain manifest the grid is built from, so they move when the coverage moves.

Your first request

Ethereum mainnet, no key, and no header beyond a content type. Paste this into a terminal:

curl -X POST https://ethereum-mainnet.gateway.tatum.io \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

The reply is an ordinary JSON-RPC 2.0 envelope, and result is the height of the head block in hex rather than decimal:

{"id":1,"jsonrpc":"2.0","result":"0x18be3e0"}

eth_blockNumber takes no parameters, which makes it the cheapest way to prove a URL works before you go looking for anything else. From a client, the URL is the only thing you configure:

import { createPublicClient, http } from 'viem';
import { mainnet } from 'viem/chains';

const client = createPublicClient({
  chain: mainnet,
  transport: http('https://ethereum-mainnet.gateway.tatum.io'),
});

console.log(await client.getBlockNumber());

One trap worth knowing before you lose an hour to it. ethers v6 batches JSON-RPC calls by default, and batch calls are a paid feature, so a plain new JsonRpcProvider(url) fails on the free tier with HTTP 402. Construct it as new JsonRpcProvider(url, undefined, { batchMaxCount: 1 }) and it behaves. The envelope itself is the same on every JSON-RPC network listed here; the method set is not, so each chain page lists the methods that chain's interface actually answers.

The interfaces you can call

There are 198 interfaces across 135 networks on 67 chains, and every one of them is a plain HTTPS or WebSocket URL that goes straight into a client. 127 of them speak JSON-RPC, which is what wallets and the common JavaScript libraries expect and what you will use for almost everything. 53 serve a REST-style HTTP API, which some chains publish instead of JSON-RPC and some publish alongside it. 12 are WebSocket URLs, so your code can be told about a new block instead of asking repeatedly whether there is one. 6 speak gRPC, which a handful of chains prefer for their own native tooling.

The mix differs by chain. A Bitcoin-family network has no use for the Ethereum method set, and a chain with no public streaming interface has no WebSocket URL to list. Each chain page shows what that chain actually has, network by network, with a copy button beside every URL. The grid above also keeps its filter in the address: /?q=ethereum#blockchains opens this page with the search box already filled in and the grid already narrowed. That is worth pasting into a chat or a docs page instead of telling somebody to scroll.

The rate limit, and what crossing it looks like

The free tier serves 5 requests per minute. That figure carries no qualifier: not by chain, not by network, and not by whether you are on mainnet or a test network. Cross it and the same call above comes back like this:

HTTP/2 429
retry-after: 60

{"statusCode": 429, "message": "You have exceeded your limit of 5 requests per minute. To increase this limit, upgrade to a Paid plan with 200 requests per second at https://co.tatum.io/upgrade"}

Two things about that response save time later. It is a plain HTTP error rather than a JSON-RPC error object, so the status code is where the information is: a client that only reads the error field of the envelope will not find one. And it carries a retry-after header, which is worth honouring, because an immediate retry usually just returns the same 429.

Five a minute is comfortable for the work the tier is meant for and nowhere near enough for anything else. It will carry a tutorial, a script on a timer, a balance read when a page loads, a test suite that mocks most of its calls. It will not carry a wallet with users, an indexer, a block-by-block backfill, or anything that polls in a loop. Caching buys back more room than people expect, because more is fixed than it looks: a token's decimals, a contract ABI, a chain ID, the address of a router you call every time.

One non-solution is worth naming. Splitting the same workload across several IP addresses to get past the ceiling is not a clever trick, it is taking capacity out of a pool that every other developer here is sharing. If you need more than the free tier gives, the honest move is to ask for more.

Free versus paid

The useful test is whether anybody other than you depends on the calls. If the answer is yes, the free tier is the wrong tool, not because it will necessarily let you down but because it makes no promise either way: it is best-effort infrastructure with nothing contractual behind it.

A paid Tatum plan changes four things. The ceiling goes from 5 requests a minute to 200 requests per second with no daily limits. Best-effort becomes a 99.9% uptime SLA, which is a number somebody is accountable for rather than a number somebody hopes for. It adds capabilities the free tier does not have at all, and it is worth knowing which before you design around them: archive nodes, for reading state as it stood at a block long in the past, batch RPC calls, and debug and trace methods. And it adds priority support, which counts most on the day you cannot work out whether the problem is yours or ours.

Nothing here is trying to push you across that line. If your project stays under 5 requests a minute forever, stay on the free tier forever, which is what free forever is supposed to mean. The Upgrade link is there for the day the numbers above stop being the ones you need.

FAQ

Frequently Asked Questions

No account, no key, and a published ceiling. What that means in practice.

Is FREERPC really free, or is it a trial?

Free, and not a trial. There is no credit card on file, no expiry date and no invoice at the end of the month. The free tier serves 5 requests per minute on every chain listed here and stays there, which is what free forever means on this site. What it is not is unlimited: 5 requests a minute is the published ceiling, and going over it returns HTTP 429.

Do I need an account, an API key, or a credit card?

None of the three. There is no signup form on this site, nothing to confirm by email, and no key to append to a URL or set in a header. Copy the URL from a chain page and call it. The practical benefit is that there is no secret to manage: nothing to rotate, nothing to keep out of a public repository, nothing to redact from a screenshot. A URL from here can go straight into a README or a test fixture.

Which networks have testnets?

60 of the 67 chains listed here. Each non-mainnet network sits on its chain page next to mainnet, labelled Testnet, with its own URL and, on nearly all of them, its own block explorer link. Which test networks a chain has changes as networks retire, so read the chain page rather than a memorised list. The remaining 7 are mainnet only. Two things before you build: the 5 requests per minute figure carries no network qualifier, and test tokens come from that network's own faucet, not from here.

How do I choose between JSON-RPC, REST, WebSocket and gRPC?

Start with JSON-RPC. It is what 127 of the 198 interfaces here serve, and what wallets, ethers, viem and web3.js all speak. Reach for REST when you want to read something in a browser before writing any code. Reach for WebSocket when you need to hear about a block as it happens rather than polling, and track the last block you handled so a dropped connection leaves no silent gap. Reach for gRPC when JSON parsing costs a backend real time. Each chain page lists which of the four it actually has.

Can I use this in production?

Yes under 5 requests a minute, no above it. If everything your application does adds up to fewer than five calls a minute, a status widget, a personal dashboard, a job that checks a balance on a timer, the free tier will carry it. Past that the failure lands in front of your users as HTTP 429. The free tier is also best-effort, with no contractual uptime behind it, so if anyone but you depends on the calls, run them on a plan with an SLA.

What uptime should I expect?

No contractual guarantee on the free tier, which is offered as best-effort infrastructure. The 99.9% uptime SLA Tatum publishes belongs to the paid plans, and that distinction matters most on the day something breaks. Tatum's status page is linked in the footer and is the first place to look when calls fail across a whole chain rather than on one request. Whichever tier you are on, retry with backoff, treat one failed call as normal, and cache anything that does not change between blocks.

An endpoint is failing. How do I report it?

Check the status page first, then raise it in the Discord community, both linked in the footer. A report is actionable when it carries the chain, the network, the exact URL you called, the HTTP status, the raw response body rather than your wallet's summary of it, and an approximate timestamp in UTC. Rule out the usual causes first: an HTTP 429 is the free tier ceiling rather than a fault, and a request that hangs without ever returning is more often a firewall or a VPN than a broken node.

How does this relate to Tatum's paid plans?

FREERPC is the free tier of Tatum's RPC product, and these pages are generated at build time from Tatum's own published blockchain manifest, which is why the networks and interfaces listed here are Tatum's list rather than a hand-maintained copy of it. A paid plan raises the ceiling to 200 requests per second with no daily limits, puts a 99.9% uptime SLA in place of best-effort, and adds archive nodes, batch RPC calls, debug and trace methods, and priority support. The free tier stays where it is either way.

Why is the chain I want missing?

Because it is not in the manifest these pages are built from, which today carries 67 chains, 135 networks and 198 interfaces. There is no chain-request form here, so the Discord community linked in the footer is the place to ask, and it helps to say which network and which methods you need rather than only naming the chain. The same goes for a gap on a chain that is already listed, such as a missing WebSocket URL, which is worth raising as its own narrower question.

Can I query historical state, or do I need an archive node?

Archive access is a paid feature. Reading state as it stood at an old block, replaying a transaction or reconstructing a balance history is archive work, and archive nodes come with a Tatum Premium plan rather than the free tier. So do debug and trace methods, and batch RPC calls. A historical read is an ordinary call with an old block number passed in, so nothing about the request tells you whether the depth you need is there. Settle that before you build on it.
Learn more

From the Tatum blog

Guides and updates on building with RPC.