zks_getMainContract | zkSync Era
curl --request POST \
--url https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4 \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 1,
"method": "zks_getMainContract",
"params": []
}
'import requests
url = "https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4"
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "zks_getMainContract",
"params": []
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({jsonrpc: '2.0', id: 1, method: 'zks_getMainContract', params: []})
};
fetch('https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'id' => 1,
'method' => 'zks_getMainContract',
'params' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"zks_getMainContract\",\n \"params\": []\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"zks_getMainContract\",\n \"params\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"zks_getMainContract\",\n \"params\": []\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": {
"contractAddress": "<string>"
}
}Zksync node API
zks_getMainContract | zkSync Era
The zks_getMainContract API method is designed to return the address of the main zkSync Era smart contract the L1. zkSync Era via Chainstack.
POST
/
afb8312f3710a5bc469f4c87cad3a2e4
zks_getMainContract | zkSync Era
curl --request POST \
--url https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4 \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 1,
"method": "zks_getMainContract",
"params": []
}
'import requests
url = "https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4"
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "zks_getMainContract",
"params": []
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({jsonrpc: '2.0', id: 1, method: 'zks_getMainContract', params: []})
};
fetch('https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'id' => 1,
'method' => 'zks_getMainContract',
'params' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"zks_getMainContract\",\n \"params\": []\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"zks_getMainContract\",\n \"params\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"zks_getMainContract\",\n \"params\": []\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": {
"contractAddress": "<string>"
}
}The
zks_getMainContract API method is designed to return the address of the main zkSync Era smart contract the L1. This contract address is fundamental for developers and applications interfacing with the zkSync network.
Get your own node endpoint todayStart for free and elevate your app to production levels immediately. No credit card required.Sign up with your GitHub, X, Google, or Microsoft account for immediate access.
Parameters
none
Response
result— the address of the zkSync Era main contract on the L1 blockchain.
Use case
This method returns the main contract address where zkSync holds funds on the L1 network (Ethereum). It could be used as interface to make a bridge between L1 and L2.Body
application/json
Last modified on June 22, 2026
Was this page helpful?