Solana RPC
getMultipleAccounts
Returns the account information for a list of Pubkeys.
POST
/
getMultipleAccounts
curl --request POST \
--url 'https://mainnet.helius-rpc.com/?api-key=' \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": "1",
"method": "getMultipleAccounts",
"params": [
[
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg",
"4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA"
]
]
}
'import requests
url = "https://mainnet.helius-rpc.com/?api-key="
payload = {
"jsonrpc": "2.0",
"id": "1",
"method": "getMultipleAccounts",
"params": [["vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg", "4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA"]]
}
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: 'getMultipleAccounts',
params: [
[
'vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg',
'4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA'
]
]
})
};
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' => 'getMultipleAccounts',
'params' => [
[
'vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg',
'4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA'
]
]
]),
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\": \"getMultipleAccounts\",\n \"params\": [\n [\n \"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg\",\n \"4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA\"\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\": \"getMultipleAccounts\",\n \"params\": [\n [\n \"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg\",\n \"4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA\"\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\": \"getMultipleAccounts\",\n \"params\": [\n [\n \"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg\",\n \"4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA\"\n ]\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": "1",
"result": {
"context": {
"apiVersion": "2.0.15",
"slot": 341197247
},
"value": [
{
"lamports": 88849814690250,
"owner": "11111111111111111111111111111111",
"data": [
"",
"base58"
],
"executable": false,
"rentEpoch": 18446744073709552000,
"space": 0
}
]
}
}{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Invalid params",
"data": {
"additionalInfo": "Please check the request parameters and ensure they are valid."
}
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32001,
"message": "Unauthorized",
"data": {
"additionalInfo": "Please verify your API key and try again."
}
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32005,
"message": "Too many requests",
"data": {
"additionalInfo": "You have exceeded the allowed number of requests. Please wait and try again later."
}
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32603,
"message": "Internal error",
"data": {
"additionalInfo": "An unexpected error occurred on the server. Please try again later or contact support."
}
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32002,
"message": "Service unavailable",
"data": {
"additionalInfo": "The service is currently unavailable. Please try again later or contact support."
}
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32003,
"message": "Gateway timeout",
"data": {
"additionalInfo": "The request timed out. Please try again later or contact support."
}
},
"id": "1"
}New Feature:
getMultipleAccounts now supports the changedSinceSlot parameter for incremental updates. When specified, the method returns only accounts that have been modified at or after the given slot number. For accounts that exist but haven’t changed since the specified slot, the response will contain status: "unchanged".Request Parameters
array
required
Array of Solana account addresses (up to 100) to fetch in a single optimized batch request.
string
The commitment level for the request.
confirmedfinalizedprocessed
number
The minimum slot that the request can be evaluated at.
object
Request a slice of the account’s data.
number
Number of bytes to return.
number
Byte offset from which to start reading.
string
Encoding format for the returned account data.
jsonParsedbase58base64base64+zstd
number
Only return accounts that have been modified at or after this slot number. For accounts that exist but haven’t changed since the specified slot, the response will contain status as “unchanged”.
Authorizations
Body
application/json
The JSON-RPC protocol version.
Available options:
2.0 Example:
"2.0"
A unique identifier for the request.
Example:
"1"
The name of the RPC method to invoke.
Available options:
getMultipleAccounts Example:
"getMultipleAccounts"
Parameters for the method.
Array of Solana account addresses (up to 100) to fetch in a single optimized batch request.
Example:
[
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg",
"4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA"
]
Was this page helpful?
⌘I
getMultipleAccounts
curl --request POST \
--url 'https://mainnet.helius-rpc.com/?api-key=' \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": "1",
"method": "getMultipleAccounts",
"params": [
[
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg",
"4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA"
]
]
}
'import requests
url = "https://mainnet.helius-rpc.com/?api-key="
payload = {
"jsonrpc": "2.0",
"id": "1",
"method": "getMultipleAccounts",
"params": [["vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg", "4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA"]]
}
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: 'getMultipleAccounts',
params: [
[
'vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg',
'4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA'
]
]
})
};
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' => 'getMultipleAccounts',
'params' => [
[
'vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg',
'4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA'
]
]
]),
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\": \"getMultipleAccounts\",\n \"params\": [\n [\n \"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg\",\n \"4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA\"\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\": \"getMultipleAccounts\",\n \"params\": [\n [\n \"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg\",\n \"4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA\"\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\": \"getMultipleAccounts\",\n \"params\": [\n [\n \"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg\",\n \"4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA\"\n ]\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": "1",
"result": {
"context": {
"apiVersion": "2.0.15",
"slot": 341197247
},
"value": [
{
"lamports": 88849814690250,
"owner": "11111111111111111111111111111111",
"data": [
"",
"base58"
],
"executable": false,
"rentEpoch": 18446744073709552000,
"space": 0
}
]
}
}{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Invalid params",
"data": {
"additionalInfo": "Please check the request parameters and ensure they are valid."
}
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32001,
"message": "Unauthorized",
"data": {
"additionalInfo": "Please verify your API key and try again."
}
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32005,
"message": "Too many requests",
"data": {
"additionalInfo": "You have exceeded the allowed number of requests. Please wait and try again later."
}
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32603,
"message": "Internal error",
"data": {
"additionalInfo": "An unexpected error occurred on the server. Please try again later or contact support."
}
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32002,
"message": "Service unavailable",
"data": {
"additionalInfo": "The service is currently unavailable. Please try again later or contact support."
}
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32003,
"message": "Gateway timeout",
"data": {
"additionalInfo": "The request timed out. Please try again later or contact support."
}
},
"id": "1"
}