zks_getBridgeContracts | 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_getBridgeContracts",
"params": []
}
'import requests
url = "https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4"
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "zks_getBridgeContracts",
"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_getBridgeContracts', 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_getBridgeContracts',
'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_getBridgeContracts\",\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_getBridgeContracts\",\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_getBridgeContracts\",\n \"params\": []\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": {
"bridgeContractAddresses": {}
}
}Zksync node API
zks_getBridgeContracts | zkSync Era
The zks_getBridgeContracts API method fetches the addresses of the default bridges between Layer 1 (Ethereum) and Layer 2 (zkSync).
POST
/
afb8312f3710a5bc469f4c87cad3a2e4
zks_getBridgeContracts | 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_getBridgeContracts",
"params": []
}
'import requests
url = "https://nd-995-911-243.p2pify.com/afb8312f3710a5bc469f4c87cad3a2e4"
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "zks_getBridgeContracts",
"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_getBridgeContracts', 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_getBridgeContracts',
'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_getBridgeContracts\",\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_getBridgeContracts\",\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_getBridgeContracts\",\n \"params\": []\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": {
"bridgeContractAddresses": {}
}
}The
zks_getBridgeContracts API method fetches the addresses of the default bridges between Layer 1 (Ethereum) and Layer 2 (zkSync). These bridges are pivotal for transferring ERC-20 tokens across layers, playing an essential role in the zkSync ecosystem by enabling efficient, secure, and low-cost asset transfers. This method is especially useful for developers and applications requiring integration with the default bridging mechanisms provided by zkSync.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
none
Response
The response includes the addresses of the default bridge contracts for ERC-20 tokens between Layer 1 and Layer 2:l1Erc20DefaultBridge— the default ERC-20 bridge contract address on Layer 1 (Ethereum). This contract is used for initiating transfers from Ethereum to zkSync.l2Erc20DefaultBridge— the default ERC-20 bridge contract address on Layer 2 (zkSync).
Use Case
A wallet application integrating cross-layer transfer functionalities can use thezks_getBridgeContracts method to dynamically fetch the current default bridge contracts, ensuring that transactions are routed through the appropriate channels.Body
application/json
Last modified on June 22, 2026
Was this page helpful?