Skip to main content

Free Tezos RPC (XTZ)

Discover Tezos, a self-amending blockchain with on-chain governance. Build decentralized applications using its RPC gateway and flexible architecture.

99.9%
2
24/7
FREE
Gateway

Connect to Tezos

Access reliable, enterprise-grade endpoints that power your dApp with ultra-low latency and 99.9% uptime.

Connect to Tezos Gateway

Make your first RPC call on Tezos's Blockchain Gateway.

Mainnet

Mainnet
Mainnet Explorer
REST API
https://tezos-mainnet.gateway.tatum.io

Shadownet

Testnet
Shadownet Explorer
REST API
https://tezos-shadownet.gateway.tatum.io

* Rate limit enabled - perfect for testing and development. For production, we recommend to Upgrade.

Ready for production?

Get 200 requests/second, priority support and advanced blockchain features.

Global Load Balancer

Route to nearest node

Batch RPC Calls

Multiple requests at once

Archive Nodes

Historical blockchain data

Debug & Trace

Advanced debugging

Advanced Analytics

Usage & performance

Bring Your Own RPC

Custom RPC gateways

Upgrade
Get Free API Key

Increase your limit and access all network features in Tatum Development Platform.

Smart Contract Tools on Tezos

Deploy, create, and interact with smart contracts on Tezos.

Accessible to Everyone

No signup. No paywalls. Just RPC that works. Great ideas come from everywhere.

Our Mission

With love by Tatum

Method reference

Tezos methods

Every method the Tezos gateway accepts, grouped by interface. 129 in total, read live from the node rather than kept by hand.

Mainnet is the live Tezos network. Every transaction it accepts is final, and every XTZ balance it reports is real money.

Shadownet is the test network. It answers the same methods as Mainnet, with tokens that are free and deliberately worthless, so you can rehearse edge cases at no risk. Moving to Mainnet is a URL change and nothing more.

Everything below is served over REST. Its endpoint differs per network, and all of them are in the gateway list above.

What sits between you and Tezos

A node is a machine running Tezos with a copy of the chain. Your code cannot ask the chain directly, it asks a node. The gateway picks a healthy one for every call, so you point at one URL instead of one machine.

  • One URL, nothing to run or keep patched yourself.
  • Calls routed to a node that is up and in sync.
  • A failing node is skipped rather than returned to you as an error.

REST

129 methods
https://tezos-mainnet.gateway.tatum.io

Every resource has its own URL, so a request is just an address you can open.

Paste it into a browser, curl it, or bookmark it. There is no body to construct and no method name to look up, and because a read is a plain GET, ordinary HTTP caching applies at the CDN and in your own client. Responses are JSON, and the path itself usually tells you what you are getting.

Where it fits

  • Getting oriented on an unfamiliar chain without writing any code first.
  • Caching, because a GET can be cached by anything sitting between you and the node.
  • Debugging, since the request that failed is a URL you can paste to a colleague.

Trade-offs

  • You get exactly what the endpoint returns. There is no way to ask for less, or for more.
  • Building a full picture takes several round trips where one batched JSON-RPC call would do.
  • Paths carry version prefixes and shift between node releases more readily than method names do.

Enabled and tested methods

Read live from the endpoint, so this is what it actually serves today rather than what the protocol allows in principle. Anything not on this list returns a method-not-found error.

