Токены и NFT (DAS)
searchAssets
Поиск и фильтрация NFT Solana, сжатых NFT и токенов по гибким критериям, включая владельцев, создателей, коллекции и пользовательские атрибуты
POST
/
searchAssets
curl --request POST \
--url 'https://mainnet.helius-rpc.com/?api-key=' \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": "my-id",
"method": "searchAssets",
"params": {
"ownerAddress": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
"tokenType": "all",
"limit": 50
}
}
'import requests
url = "https://mainnet.helius-rpc.com/?api-key="
payload = {
"jsonrpc": "2.0",
"id": "my-id",
"method": "searchAssets",
"params": {
"ownerAddress": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
"tokenType": "all",
"limit": 50
}
}
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: 'my-id',
method: 'searchAssets',
params: {
ownerAddress: '86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY',
tokenType: 'all',
limit: 50
}
})
};
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' => 'my-id',
'method' => 'searchAssets',
'params' => [
'ownerAddress' => '86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY',
'tokenType' => 'all',
'limit' => 50
]
]),
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\": \"my-id\",\n \"method\": \"searchAssets\",\n \"params\": {\n \"ownerAddress\": \"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY\",\n \"tokenType\": \"all\",\n \"limit\": 50\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\": \"my-id\",\n \"method\": \"searchAssets\",\n \"params\": {\n \"ownerAddress\": \"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY\",\n \"tokenType\": \"all\",\n \"limit\": 50\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\": \"my-id\",\n \"method\": \"searchAssets\",\n \"params\": {\n \"ownerAddress\": \"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY\",\n \"tokenType\": \"all\",\n \"limit\": 50\n }\n}"
response = http.request(request)
puts response.read_body{
"assets": {
"total": 80,
"limit": 50,
"page": 1,
"items": [
{
"interface": "V1_NFT",
"id": "SomeNftMintKey12345",
"ownership": {
"owner": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
"ownership_model": "single"
},
"content": {
"json_uri": "https://example.com/metadata/12345.json"
}
}
]
},
"nativeBalance": {
"lamports": 123,
"price_per_sol": 123,
"total_price": 123
}
}{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Недопустимые параметры запроса."
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32001,
"message": "Ошибка аутентификации. Ключ API отсутствует или недействителен."
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32003,
"message": "У вас нет разрешения на доступ к этому ресурсу."
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32004,
"message": "Активы, соответствующие критериям поиска, не найдены."
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32029,
"message": "Превышено ограничение частоты запросов. Повторите попытку позже."
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32000,
"message": "На сервере произошла непредвиденная ошибка."
},
"id": "1"
}Параметры запроса
string
обязательно
Адрес кошелька Solana, цифровые активы которого необходимо получить для фильтрации результатов поиска.
string
обязательно
Фильтр по определенным типам токенов Solana, включая сжатые NFT (cNFT), обычные NFT,
программируемые NFT (pNFT) и взаимозаменяемые токены SPL, для целевого поиска активов.
fungiblenonFungibleregularNftcompressedNftall
number
Страница результатов, которую необходимо вернуть.
string
Критерий адреса полномочного аккаунта для фильтрации цифровых активов Solana по полномочиям программы,
полезный для поиска активов, контролируемых определенными протоколами или полномочными аккаунтами обновления.
number
Максимальное количество возвращаемых активов.
object
Параметры сортировки ответа.
string
Критерий сортировки активов.
createdrecent_actionupdatednone
string
Направление сортировки.
ascdesc
boolean
Фильтр по сжатым NFT Solana (cNFT), которые используют технологию сжатия состояния
для снижения затрат на хранение и улучшения масштабируемости.
boolean
Фильтр по активам Solana, которые допускают сжатие, но еще не были
сжаты в формат сжатия состояния.
number
Критерий делегата для поиска активов.
string
Критерий адреса кошелька создателя для поиска NFT Solana, созданных определенными художниками,
проектами или авторами, с целью отслеживания авторства и роялти.
boolean
Указывает, верифицирован ли создатель.
array
Массив группировки коллекций для фильтрации NFT Solana по принадлежности к коллекции
(например, [“collection”, “<collectionKey>”]) и поиска связанных активов.
string
Адрес дерева Меркла для фильтрации сжатых NFT (cNFT) по дереву их коллекции.
Этот параметр относится только к Helius и не входит в официальную спецификацию DAS.
number
Критерий предложения для поиска активов.
string
Критерий адреса выпуска предложения для поиска активов.
boolean
Указывает, заморожен ли актив.
boolean
Указывает, сожжен ли актив.
boolean
Фильтр активов с идентификатором агента (внешним плагином MPL Core AgentIdentity).
string
Фильтр по адресу выпуска токена агента в формате base58 из программы Agent Registry.
string
Фильтр по PDA подписанта актива в формате base58 (MPL Core).
string
Тип интерфейса стандарта токенов Solana для фильтрации определенных реализаций NFT,
включая программируемые NFT, устаревшие NFT, взаимозаменяемые токены, а также активы, коллекции и группы MPL Core (MIP-11).
V1_NFTV1_PRINTLEGACY_NFTV2_NFTFungibleAssetFungibleTokenCustomIdentityExecutableProgrammableNFTMplCoreAssetMplBubblegumV2MplCoreCollectionMplCoreGroup
string
Критерий типа получателя роялти.
number
Критерий получателя роялти.
number
Критерий суммы роялти.
number
Критерий модели владения.
string
Курсор для постраничного перехода назад.
string
Курсор для постраничного перехода вперед.
object
Расширенные параметры отображения для настройки ответа поиска активов Solana.
boolean
по умолчанию:"false"
Показывать неверифицированные коллекции, а не пропускать их.
boolean
по умолчанию:"false"
Показывать метаданные коллекции.
boolean
по умолчанию:"false"
Показывать общее количество соответствующих активов (запрос выполняется медленнее).
boolean
по умолчанию:"false"
Показывать нативный баланс владельца (SOL).
boolean
по умолчанию:"false"
Показывать активы с нулевым балансом.
Авторизации
Ваш ключ API Helius. Его можно бесплатно получить в панели управления.
Тело
application/json
Версия протокола JSON-RPC.
Доступные опции:
2.0 Идентификатор запроса.
Имя вызываемого метода JSON-RPC.
Доступные опции:
searchAssets Параметры метода searchAssets.
Show child attributes
Show child attributes
Ответ
Успешный ответ
Show child attributes
Show child attributes
Пример:
{
"total": 80,
"limit": 50,
"page": 1,
"items": [
{
"interface": "V1_NFT",
"id": "SomeNftMintKey12345",
"ownership": {
"owner": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
"ownership_model": "single"
},
"content": {
"json_uri": "https://example.com/metadata/12345.json"
}
}
]
}
Нативный баланс учетной записи кошелька Solana в лампортах и его стоимость в долларах США.
Show child attributes
Show child attributes
Была ли эта страница полезной?
⌘I
searchAssets
curl --request POST \
--url 'https://mainnet.helius-rpc.com/?api-key=' \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": "my-id",
"method": "searchAssets",
"params": {
"ownerAddress": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
"tokenType": "all",
"limit": 50
}
}
'import requests
url = "https://mainnet.helius-rpc.com/?api-key="
payload = {
"jsonrpc": "2.0",
"id": "my-id",
"method": "searchAssets",
"params": {
"ownerAddress": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
"tokenType": "all",
"limit": 50
}
}
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: 'my-id',
method: 'searchAssets',
params: {
ownerAddress: '86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY',
tokenType: 'all',
limit: 50
}
})
};
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' => 'my-id',
'method' => 'searchAssets',
'params' => [
'ownerAddress' => '86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY',
'tokenType' => 'all',
'limit' => 50
]
]),
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\": \"my-id\",\n \"method\": \"searchAssets\",\n \"params\": {\n \"ownerAddress\": \"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY\",\n \"tokenType\": \"all\",\n \"limit\": 50\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\": \"my-id\",\n \"method\": \"searchAssets\",\n \"params\": {\n \"ownerAddress\": \"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY\",\n \"tokenType\": \"all\",\n \"limit\": 50\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\": \"my-id\",\n \"method\": \"searchAssets\",\n \"params\": {\n \"ownerAddress\": \"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY\",\n \"tokenType\": \"all\",\n \"limit\": 50\n }\n}"
response = http.request(request)
puts response.read_body{
"assets": {
"total": 80,
"limit": 50,
"page": 1,
"items": [
{
"interface": "V1_NFT",
"id": "SomeNftMintKey12345",
"ownership": {
"owner": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
"ownership_model": "single"
},
"content": {
"json_uri": "https://example.com/metadata/12345.json"
}
}
]
},
"nativeBalance": {
"lamports": 123,
"price_per_sol": 123,
"total_price": 123
}
}{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Недопустимые параметры запроса."
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32001,
"message": "Ошибка аутентификации. Ключ API отсутствует или недействителен."
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32003,
"message": "У вас нет разрешения на доступ к этому ресурсу."
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32004,
"message": "Активы, соответствующие критериям поиска, не найдены."
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32029,
"message": "Превышено ограничение частоты запросов. Повторите попытку позже."
},
"id": "1"
}{
"jsonrpc": "2.0",
"error": {
"code": -32000,
"message": "На сервере произошла непредвиденная ошибка."
},
"id": "1"
}