Polygon zkEVM API Quickstart

How to get started building on Polygon zkEVM using Alchemy
Don't have an API key?

Build faster with production-ready APIs, smart wallets and rollup infrastructure across 70+ chains. Create your free Alchemy API key and get started today.

Polygon zkEVM is a decentralized Ethereum Layer 2 network that uses cryptographic zero-knowledge proofs to offer validity and quick finality to off-chain transactions. Emulating the Ethereum Virtual Machine (EVM), zkEVM allows for transparent deployment of existing Ethereum smart contracts while enhancing scalability, security, and transaction throughput. By utilizing zkEVM, developers can build decentralized applications with quick finality and improved performance, all within the Ethereum ecosystem.

The Polygon zkEVM API is a collection of JSON-RPC methods that enable developers to interact with the Polygon zkEVM network. Using the endpoints provided by the API, developers can access up-to-date network data and submit transactions to it.

Send Your First Request on Alchemy

Let’s use the viem package to create a Polygon zkEVM client connected to Alchemy and fetch the latest block number!

npm install --save viem

Create Client Connected to Alchemy

1import { createPublicClient, http } from "viem";
2import { polygonZkEvm } from "viem/chains";
3
4const client = createPublicClient({
5 chain: polygonZkEvm,
6 transport: http("https://polygonzkevm-mainnet.g.alchemy.com/v2/YOUR_ALCHEMY_API_KEY"),
7});

Now that you’ve created a client connected to Alchemy, you can continue with some basics:

Get Latest Block Number

1const blockNumber = await client.getBlockNumber();
2console.log("Current block number:", blockNumber);

Get an Address Balance

1const balance = await client.getBalance({ address: "0xab5801a7d398351b8be11c439e05c5b3259aec9b" });
2console.log("Balance (ETH):", Number(balance) / 1e18);

Read Block Data

1const block = await client.getBlock({
2 blockNumber: blockNumber, // from previous example
3});
4console.log(block);

Fetch a Transaction by Hash

1const tx = await client.getTransaction({ hash: "0xYOUR_TX_HASH" });
2console.log(tx);

Fetch Transaction Receipt

1const receipt = await client.getTransactionReceipt({
2 hash: "0xYOUR_TX_HASH"
3});
4console.log(receipt);

Polygon zkEVM APIs

For the full list of Polygon zkEVM APIs, see the Polygon zkEVM API Endpoints.