GET /chains/{chain_id}/blocks
Lists the known block hashes, newest first.
GET /chains/{chain_id}/blocks/{block_id}
Returns a block with its header, metadata and operations.
GET /chains/{chain_id}/blocks/{block_id}/context/adaptive_issuance_launch_cycle
Returns the cycle in which adaptive issuance activates.
GET /chains/{chain_id}/blocks/{block_id}/context/big_maps/{id}
Returns the contents of a big map.
GET /chains/{chain_id}/blocks/{block_id}/context/big_maps/{id}/{key_hash}
Returns one value from a big map by key hash.
GET /chains/{chain_id}/blocks/{block_id}/context/constants
Returns the protocol constants in force at this block.
GET /chains/{chain_id}/blocks/{block_id}/context/constants/errors
Returns the error schema the protocol can produce.
GET /chains/{chain_id}/blocks/{block_id}/context/constants/parametric
Returns the protocol constants that governance can change.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts
Lists every contract and account known at this block.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}
Returns an account or contract, including balance, counter and script.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/balance
Returns the spendable balance of an account.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/balance_and_frozen_bonds
Returns the balance plus any bonds frozen as collateral.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/counter
Returns the operation counter, which acts as the account nonce.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/delegate
Returns the delegate an account has set, if any.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/entrypoints
Lists the entrypoints a contract exposes, with their parameter types.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/frozen_bonds
Returns the bonds frozen as collateral by an account.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/full_balance
Returns the total balance including frozen and staked funds.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/manager_key
Returns the public key that manages an account.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/script
Returns the Michelson code of a contract.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/staked_balance
Returns the amount an account has staked.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/storage
Returns the current storage of a contract.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/storage/paid_space
Returns the storage space an account has already paid for.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/storage/staking_numerator
Returns the numerator used when splitting staking rewards.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/storage/used_space
Returns the storage space a contract currently occupies.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/unstake_requests
Lists the pending unstake requests of an account.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/unstaked_finalizable_balance
Returns unstaked funds that can now be finalised.
GET /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/unstaked_frozen_balance
Returns unstaked funds still inside the freezing period.
GET /chains/{chain_id}/blocks/{block_id}/context/dal/shards
Returns the data availability layer shard assignment.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}
Returns a delegate: balances, staking, participation and status.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/active_staking_parameters
Returns the staking parameters currently applied to a delegate.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/balance
Returns the spendable balance of a delegate.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/companion_key
Returns the companion key registered by a delegate.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/consensus_key
Returns the key a delegate signs consensus operations with.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/current_frozen_deposits
Returns the deposits a delegate currently has frozen.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/dal_participation
Returns how well a delegate is participating in the data availability layer.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/deactivated
Reports whether a delegate has been deactivated for inactivity.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/delegated_balance
Returns the balance delegated to a delegate by others.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/delegated_contracts
Lists the accounts delegating to a delegate.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/frozen_balance
Returns the frozen balance of a delegate.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/frozen_balance_by_cycle
Returns the frozen balance of a delegate broken down by cycle.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/frozen_deposits
Returns the deposits a delegate has frozen.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/frozen_deposits_limit
Returns the cap a delegate has set on its frozen deposits.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/full_balance
Returns the total balance of a delegate, frozen funds included.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/grace_period
Returns the cycle at which a delegate is deactivated if it stays inactive.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/is_forbidden
Reports whether a delegate is currently barred from baking.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/min_delegated_in_current_cycle
Returns the minimum delegated balance seen this cycle.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/participation
Returns attestation participation and expected rewards for a delegate.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/pending_staking_parameters
Returns staking parameter changes a delegate has queued.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/stakers
Lists the accounts staking with a delegate.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/staking_balance
Returns the total balance counting towards the baking rights of a delegate.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/staking_denominator
Returns the denominator used when splitting staking rewards.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/total_delegated_stake
Returns the total stake delegated to a delegate.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/voting_info
Returns the voting power and ballot status of a delegate.
GET /chains/{chain_id}/blocks/{block_id}/context/delegates/{pkh}/voting_power
Returns the voting power of a delegate.
GET /chains/{chain_id}/blocks/{block_id}/context/issuance/current_yearly_rate
Returns the current annual issuance rate.
GET /chains/{chain_id}/blocks/{block_id}/context/issuance/current_yearly_rate_details
Returns the annual issuance rate broken down by reward type.
GET /chains/{chain_id}/blocks/{block_id}/context/issuance/current_yearly_rate_exact
Returns the annual issuance rate as an exact fraction.
GET /chains/{chain_id}/blocks/{block_id}/context/issuance/expected_issuance
Returns the issuance expected over the coming cycles.
GET /chains/{chain_id}/blocks/{block_id}/context/issuance/issuance_per_minute
Returns the tokens issued per minute.
GET /chains/{chain_id}/blocks/{block_id}/context/nonces/{block_level}
Returns the nonce revealed for a block level.
GET /chains/{chain_id}/blocks/{block_id}/context/seed
Returns the randomness seed for the current cycle.
GET /chains/{chain_id}/blocks/{block_id}/context/seed_computation
Returns the state of the randomness seed computation.
GET /chains/{chain_id}/blocks/{block_id}/context/total_currently_staked
Returns the total amount currently staked across the network.
GET /chains/{chain_id}/blocks/{block_id}/context/total_frozen_stake
Returns the total stake currently frozen.
GET /chains/{chain_id}/blocks/{block_id}/context/total_supply
Returns the total supply of tez.
GET /chains/{chain_id}/blocks/{block_id}/hash
Returns the hash of a block.
GET /chains/{chain_id}/blocks/{block_id}/header
Returns the header of a block.
GET /chains/{chain_id}/blocks/{block_id}/header/protocol_data
Returns the protocol-specific part of a block header.
GET /chains/{chain_id}/blocks/{block_id}/header/protocol_data/raw
Returns the protocol-specific header data in raw binary form.
GET /chains/{chain_id}/blocks/{block_id}/header/raw
Returns the block header in raw binary form.
GET /chains/{chain_id}/blocks/{block_id}/header/shell
Returns the shell part of a block header, which is protocol independent.
GET /chains/{chain_id}/blocks/{block_id}/helpers/attestation_rights
Returns which delegates are expected to attest, and when.
GET /chains/{chain_id}/blocks/{block_id}/helpers/baking_rights
Returns which delegates may bake each round, and when.
GET /chains/{chain_id}/blocks/{block_id}/helpers/complete/{prefix}
Completes a partial hash or address prefix into full candidates.
GET /chains/{chain_id}/blocks/{block_id}/helpers/current_level
Returns the level, cycle and position within the cycle.
GET /chains/{chain_id}/blocks/{block_id}/helpers/levels_in_current_cycle
Returns the first and last level of the current cycle.
GET /chains/{chain_id}/blocks/{block_id}/helpers/round
Returns the consensus round the block was produced in.
GET /chains/{chain_id}/blocks/{block_id}/helpers/total_baking_power
Returns the total baking power across all delegates.
GET /chains/{chain_id}/blocks/{block_id}/helpers/tz4_staker_number_ratio
Returns the share of stakers using tz4 BLS addresses.
GET /chains/{chain_id}/blocks/{block_id}/helpers/validators
Returns the delegates validating this block and their slots.
GET /chains/{chain_id}/blocks/{block_id}/live_blocks
Lists the blocks whose operations are still valid for inclusion.
GET /chains/{chain_id}/blocks/{block_id}/metadata
Returns block metadata: protocol, balance updates and consumed gas.
GET /chains/{chain_id}/blocks/{block_id}/operation_hashes
Lists the operation hashes in a block.
GET /chains/{chain_id}/blocks/{block_id}/operation_hashes/{validation_pass}
Lists the operation hashes in one validation pass.
GET /chains/{chain_id}/blocks/{block_id}/operation_hashes/{validation_pass}/{operation_offset}
Returns one operation hash by pass and offset.
GET /chains/{chain_id}/blocks/{block_id}/operations
Returns the operations in a block, grouped by validation pass.
GET /chains/{chain_id}/blocks/{block_id}/protocols
Returns the protocol running at this block and its successor.
GET /chains/{chain_id}/blocks/{block_id}/votes/ballot_list
Lists the ballots cast in the current voting period.
GET /chains/{chain_id}/blocks/{block_id}/votes/ballots
Returns the ballot tally for the current voting period.
GET /chains/{chain_id}/blocks/{block_id}/votes/current_period
Returns the current voting period and its position.
GET /chains/{chain_id}/blocks/{block_id}/votes/current_proposal
Returns the proposal being voted on.
GET /chains/{chain_id}/blocks/{block_id}/votes/current_quorum
Returns the quorum required to carry the current vote.
GET /chains/{chain_id}/blocks/{block_id}/votes/listings
Lists the delegates eligible to vote and their voting power.
GET /chains/{chain_id}/blocks/{block_id}/votes/proposals
Lists the proposals submitted in the proposal period.
GET /chains/{chain_id}/blocks/{block_id}/votes/successor_period
Returns the voting period that follows the current one.
GET /chains/{chain_id}/blocks/{block_id}/votes/total_voting_power
Returns the total voting power in the current period.
GET /chains/{chain_id}/chain_id
Returns the identifier of a chain.
GET /chains/{chain_id}/invalid_blocks
Lists blocks the node rejected as invalid.
GET /chains/{chain_id}/is_bootstrapped
Reports whether the node has finished bootstrapping.
GET /chains/{chain_id}/levels/caboose
Returns the oldest level the node still holds data for.
GET /chains/{chain_id}/levels/checkpoint
Returns the level below which blocks are final.
GET /chains/{chain_id}/levels/savepoint
Returns the oldest level with full block data.
GET /chains/{chain_id}/mempool/filter
Returns the filter settings applied to the mempool.
GET /chains/{chain_id}/mempool/pending_operations
Lists the operations waiting in the mempool.
GET /chains/main/chain_id
Returns the identifier of the main chain.
GET /config
Returns the node configuration.
GET /config/history_mode
Returns the history mode the node runs in: archive, full or rolling.
GET /config/network/dal
Returns the data availability layer configuration.
GET /errors
Returns the JSON schema of every error the node can return.
GET /fetch_protocol/{protocol_hash}
Fetches a protocol from peers by its hash.
GET /protocols
Lists the protocols the node knows.
GET /protocols/{protocol_hash}
Returns one protocol by its hash.
GET /version
Returns the API versions the server supports.
GET /versions
Returns the node version and the protocols it supports.
POST /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/all_ticket_balances
Returns every ticket balance held by a contract.
POST /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/big_map_get
Reads a value from the big map of a contract.
POST /chains/{chain_id}/blocks/{block_id}/context/contracts/{contract_id}/ticket_balance
Returns the balance of one ticket type held by a contract.
POST /chains/{chain_id}/blocks/{block_id}/helpers/forge_block_header
Serialises a block header into its binary form.
POST /chains/{chain_id}/blocks/{block_id}/helpers/forge/consensus_operations
Serialises consensus operations into their binary form for signing.
POST /chains/{chain_id}/blocks/{block_id}/helpers/forge/operations
Serialises operations into their binary form for signing.
POST /chains/{chain_id}/blocks/{block_id}/helpers/forge/signed_operations
Serialises operations together with their signatures.
POST /chains/{chain_id}/blocks/{block_id}/helpers/parse/operations
Decodes binary operations back into readable JSON.
POST /chains/{chain_id}/blocks/{block_id}/helpers/preapply/block
Simulates applying a block, returning the result without committing it.
POST /chains/{chain_id}/blocks/{block_id}/helpers/preapply/operations
Simulates applying operations, returning their result without committing.
POST /chains/{chain_id}/blocks/{block_id}/helpers/scripts/event_address
Returns the address events from a contract are emitted to.
POST /chains/{chain_id}/blocks/{block_id}/helpers/scripts/run_operation
Runs an operation against current state without injecting it.
POST /chains/{chain_id}/blocks/{block_id}/helpers/scripts/simulate_operation
Simulates an operation including fees and gas, without injecting it.
POST /chains/{chain_id}/mempool/filter
Updates the filter settings applied to the mempool.
POST /injection/operation
Injects a signed operation into the network.

