We're now supporting Polygon zkEVM!
Learn more here.
The API credit value for this method is 4 . To learn more about API credits and each method's value, visit the API Credits page.
Please note that this RPC method requires the Token and NFT API v2 bundle add-on enabled on your QuickNode endpoint.
Parameters:
object - A custom object with the following fields:
wallet - string - The wallet address to check for NFTs
contracts -
string - (optional) An array of strings with the list of NFT contract addresses you'd like to get ownership data from. The contract addresses may be optionally suffixed with :tokenId
to specify a specific NFT id to filter on. For example, 0x2106c...7aeaa:1234
will filter Loopy Donuts on the NFT token with id
1234
only. You may include up to 20 contract addresses per request
page - integer - (optional) The page number you would like to get returned. The page numbers start at 1 and end at totalPages. If omitted, defaults to the first page (page 1). If the page number requested is less than 1 or higher than totalPages, an empty assets array will be returned
perPage - integer - (optional) The maximum amount of NFT assets to return on each page. You can request up to 40 items per page. If omitted, this will default to 20 items per page
Returns:
owner - The wallet address we checked for NFTs
assets - An array of objects representing NFTs with the following shape:
name - The name of this specific NFT
collectionTokenId - The token id of this NFT in its collection
collectionName - The name of this NFT's collection
traits - The traits refer to the different attributes of NFTs
value - The specific value associated with each trait of the NFT which can be present in the form of text, numbers, or even images, depending on the type of NFT
trait_type - The type of trait associated with each NFT. It includes attributes like the color, rarity, or any other defining characteristic that sets the NFT apart from others in its collection
imageUrl - The URL where the image for this NFT can be seen
collectionAddress - The contract address that this NFT lives in
chain - It states on which chain this aggregation happened on
network - It states on which network this aggregation happened on
description - The description of the asset
totalItems - The total number of results
totalPages - The total number of results pages available
pageNumber - The page number of results that were returned with this response
Code Examples:
curl http://sample-endpoint-name.network.quiknode.pro/token-goes-here/ \ -X POST \ -H "Content-Type: application/json" \ --data '{ "id":67, "jsonrpc":"2.0", "method":"qn_fetchNFTs", "params": [{ "wallet": "0x91b51c173a4bdaa1a60e234fc3f705a16d228740", "omitFields": [ "traits" ], "page": 1, "perPage": 10, "contracts": [ "0x2106c00ac7da0a3430ae667879139e832307aeaa", "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D" ] }] }'
require 'ethereum.rb' client = Ethereum::HttpClient.new('http://sample-endpoint-name.network.quiknode.pro/token-goes-here/') response = client.send_command('qn_fetchNFTs', [{ wallet: "0x91b51c173a4bdaa1a60e234fc3f705a16d228740", omitFields: [ "provenance", "traits" ], page: 1, perPage: 10, contracts: [ "0x2106c00ac7da0a3430ae667879139e832307aeaa", "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D" ] }]) puts response["result"]
from web3 import Web3, HTTPProvider w3 = Web3(HTTPProvider('http://sample-endpoint-name.network.quiknode.pro/token-goes-here/')) resp = w3.provider.make_request('qn_fetchNFTs', [{ "wallet": "0x91b51c173a4bdaa1a60e234fc3f705a16d228740", "omitFields": [ "traits" ], "page": 1, "perPage": 10, "contracts": [ "0x2106c00ac7da0a3430ae667879139e832307aeaa", "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D" ] }]) print(resp)
require "uri" require "json" require "net/http" url = URI("http://sample-endpoint-name.network.quiknode.pro/token-goes-here/") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) request["Content-Type"] = "application/json" request.body = JSON.dump({ "id": 67, "jsonrpc": "2.0", "method": "qn_fetchNFTs", "params": [{ "wallet": "0x91b51c173a4bdaa1a60e234fc3f705a16d228740", "omitFields": [ "traits" ], "page": 1, "perPage": 10, "contracts": [ "0x2106c00ac7da0a3430ae667879139e832307aeaa", "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D" ] }] }) response = https.request(request) puts response.read_body
import requests import json url = "http://sample-endpoint-name.network.quiknode.pro/token-goes-here/" payload = json.dumps({ "id": 67, "jsonrpc": "2.0", "method": "qn_fetchNFTs", "params": [{ "wallet": "0x91b51c173a4bdaa1a60e234fc3f705a16d228740", "omitFields": [ "traits" ], "page": 1, "perPage": 10, "contracts": [ "0x2106c00ac7da0a3430ae667879139e832307aeaa", "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D" ] }] }) headers = { 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text)
const ethers = require("ethers"); (async () => { const provider = new ethers.providers.JsonRpcProvider("http://sample-endpoint-name.network.quiknode.pro/token-goes-here/"); const heads = await provider.send("qn_fetchNFTs", [ { wallet: "0x91b51c173a4bdaa1a60e234fc3f705a16d228740", omitFields: ["traits"], page: 1, perPage: 10, contracts: [ "0x2106c00ac7da0a3430ae667879139e832307aeaa", "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D", ], }, ]); console.log(heads); })();
var myHeaders = new Headers(); myHeaders.append("Content-Type", "application/json"); var raw = JSON.stringify({ "id": 67, "jsonrpc": "2.0", "method": "qn_fetchNFTs", "params": [{ "wallet": "0x91b51c173a4bdaa1a60e234fc3f705a16d228740", "omitFields": [ "traits" ], "page": 1, "perPage": 10, "contracts": [ "0x2106c00ac7da0a3430ae667879139e832307aeaa", "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D" ] }] }); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("http://sample-endpoint-name.network.quiknode.pro/token-goes-here/", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error));