Compresión ZK
getValidityProof
Devuelve una única prueba ZK que el programa de compresión usa para verificar que las cuentas proporcionadas sean válidas y que las nuevas direcciones puedan crearse.
POST
/
cURL
curl --request POST \
--url 'https://mainnet.helius-rpc.com/?api-key=' \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": "1",
"method": "getValidityProof",
"params": {
"hashes": [
"gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT"
]
}
}
'import requests
url = "https://mainnet.helius-rpc.com/?api-key="
payload = {
"jsonrpc": "2.0",
"id": "1",
"method": "getValidityProof",
"params": { "hashes": ["gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT"] }
}
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: 'getValidityProof',
params: {hashes: ['gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT']}
})
};
fetch('https://mainnet.helius-rpc.com/?api-key=', 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://mainnet.helius-rpc.com/?api-key=",
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' => 'getValidityProof',
'params' => [
'hashes' => [
'gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT'
]
]
]),
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://mainnet.helius-rpc.com/?api-key="
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": \"1\",\n \"method\": \"getValidityProof\",\n \"params\": {\n \"hashes\": [\n \"gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT\"\n ]\n }\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://mainnet.helius-rpc.com/?api-key=")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": \"1\",\n \"method\": \"getValidityProof\",\n \"params\": {\n \"hashes\": [\n \"gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mainnet.helius-rpc.com/?api-key=")
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\": \"getValidityProof\",\n \"params\": {\n \"hashes\": [\n \"gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"context": {
"slot": 100
},
"value": {
"compressedProof": {
"a": "<string>",
"b": "<string>",
"c": "<string>"
},
"leafIndices": [
1
],
"leaves": [
"<string>"
],
"merkleTrees": [
"<string>"
],
"rootIndices": [
1
],
"roots": [
"<string>"
]
}
}{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Parámetros no válidos"
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32001,
"message": "No autorizado"
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32005,
"message": "Demasiadas solicitudes"
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32603,
"message": "Error interno"
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32002,
"message": "Servicio no disponible"
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32003,
"message": "Tiempo de espera agotado en la puerta de enlace"
},
"id": "1"
}Parámetros de solicitud
array
Arreglo de hashes criptográficos de cuentas comprimidas de Solana que se verificarán
array
Arreglo de direcciones de cuentas de Solana con sus árboles de Merkle asociados para su verificación
Autorizaciones
Cuerpo
application/json
La versión del protocolo JSON-RPC.
Opciones disponibles:
2.0 Un ID para identificar la solicitud.
El nombre del método que se invocará.
Opciones disponibles:
getValidityProof Show child attributes
Show child attributes
¿Esta página le ayudó?
⌘I
cURL
curl --request POST \
--url 'https://mainnet.helius-rpc.com/?api-key=' \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": "1",
"method": "getValidityProof",
"params": {
"hashes": [
"gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT"
]
}
}
'import requests
url = "https://mainnet.helius-rpc.com/?api-key="
payload = {
"jsonrpc": "2.0",
"id": "1",
"method": "getValidityProof",
"params": { "hashes": ["gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT"] }
}
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: 'getValidityProof',
params: {hashes: ['gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT']}
})
};
fetch('https://mainnet.helius-rpc.com/?api-key=', 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://mainnet.helius-rpc.com/?api-key=",
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' => 'getValidityProof',
'params' => [
'hashes' => [
'gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT'
]
]
]),
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://mainnet.helius-rpc.com/?api-key="
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": \"1\",\n \"method\": \"getValidityProof\",\n \"params\": {\n \"hashes\": [\n \"gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT\"\n ]\n }\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://mainnet.helius-rpc.com/?api-key=")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": \"1\",\n \"method\": \"getValidityProof\",\n \"params\": {\n \"hashes\": [\n \"gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mainnet.helius-rpc.com/?api-key=")
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\": \"getValidityProof\",\n \"params\": {\n \"hashes\": [\n \"gEF8v1TLb2T9vTaJarFj6kQoSfWNkskMSCJpPJSxZzT\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"context": {
"slot": 100
},
"value": {
"compressedProof": {
"a": "<string>",
"b": "<string>",
"c": "<string>"
},
"leafIndices": [
1
],
"leaves": [
"<string>"
],
"merkleTrees": [
"<string>"
],
"rootIndices": [
1
],
"roots": [
"<string>"
]
}
}{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Parámetros no válidos"
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32001,
"message": "No autorizado"
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32005,
"message": "Demasiadas solicitudes"
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32603,
"message": "Error interno"
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32002,
"message": "Servicio no disponible"
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32003,
"message": "Tiempo de espera agotado en la puerta de enlace"
},
"id": "1"
}