List NFTs
List NFTs owned by a user
Retrieves a list of NFTs owned by a specified PLYR ID, with optional filtering by NFT contract address and game ID.
Endpoint: /game/nft/list
Method: GET
{
plyrId: string; // The PLYR ID of the user
chainId: string; // Chain ID (required)
nft?: string; // Optional NFT contract address to filter by
gameId?: string; // Optional game ID
}
{
tokens: [
{
contract: string; // NFT contract address
tokenId: string; // Token ID
owner: string; // Owner address
uri: string; // Metadata URI
metadata?: { // Optional parsed metadata if available
name: string;
description: string;
image: string;
attributes: Array<{
trait_type: string;
value: string | number;
}>;
[key: string]: any; // Other metadata fields
}
}
]
}
{
error: string;
details?: any;
}
Example Usage
// Setup request parameters
const timestamp = Date.now().toString();
const plyrId = 'player123';
const chainId = '43114'; // Avalanche C-Chain
const nftAddress = '0x1234567890123456789012345678901234567890'; // Optional
const gameId = 'game456'; // Optional
// For GET requests with no body, pass null as the body for HMAC
const hmac = generateHmacSignature(timestamp, null, secretKey);
// Make the API request with optional filters
let url = apiEndpoint + `/game/nft/list?plyrId=${plyrId}&chainId=${chainId}&gameId=${gameId}&nft=${nftAddress}`;
const response = await axios.get(url, {
headers: {
apikey: apiKey,
signature: hmac,
timestamp: timestamp
}
});
// Process the response
console.log(`User has ${response.data.tokens.length} NFTs`);
response.data.tokens.forEach((token) => {
console.log(`NFT Contract: ${token.contract}`);
console.log(`Token ID: ${token.tokenId}`);
if (token.metadata) {
console.log(`Name: ${token.metadata.name}`);
console.log(`Description: ${token.metadata.description}`);
console.log(`Image: ${token.metadata.image}`);
}
console.log('---');
});
Last updated