Common REST errors

What you are most likely to hit calling this interface, and what to do about it.

400
Bad request. A path or query parameter is malformed. Check the parameter format, and that path values are URL-encoded.
404
Not found. Either the path is wrong, or the resource genuinely does not exist at that height. Confirm the path against the list above. A valid path can still 404 for pruned history on a non-archive node.
429
Rate limited. You have exceeded the free tier request allowance. Back off and retry. REST responses cache well, so caching on your side removes most repeat traffic.
500
Internal server error. The node failed while handling the request. Retry with backoff.
503
Service unavailable. The node is starting, resyncing, or temporarily out of rotation. Retry with backoff; this is normally short-lived.
Blockchain Data

Indexed Tezos Data Insights

Complete on-chain data access, no infrastructure to run yourself. Query wallets, tokens, NFTs, and transaction history with lightning-fast APIs.

Blockchain Notifications

Real-time Tezos Alerts

Real-time webhooks for on-chain events. Stop polling the network - get instant alerts for transactions, smart contract events, and wallet activities.

Learn more

About Tezos

What it is, and guides for building on it.

The Tezos RPC documentation provides developers with a comprehensive guide to interact with the Tezos blockchain programmatically. Tezos is a self-amending blockchain that uses a proof-of-stake (PoS) consensus mechanism and on-chain governance to enable continuous upgrades without requiring hard forks. The documentation includes API endpoints for querying blockchain data, managing transactions, and deploying smart contracts. Tezos’s unique architecture and upgradeable governance make it ideal for decentralized applications (dApps) and decentralized finance (DeFi) projects.

