Skip to main content

Quickstart

This quickstart guide will help you set up and make calls on the ZKsync Era network using the Infura endpoints.

Prerequisites

Ensure you have an API key with the ZKsync Era networked enabled.

Make calls

curl

Run the following command in your terminal, replacing <YOUR-API-KEY> with your actual Infura API key:

curl https://zksync-mainnet.infura.io/v3/<YOUR-API-KEY> \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "eth_blockNumber", "params": [], "id": 1}'

Node (JavaScript)

In these examples, you'll use npm as your package manager.

Node Fetch

  1. In your project folder, install the node-fetch package using npm::

    npm i node-fetch
  2. Create your JavaScript file and copy the following code:

    Replace <YOUR-API-KEY> with your actual Infura API key.

    index.js
    import fetch from "node-fetch"

    fetch("https://zksync-mainnet.infura.io/v3/<YOUR-API-KEY>", {
    method: "POST",
    headers: {
    "Content-Type": "application/json",
    },
    body: JSON.stringify({
    jsonrpc: "2.0",
    method: "eth_blockNumber",
    params: [],
    id: 1,
    }),
    })
    .then((response) => response.json())
    .then((data) => {
    console.log(data)
    })
    .catch((error) => {
    console.error(error)
    })
  3. Run the code using the following command:

    node index.js

Axios

  1. In your project folder, install the axios package using npm:

    npm i axios
  2. Create your JavaScript file and copy the following code:

    Replace <YOUR-API-KEY> with your actual Infura API key.

    index.js
    const axios = require("axios")

    axios
    .post("https://zksync-mainnet.infura.io/v3/<YOUR-API-KEY>", {
    jsonrpc: "2.0",
    method: "eth_blockNumber",
    params: [],
    id: 1,
    })
    .then((response) => {
    console.log(response.data)
    })
    .catch((error) => {
    console.error(error)
    })
  3. Run the code using the following command:

    node index.js

Ethers

  1. In your project folder, install the ethers package using npm:

    npm install ethers
  2. Create your JavaScript file and copy the following code:

    Replace <YOUR-API-KEY> with your actual Infura API key.

    index.js
    const ethers = require("ethers")

    const provider = new ethers.providers.JsonRpcProvider(
    "https://zksync-mainnet.infura.io/v3/<YOUR-API-KEY>"
    )

    provider
    .getBlockNumber()
    .then((blockNumber) => {
    console.log(blockNumber)
    })
    .catch((error) => {
    console.error(error)
    })
  3. Run the code using the following command:

    node index.js

Python

  1. In your project folder, install the requests library:

    pip install requests
  2. Create your Python file and copy the following code:

    Replace <YOUR-API-KEY> with your actual Infura API key.

    index.py
    import requests
    import json

    url = "https://zksync-mainnet.infura.io/v3/<YOUR-API-KEY>"

    payload = {
    "jsonrpc": "2.0",
    "method": "eth_blockNumber",
    "params": [],
    "id": 1
    }

    headers = {"content-type": "application/json"}

    response = requests.post(url, data=json.dumps(payload), headers=headers).json()

    print(response)
  3. Run the code using the following command:

    python index.py

Next steps

Now that you have successfully made a call to the ZKsync Era network, you can explore more functionalities and APIs provided by Infura. Here are some suggestions:

  • Explore other ZKsync Era APIs: Infura supports a wide range of APIs. You can find more information in the JSON-RPC API method documentation.

  • Try out different networks: Infura supports multiple networks including Arbitrum, Polygon, Optimism, IPFS, and more.

  • Monitor your usage: Monitor your usage on the Infura dashboard to ensure you're not hitting your rate limits.

Remember, the Infura community is here to help. If you have any questions or run into any issues, check out the Infura community for help and answers to common questions.