verifychain
curl --request POST \
--url https://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "1.0",
"method": "verifychain",
"params": [
3
],
"id": 1
}
'import requests
url = "https://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f"
payload = {
"jsonrpc": "1.0",
"method": "verifychain",
"params": [3],
"id": 1
}
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: '1.0', method: 'verifychain', params: [3], id: 1})
};
fetch('https://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f', 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://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f",
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' => '1.0',
'method' => 'verifychain',
'params' => [
3
],
'id' => 1
]),
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://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f"
payload := strings.NewReader("{\n \"jsonrpc\": \"1.0\",\n \"method\": \"verifychain\",\n \"params\": [\n 3\n ],\n \"id\": 1\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://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"1.0\",\n \"method\": \"verifychain\",\n \"params\": [\n 3\n ],\n \"id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f")
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\": \"1.0\",\n \"method\": \"verifychain\",\n \"params\": [\n 3\n ],\n \"id\": 1\n}"
response = http.request(request)
puts response.read_body{
"result": true,
"error": {},
"id": 123
}Bitcoin node API
verifychain | Bitcoin
The verifychain method checks the integrity of the blockchain database on the node. Available on Bitcoin via Chainstack JSON-RPC nodes.
POST
/
e125e5e68e66f2939f3f120e6f888b3f
verifychain
curl --request POST \
--url https://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "1.0",
"method": "verifychain",
"params": [
3
],
"id": 1
}
'import requests
url = "https://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f"
payload = {
"jsonrpc": "1.0",
"method": "verifychain",
"params": [3],
"id": 1
}
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: '1.0', method: 'verifychain', params: [3], id: 1})
};
fetch('https://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f', 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://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f",
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' => '1.0',
'method' => 'verifychain',
'params' => [
3
],
'id' => 1
]),
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://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f"
payload := strings.NewReader("{\n \"jsonrpc\": \"1.0\",\n \"method\": \"verifychain\",\n \"params\": [\n 3\n ],\n \"id\": 1\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://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"1.0\",\n \"method\": \"verifychain\",\n \"params\": [\n 3\n ],\n \"id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://bitcoin-mainnet.core.chainstack.com/e125e5e68e66f2939f3f120e6f888b3f")
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\": \"1.0\",\n \"method\": \"verifychain\",\n \"params\": [\n 3\n ],\n \"id\": 1\n}"
response = http.request(request)
puts response.read_body{
"result": true,
"error": {},
"id": 123
}The
verifychain method checks the integrity of the blockchain database on the node.
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
check level(optional): An integer between 0 and 4 that determines the thoroughness of the verification process. The default level is 3.
Response
result— a boolean indicating whether the blockchain is valid.error— an object containing an error message if an error occurred, otherwisenull.id— an integer representing the ID of the request.
Use case
Theverifychain method is useful for node operators and developers who want to ensure the integrity and consistency of their blockchain data. It can be used as a diagnostic tool to detect issues within the blockchain database.Last modified on October 23, 2026
Was this page helpful?