FAQ

Frequently Asked Questions

Everything you need to know about Tezos RPC endpoints

Quick Answer: What is Tezos RPC?

RPC (Remote Procedure Call) is the standard way to interact with the network programmatically - reading on-chain data, submitting transactions, and deploying smart contracts through JSON-RPC calls. The free tier ships 5 requests per minute with no registration required, which covers most learning and testing workflows. Production applications typically move to Tatum Premium for 200 requests per second and enterprise-grade reliability.

What is Tezos RPC?

RPC (Remote Procedure Call) is the interface that lets developers interact with the network: read on-chain data, submit transactions, and deploy smart contracts programmatically over standard JSON-RPC methods, without running your own node.

How do I connect to Tezos using these RPC endpoints?

Simply copy the RPC endpoint URL from above and configure it in your Web3 library (ethers.js, web3.js), wallet (MetaMask, Trust Wallet), or development tool (Hardhat, Truffle). The endpoint works immediately with no registration required for the free tier.

What are the rate limits for the free RPC tier?

Free tier RPC endpoints are limited to 5 requests per minute. This is perfect for testing and development. For production applications, we recommend upgrading to Tatum Premium which offers 200 requests per second with no daily limits.

When should I upgrade to Premium?

Consider upgrading to Premium when you're moving to production, need higher rate limits (200 req/sec), require 99.9% uptime SLA, want access to archive nodes for historical data, or need advanced features like batch RPC calls, debug/trace methods, and priority support.

