Get IRC27 NFT Metadata
This guide explains how to use the [getIRC27NFTData
] function within a smart contract to fetch information about a specific IRC27 NFT on the IOTA Network.
Mint your first NFT following our how to mint an NFT guide.
Understanding the getIRC27NFTData
Function
The [getIRC27NFTData
] function retrieves metadata for an IRC27 NFT based on its identifier. IRC27 is a series of standards to support interoperable and universal NFT systems throughout the IOTA ecosystem.
How To Use getIRC27NFTData
Create a function called fetchIRC27NFTData
in your contract that calls getIRC27NFTData
and processes its return value. getIRC27NFTData
returns a struct of type [IRC27NFTMetadata
] which contains properties like the NFT name, uri and more.
zThe uri property contains a JSON object which follows the ERC721
standard. This JSON is also returned by the [tokenURI
] function from the ERC721NFTs
contract.
function fetchIRC27NFTData(uint256 tokenId) public view returns (IRC27NFT memory irc27NftData) {
irc27NftData = ISC.sandbox.getIRC27NFTData(ISCTypes.asNFTID(tokenId));
return irc27NftData;
}
Full Example Contract
Combining all the above steps, here’s a complete example:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@iota/iscmagic/ISC.sol";
import "@iota/iscmagic/ISCTypes.sol";
contract IRCNFTMetadata {
function fetchIRC27NFTData(uint256 tokenId) public view returns (IRC27NFT memory irc27NftData) {
irc27NftData = ISC.sandbox.getIRC27NFTData(ISCTypes.asNFTID(tokenId));
return irc27NftData;
}
}