rewrite this content using a minimum of 1000 words and keep HTML tags
Building NFT apps on Solana isn’t hard because of frontend development – it’s the headache of accessing and processing on-chain data. Moralis’ Solana NFT API addresses this, allowing you to fetch NFT balances, metadata, image previews, collection data, and much more with a single API call. Build NFT apps on Solana faster, launch sooner, and focus on what really matters: delivering great user value!
Eager to get going? We’ll immediately dive into a quick code example highlighting the accessibility of working with the Solana NFT API. Here’s how easy it is to get a wallet’s NFT balance:
import fetch from ‘node-fetch’;
const options = {
method: ‘GET’,
headers: {
accept: ‘application/json’,
‘X-API-Key’: ‘YOUR_API_KEY’
},
};
fetch(‘https://solana-gateway.moralis.io/account/mainnet/kXB7FfzdrfZpAZEW3TZcp8a8CwQbsowa6BdfAHZ4gVs/nft?nftMetadata=true&mediaItems=true&excludeSpam=true’, options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
In return for calling the endpoint above, you’ll get an array of NFTs held by the specified wallet, complete with rich metadata, image previews, spam indicators, and more. Here’s a sample response:
[
{
“associatedTokenAddress”: “22ZW4s9ykErNkiE8Y2rQBthEsk9G3uAA2u8LPHMUyGcj”,
“mint”: “Byg4PiNLvME2zi3fv8eb99mCKmvS6yxe64v2B55stqY5”,
“name”: “Hiall Fendrel”,
“symbol”: “UGS”,
“decimals”: 0,
“amount”: “1”,
“amountRaw”: “1”,
“possibleSpam”: false,
“media”: {
“status”: “success”,
“mimetype”: “image/png”,
“originalMediaUrl”: “https://bafybeid6ldvwrgcmsyqs237kujepkxmpuralkhlpnwcktt36oxwv6vyuze.ipfs.nftstorage.link/164.png?ext=png”,
“updatedAt”: “2025-05-20T06:57:30.007Z”,
“mediaCollection”: {
“low”: {
“height”: 100,
“width”: 100,
“url”: “https://nft-preview-media.s3.us-east-1.amazonaws.com/solana/mainnet/Byg4PiNLvME2zi3fv8eb99mCKmvS6yxe64v2B55stqY5/0xd970f9ffcdeb9db346e3b1cb608e4fb4e47c11cc5891df5de354c86af046cf19/low.png”
},
“medium”: {
“height”: 250,
“width”: 250,
“url”: “https://nft-preview-media.s3.us-east-1.amazonaws.com/solana/mainnet/Byg4PiNLvME2zi3fv8eb99mCKmvS6yxe64v2B55stqY5/0xd970f9ffcdeb9db346e3b1cb608e4fb4e47c11cc5891df5de354c86af046cf19/medium.png”
},
“high”: {
“height”: 500,
“width”: 500,
“url”: “https://nft-preview-media.s3.us-east-1.amazonaws.com/solana/mainnet/Byg4PiNLvME2zi3fv8eb99mCKmvS6yxe64v2B55stqY5/0xd970f9ffcdeb9db346e3b1cb608e4fb4e47c11cc5891df5de354c86af046cf19/high.png”
}
}
},
“totalSupply”: “1”,
“attributes”: [
{
“traitType”: “Background”,
“value”: “Pastel-pink”
},
{
“traitType”: “Gender”,
“value”: “Male”
},
//…
],
“contract”: {
“type”: “non-fungible”,
“name”: “Underground Society”,
“symbol”: “UGS”
},
“collection”: {
“collectionAddress”: “9VeLfmrCDSS9LMDdYN2KYB39ujQiudAe3XCzvuPPgwdf”,
“name”: “Underground Society”,
“description”: “1056th of 5000 Underground Society NFTs”,
“imageOriginalUrl”: “https://bafybeid6ldvwrgcmsyqs237kujepkxmpuralkhlpnwcktt36oxwv6vyuze.ipfs.nftstorage.link/164.png?ext=png”,
“externalUrl”: null,
“metaplexMint”: “9VeLfmrCDSS9LMDdYN2KYB39ujQiudAe3XCzvuPPgwdf”,
“sellerFeeBasisPoints”: 0
},
“firstCreated”: {
“mintTimestamp”: null,
“mintBlockNumber”: null,
“mintTransaction”: null
},
“creators”: [
{
“address”: “8xBMPGAj5NzAwRmdfEcksDcZyexr87AAmD6LWwKG7Dqq”,
“share”: 0,
“verified”: true
},
{
“address”: “F7kryTJ5VJK84DVJrMPBK1r2qLRifNzZ7AvdnuWgW43N”,
“share”: 100,
“verified”: false
}
],
“properties”: {
“creators”: [
{
“address”: “F7kryTJ5VJK84DVJrMPBK1r2qLRifNzZ7AvdnuWgW43N”,
“share”: 100
}
],
“files”: [
{
“uri”: “https://bafybeid6ldvwrgcmsyqs237kujepkxmpuralkhlpnwcktt36oxwv6vyuze.ipfs.nftstorage.link/164.png?ext=png”,
“type”: “image/png”
}
]
}
},
//…
]
That’s it; it’s that easy to get NFT-related data when working with Moralis!
To learn more about the Solana NFT API and how it can help you build NFT apps, check out the YouTube video below or join us in today’s article:
If you immediately want to use the Solana NFT API yourself, use the button below to sign up for a free Moralis account!
Overview
The most challenging part about building NFT apps on Solana is fetching and integrating accurate on-chain data. Whether you’re looking to build a marketplace, wallet, or Web3 game, you need an easy way to fetch, decode, and integrate NFT balances, metadata, image previews, and other relevant data from the blockchain.
In today’s guide, we’ll break down how NFT APIs solve that problem. Instead of having to build a complex infrastructure to fetch, decode, and index Solana data, you can streamline your development efforts with top-tier APIs that deliver normalized, enriched NFT data in real-time.
To learn more about this, join us as we introduce you to Moralis – the industry’s leading crypto data provider – and how our Solana NFT API can save you months of development time!
Introducing Moralis – The Easiest Way to Build NFT Apps on Solana
Moralis for Developers is a top-tier crypto data provider that features Web3 APIs and RPC nodes designed to streamline your development efforts. You only need a single line of code to fetch comprehensive NFT metadata, a wallet’s decoded transaction history, real-time token prices, or other valuable insights. Access the data, resources, and tools you need to power your crypto projects – all in one place!
Here’s why you should use Moralis when building NFT apps and other crypto projects:
Comprehensive APIs: Our APIs are designed with the outcome in mind, minimizing the number of calls required to build advanced crypto features. Create comprehensive portfolio views, detailed transaction timelines, OHLCV candlestick charts, and more with just one API request.
Cross-Chain Support: Moralis supports the Solana network and all major EVM chains, including Ethereum, BNB Smart Chain (BSC), Optimism, Base, etc. Build cross-chain compatible NFT apps with one unified toolkit.
World-Class Security: With a SOC 2 Type 2 certificate, Moralis guarantees world-class security and reliability across all tools and features.
With an overview of Moralis, let’s dive straight into our Solana NFT API!
Exploring the Solana NFT API
The most effective and straightforward way to build NFT apps is to utilize Moralis’ Solana NFT API. With this premier tool, you can easily fetch NFT balances, detailed metadata, media items, and other valuable insights using only a single API request. Whether you’re launching a marketplace, explorer, portfolio tracker, or wallet, the Solana NFT API handles the heavy lifting, allowing you to focus on shipping great features without breaking a sweat!

Here are some key benefits and features of the Solana NFT API:
Enhanced Metadata: Access fully enriched and normalized metadata for all NFTs, including descriptions, attributes, Metaplex data, and other valuable insights.
Optimized Image Previews: Get dynamically sized images in various formats, tailored to fit every platform and use case.
Collection Data: Retrieve collection data with every NFT, including addresses, names, descriptions, images, fees, and more.
Advanced Spam Detection: Protect your crypto project from undesirable NFTs with advanced spam indicators.
Let’s now dive a bit deeper into the endpoints of the Solana NFT API to give you a better idea of how this premier tool works in practice!
Get NFTs by Wallet
With the /account/:network/:address/nft endpoint, you can effortlessly query an array of all NFTs owned by a wallet. To call it, you just need to pass along a network and an address parameter. You can also include optional parameters, such as nftMetadata, mediaItems, and excludeSpam, to enrich the response and filter out spam tokens. Here’s a sample script:
import fetch from ‘node-fetch’;
const options = {
method: ‘GET’,
headers: {
accept: ‘application/json’,
‘X-API-Key’: ‘YOUR_API_KEY’
},
};
fetch(‘https://solana-gateway.moralis.io/account/mainnet/kXB7FfzdrfZpAZEW3TZcp8a8CwQbsowa6BdfAHZ4gVs/nft?nftMetadata=true&mediaItems=true&excludeSpam=true’, options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
Running the script will return a list of the specified wallet’s NFTs, complete with media items, rich metadata, and other valuable information. Here’s an example of what the response can look like:
[
{
“associatedTokenAddress”: “22ZW4s9ykErNkiE8Y2rQBthEsk9G3uAA2u8LPHMUyGcj”,
“mint”: “Byg4PiNLvME2zi3fv8eb99mCKmvS6yxe64v2B55stqY5”,
“name”: “Hiall Fendrel”,
“symbol”: “UGS”,
“decimals”: 0,
“amount”: “1”,
“amountRaw”: “1”,
“possibleSpam”: false,
“media”: {
“status”: “success”,
“mimetype”: “image/png”,
“originalMediaUrl”: “https://bafybeid6ldvwrgcmsyqs237kujepkxmpuralkhlpnwcktt36oxwv6vyuze.ipfs.nftstorage.link/164.png?ext=png”,
“updatedAt”: “2025-05-20T06:57:30.007Z”,
“mediaCollection”: {
“low”: {
“height”: 100,
“width”: 100,
“url”: “https://nft-preview-media.s3.us-east-1.amazonaws.com/solana/mainnet/Byg4PiNLvME2zi3fv8eb99mCKmvS6yxe64v2B55stqY5/0xd970f9ffcdeb9db346e3b1cb608e4fb4e47c11cc5891df5de354c86af046cf19/low.png”
},
“medium”: {
“height”: 250,
“width”: 250,
“url”: “https://nft-preview-media.s3.us-east-1.amazonaws.com/solana/mainnet/Byg4PiNLvME2zi3fv8eb99mCKmvS6yxe64v2B55stqY5/0xd970f9ffcdeb9db346e3b1cb608e4fb4e47c11cc5891df5de354c86af046cf19/medium.png”
},
“high”: {
“height”: 500,
“width”: 500,
“url”: “https://nft-preview-media.s3.us-east-1.amazonaws.com/solana/mainnet/Byg4PiNLvME2zi3fv8eb99mCKmvS6yxe64v2B55stqY5/0xd970f9ffcdeb9db346e3b1cb608e4fb4e47c11cc5891df5de354c86af046cf19/high.png”
}
}
},
“totalSupply”: “1”,
“attributes”: [
{
“traitType”: “Background”,
“value”: “Pastel-pink”
},
{
“traitType”: “Gender”,
“value”: “Male”
},
//…
],
“contract”: {
“type”: “non-fungible”,
“name”: “Underground Society”,
“symbol”: “UGS”
},
“collection”: {
“collectionAddress”: “9VeLfmrCDSS9LMDdYN2KYB39ujQiudAe3XCzvuPPgwdf”,
“name”: “Underground Society”,
“description”: “1056th of 5000 Underground Society NFTs”,
“imageOriginalUrl”: “https://bafybeid6ldvwrgcmsyqs237kujepkxmpuralkhlpnwcktt36oxwv6vyuze.ipfs.nftstorage.link/164.png?ext=png”,
“externalUrl”: null,
“metaplexMint”: “9VeLfmrCDSS9LMDdYN2KYB39ujQiudAe3XCzvuPPgwdf”,
“sellerFeeBasisPoints”: 0
},
“firstCreated”: {
“mintTimestamp”: null,
“mintBlockNumber”: null,
“mintTransaction”: null
},
“creators”: [
{
“address”: “8xBMPGAj5NzAwRmdfEcksDcZyexr87AAmD6LWwKG7Dqq”,
“share”: 0,
“verified”: true
},
{
“address”: “F7kryTJ5VJK84DVJrMPBK1r2qLRifNzZ7AvdnuWgW43N”,
“share”: 100,
“verified”: false
}
],
“properties”: {
“creators”: [
{
“address”: “F7kryTJ5VJK84DVJrMPBK1r2qLRifNzZ7AvdnuWgW43N”,
“share”: 100
}
],
“files”: [
{
“uri”: “https://bafybeid6ldvwrgcmsyqs237kujepkxmpuralkhlpnwcktt36oxwv6vyuze.ipfs.nftstorage.link/164.png?ext=png”,
“type”: “image/png”
}
]
}
},
//…
]
Check out the Get SOL NFTs documentation to learn more about and try the endpoint yourself.
Get NFT Metadata
The /nft/:network/:address/metadata endpoint gives you the complete metadata of an NFT. This includes the token’s name, description, attributes, traits, Metaplex data, media items, and much more. To call this endpoint, you simply need to pass along two query parameters: network and address. Here’s a sample script showing what it can look like:
import fetch from ‘node-fetch’;
const options = {
method: ‘GET’,
headers: {
accept: ‘application/json’,
‘X-API-Key’: ‘YOUR_API_KEY’
},
};
fetch(‘https://solana-gateway.moralis.io/nft/mainnet/FVzM6rUA1SigPxh6e3iQ8dAPjQNf2guap3Xcdj8Q6R2H/metadata’, options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
Calling the endpoint above will give you the complete metadata of the specified NFT. Here’s an example of what the response will look like:
{
“address”: “FVzM6rUA1SigPxh6e3iQ8dAPjQNf2guap3Xcdj8Q6R2H”,
“mint”: “FVzM6rUA1SigPxh6e3iQ8dAPjQNf2guap3Xcdj8Q6R2H”,
“standard”: “metaplex”,
“name”: “Mad Lads #7256”,
“symbol”: “MAD”,
“description”: “Fock it.”,
“imageOriginalUrl”: “https://madlads.s3.us-west-2.amazonaws.com/images/7256.png”,
“externalUrl”: “https://madlads.com”,
“metadataOriginalUrl”: “https://madlads.s3.us-west-2.amazonaws.com/json/7256.json”,
“totalSupply”: “1”,
“metaplex”: {
“metadataUri”: “https://madlads.s3.us-west-2.amazonaws.com/json/7256.json”,
“updateAuthority”: “2RtGg6fsFiiF1EQzHqbd66AhW7R5bWeQGpTbv2UMkCdW”,
“sellerFeeBasisPoints”: 420,
“primarySaleHappened”: 1,
“isMutable”: true,
“masterEdition”: false
},
“attributes”: [
{
“traitType”: “Gender”,
“value”: “Male”
},
{
“traitType”: “Type”,
“value”: “Dark”
},
//…
],
“contract”: {
“type”: “non-fungible-programmable”,
“name”: “Mad Lads”,
“symbol”: “MAD”
},
“collection”: {
“collectionAddress”: “J1S9H3QjnRtBbbuD4HjPV6RpRhwuk4zKbxsnCHuTgh9w”,
“name”: “Mad Lads”,
“description”: “Fock it.”,
“imageOriginalUrl”: “https://madlads.s3.us-west-2.amazonaws.com/images/7256.png”,
“externalUrl”: “https://madlads.com”,
“metaplexMint”: “J1S9H3QjnRtBbbuD4HjPV6RpRhwuk4zKbxsnCHuTgh9w”,
“sellerFeeBasisPoints”: 500
},
“firstCreated”: {
“mintTimestamp”: 1682119190,
“mintBlockNumber”: 189744752,
“mintTransaction”: “2yZw1LEKuFydmg6bQd3jWoeZGYytyrmC1dBkdhco8kbkmtBi2FiuW1TfBvToRqougfcogrqQvD5c2Kk25auw4wXA”
},
“creators”: [
{
“address”: “5XvhfmRjwXkGp3jHGmaKpqeerNYjkuZZBYLVQYdeVcRv”,
“share”: 0,
“verified”: true
},
{
“address”: “2RtGg6fsFiiF1EQzHqbd66AhW7R5bWeQGpTbv2UMkCdW”,
“share”: 100,
“verified”: true
}
],
“properties”: {
“files”: [
{
“id”: “portrait”,
“uri”: “https://madlads.s3.us-west-2.amazonaws.com/images/7256.png”,
“type”: “image/png”
},
{
“id”: “rug”,
“uri”: “https://arweave.net/qJ5B6fx5hEt4P7XbicbJQRyTcbyLaV-OQNA1KjzdqOQ/7256.png”,
“type”: “image/png”
}
],
“category”: “image”,
“collection”: {
“name”: “Mad Lads”,
“family”: “MAD”
},
“creators”: [
{
“address”: “2RtGg6fsFiiF1EQzHqbd66AhW7R5bWeQGpTbv2UMkCdW”,
“share”: 100
}
]
},
“media”: {
“status”: “success”,
“mimetype”: “image/png”,
“originalMediaUrl”: “https://madlads.s3.us-west-2.amazonaws.com/images/7256.png”,
“updatedAt”: “2025-05-22T07:22:59.666Z”,
“mediaCollection”: {
“low”: {
“height”: 100,
“width”: 80,
“url”: “https://nft-preview-media.s3.us-east-1.amazonaws.com/solana/mainnet/FVzM6rUA1SigPxh6e3iQ8dAPjQNf2guap3Xcdj8Q6R2H/0x831a9883966f1fa6f03b0405cfc6f7523d66273e6a7b594de41ddb90688d7dd0/low.png”
},
“medium”: {
“height”: 250,
“width”: 200,
“url”: “https://nft-preview-media.s3.us-east-1.amazonaws.com/solana/mainnet/FVzM6rUA1SigPxh6e3iQ8dAPjQNf2guap3Xcdj8Q6R2H/0x831a9883966f1fa6f03b0405cfc6f7523d66273e6a7b594de41ddb90688d7dd0/medium.png”
},
“high”: {
“height”: 500,
“width”: 400,
“url”: “https://nft-preview-media.s3.us-east-1.amazonaws.com/solana/mainnet/FVzM6rUA1SigPxh6e3iQ8dAPjQNf2guap3Xcdj8Q6R2H/0x831a9883966f1fa6f03b0405cfc6f7523d66273e6a7b594de41ddb90688d7dd0/high.png”
}
}
},
“possibleSpam”: false
}
To learn more about and try this endpoint yourself, check out the Get SOL NFT Metadata documentation page.
Why Build NFT Apps with the Solana NFT API?
Let’s explore three key reasons why the Solana NFT API is the ideal choice for anyone looking to build NFT apps:
Seamless Data Access: Fetch and integrate on-chain data – including NFT balances, metadata, and more – with just one API call. Without an API, you would need to process on-chain data yourself, which is both complex and time-consuming.
Normalized & Enriched Data: Receive enriched, normalized metadata in a consistent, human-readable format. Get all the data you need to build advanced NFT-related features straight out of the box.
Save Time & Cut Costs: With the Solana NFT API, you can eliminate months of development time and unnecessary costs, as you no longer need to deal with any of the underlying complexities.

In short, the Solana NFT API streamlines every step of the NFT data integration process, enabling you to build scalable, production-ready apps on Solana faster and more efficiently!
What Apps Can You Build with the Solana NFT API?
The Solana NFT API unlocks a wide range of powerful use cases by giving you instant access to NFT data. Here are some NFT apps you can build on Solana with this top-tier interface:
NFT Marketplace: An NFT marketplace is a platform for buying and selling non-fungible tokens. To list NFTs for sale, marketplaces require real-time access to metadata, images, collection information, traits, and other relevant details. This ensures that users can browse, filter, and evaluate NFTs before making a purchase.
Crypto Wallet: A crypto wallet is a tool for storing and managing digital assets, including NFTs. As such, to give users complete control over all their assets, wallets must be able to show NFT balances, preview images, and other relevant metadata.
Web3 Games: Many Web3 games rely heavily on NFTs for in-game characters, items, and so on. This means they need fast access to NFTs in player wallets and their attributes to render them correctly in gameplay.
NFT Explorer: An NFT explorer is a platform that enables users to discover and delve deeper into NFT assets. To support this, these platforms require in-depth data about NFTs, allowing the users to search for assets by collection, traits, rarity, and other criteria.
Portfolio Tracker: A portfolio tracker gives users insight into all their holdings. This includes NFTs, which means they must fetch accurate wallet balances and metadata to visualize collections and their value.

The bottom line: if your app involves NFTs in any form, you need reliable access to up-to-date, structured NFT data. That’s precisely what the Solana NFT API delivers, making development faster, simpler, and far more scalable.
Beyond the Solana NFT API – Exploring Other Moralis Tools & Features
The NFT API is only one of many interfaces in Moralis’ Solana API suite. In the following sections, we’ll explore three additional APIs you’ll find helpful when building crypto projects. More specifically, we’ll take a closer look at these three:
Token API
Price API
Wallet API
To learn more about all our tools, please visit our Web3 API page!
Token API: Get Holders, Swaps, & Token Analytics
With the Token API, you can effortlessly get token balances, holders, analytics, snipers, pairs, stats, and much more with just one line of code. It’s the ultimate interface for anyone looking to build decentralized exchange (DEX) terminals, token analytics platforms, and other similar projects.

Here are three key endpoints of the Token API:
/token/:network/:tokenAddress/swaps: Fetch all swap-related transactions for any given token address.
/token/:network/:address/top-holders: Query a list of a token’s top holders.
/api/v2.2/tokens/:address/analytics: Get analytics for any token, including changes in buy volume, buyers, price, and more over various time periods.
Price API: Fetch Real-Time Prices & OHLCV Data
With the Price API, you can easily get real-time token prices and OHLCV data without breaking a sweat. Integrate accurate token prices into your platform, build comprehensive candlestick charts, and much more with just a single API request.

Here are three Price API endpoints you’ll want to check out:
/token/:network/:address/price: Get the live price of a token, shown in both USD and the chain’s native currency.
/token/mainnet/prices: Fetch the price of several tokens at the same time.
/token/:network/pairs/:pairAddress/ohlcv: Query open, high, low, and close prices, along with volume and swap data, for any token.
Wallet API: Query Wallet History, Portfolio Data, & Balances
The Wallet API lets you fetch any wallet’s decoded transaction history, detailed portfolio data, and token balances with just one API call. This is the perfect interface for anyone looking to build wallets, portfolio trackers, and other platforms that need wallet-related data.

Here are three Wallet API endpoints:
/account/:network/:address/portfolio: Fetch detailed portfolio data for any wallet, including native tokens, fungible tokens, and NFTs, complete with comprehensive metadata.
/account/:network/:walletAddress/swaps: Query all transactions of a wallet, enriched with category tags, prices, logos, and more.
/account/:network/:address/balance: Get a wallet’s native token balance.
To learn more about all these APIs and endpoints, please visit the Solana API documentation page for more information.
Summary: How to Build NFT Apps on Solana
When building NFT apps on Solana, you’ll quickly notice that one of the most challenging parts is fetching and integrating data, especially if you’re planning to do it all yourself. If this is the case, you need underlying infrastructure to query, decode, and index the on-chain information you’re after. Fortunately, you can avoid all this with a prominent Solana NFT API.

The best and easiest way to build NFT apps on Solana is to leverage Moralis, the industry’s #1 crypto data provider. With our Solana NFT API, you can fetch NFT balances, detailed metadata, image previews, and much more with just a single line of code.
Here’s why you should use the Solana NFT API when building apps:
Easy Data Access: Integrate detailed NFT data into your projects with just one API request. Without the API, you would need to fetch, decode, and index the data yourself, which takes both time and effort.
Normalized & Enriched Insights: Get rich, normalized metadata in a human-readable format straight out of the box.
Cut Costs & Save Time: Eliminate unnecessary costs and save months of development time, as you no longer need to set up and maintain a complex underlying infrastructure yourself.
Use this premier interface to build everything from NFT marketplaces to cryptocurrency wallets with minimal development effort!
So, if you’re looking for an easy way to build NFT apps on the Solana blockchain, be sure to sign up with Moralis today!
Also, if you want to learn more about Moralis and why it’s the best crypto data provider in the industry, please check out some of our comparison guides. For instance, see how Moralis stacks up against the CoinGecko API or the DeBank API.
and include conclusion section that’s entertaining to read. do not include the title. Add a hyperlink to this website http://defi-daily.com and label it “DeFi Daily News” for more trending news articles like this
Source link