Is Tezos RPC free forever?

Yes! Our free tier RPC endpoints are free forever with 5 requests per minute. This tier is perfect for learning, testing, and small projects. There are no hidden fees or time limits on the free tier.

What happens if I exceed the free tier rate limit?

If you exceed 5 requests per minute on the free tier, you'll receive an HTTP 429 (Too Many Requests) error. This is a standard rate limiting response. To avoid this, you can upgrade to Tatum Premium which offers 200 requests per second with no daily limits, perfect for production applications.

Can I use these Tezos RPC endpoints with MetaMask?

Yes! You can configure MetaMask to use our RPC endpoints. Simply copy the endpoint URL from above, go to MetaMask Settings > Networks > Add Network (or edit existing), and paste the RPC URL. This works with all EVM-compatible networks, including this one.

Are these RPC endpoints secure?

Yes, all our RPC endpoints use HTTPS encryption and follow enterprise-grade security practices. They're powered by Tatum's infrastructure which maintains 99.9% uptime.

What's the difference between mainnet and testnet RPC endpoints?

Mainnet carries real transactions with real value, so every write is final. Testnet runs on a separate network funded with free test tokens, which makes it the safe place to try new code, retry failed calls, and simulate edge cases. Always validate on testnet before pointing production traffic at mainnet.

How do I troubleshoot RPC connection errors?

If you're experiencing connection errors, check: 1) The RPC endpoint URL is correct, 2) You're not exceeding rate limits (5 req/min for free tier), 3) Your network allows HTTPS connections, 4) The network is currently operational. For persistent issues, check our status page or contact support.

Can I use these endpoints in production?

Free tier endpoints can be used in production for low-traffic applications (under 5 req/min). For production apps with higher traffic, we strongly recommend Tatum Premium for guaranteed uptime, faster rate limits, and enterprise SLA.
Related Blockchains

Discover RPC endpoints for other popular blockchain networks