Building an NFT marketplace on Solana is a different engineering job from building one on Ethereum. NFTs are accounts rather than entries in a contract, there are several NFT standards in active use, and fast, cheap transactions make features like escrowless listings and compressed NFTs practical. This guide covers the technical decisions.
For the business case, market positioning and feature planning, see the companion Solana-based NFT marketplace guide.
Solana's account model, briefly
On Solana, programs (smart contracts) are stateless; data lives in separate accounts that programs own. A traditional Solana NFT is an SPL token mint with a supply of one and zero decimals, a token account holding it in the owner's wallet, and a metadata account managed by Metaplex that stores name, symbol, URI, creators and royalty basis points. Every account must hold a small rent-exempt SOL deposit, which affects the cost of minting and of creating listing accounts.
The NFT standards you must support
| Standard | How it works | Marketplace implication |
|---|---|---|
| Metaplex Token Metadata (legacy NFTs) | SPL token mint plus metadata and master edition accounts | Most historical collections; well supported everywhere |
| Programmable NFTs (pNFTs) | Token Metadata NFTs whose transfers go through rule sets, introduced to enforce royalties | Transfers need extra accounts and rule-set checks |
| Metaplex Core | Single-account NFT design with plugins (royalties, freeze, attributes) | Cheaper mints; plugins can enforce royalties and custom behavior |
| Compressed NFTs (Bubblegum) | NFTs stored as leaves in a concurrent Merkle tree, with data in ledger history | Mint millions cheaply; trades require Merkle proofs from an indexer |
| Token-2022 based NFTs | Token Extensions program with metadata and transfer-hook extensions | Less common for NFTs; support selectively |
A serious marketplace supports at least legacy, pNFT, Core and compressed NFTs, because collectors hold all of them. The Metaplex developer documentation describes each program.
Listing models: escrow vs escrowless
Early Solana marketplaces moved the NFT into a program-owned escrow account when listed. That removed it from the user's wallet and made cross-listing on multiple marketplaces impossible. The current norm is escrowless listing: the seller delegates transfer authority to the marketplace program (or freezes the token with a delegate) while it stays in their wallet. When a buyer pays, the program uses the delegation to move the NFT and distribute SOL to the seller, creators and fee account in one transaction.
Things to get right:
- Revoke stale delegations and handle the case where the seller has moved the NFT (the listing must become invalid).
- Pay creator royalties correctly; for pNFTs and Core NFTs with royalty plugins, the protocol enforces rules and your transaction must comply.
- Support collection-wide bids (offers on any item in a collection), which Solana traders expect.
- Use versioned transactions and address lookup tables, since pNFT and compressed-NFT transfers include many accounts.
Programs and tooling
- Anchor is the standard Rust framework for writing Solana programs, with account validation and IDL generation for clients.
- Metaplex SDKs (Umi-based) for minting and interacting with Token Metadata, Core and Bubblegum.
- Clients: the Solana web3 libraries in TypeScript, with the wallet adapter supporting Phantom, Solflare, Backpack and others.
- Local testing: a local validator with cloned mainnet accounts for Metaplex programs, plus Bankrun or LiteSVM-style fast tests.
- Priority fees: during congestion, transactions need priority fees and compute-unit limits set sensibly to land reliably.
Indexing with the DAS API
You cannot efficiently list a wallet's NFTs by querying Solana accounts one by one, and compressed NFTs do not exist as accounts at all. The Digital Asset Standard (DAS) API, offered by major Solana RPC providers, returns assets by owner, collection or creator across all standards, and returns the Merkle proofs needed to transfer compressed NFTs. Pair it with your own indexer for marketplace events (listings, sales, bids) using Geyser plugins or webhook services from your RPC provider. The NFT API guide explains how to compare providers.
Build steps
- Decide on standards to support and on fee and royalty policy.
- Write the marketplace program in Anchor: list, delist, buy, bid, accept bid, with escrowless delegation.
- Test on devnet and a local validator with cloned Metaplex programs; fuzz account-validation logic.
- Build the indexer and API over DAS plus your program's events.
- Build the frontend: wallet adapter, collection pages, sweeping, bids, and activity feeds.
- Audit the program; Solana-specific issues include missing signer or owner checks and account substitution.
Cost and timeline
As a reasoned estimate, an MVP marketplace with escrowless listings for legacy, pNFT and Core NFTs, DAS-based indexing and a polished frontend takes four to six engineers (at least one experienced Rust/Anchor developer) three to five months. Compressed NFT trading and collection bids add complexity. If you plan to mint as well, the minting platform guide covers Candy Machine-style launches and their alternatives, and the audit guide covers how to scope a review.
Frequently asked questions
Should new Solana collections use Metaplex Core or Token Metadata?
Core is cheaper and simpler for most new collections and supports royalty enforcement through plugins. Token Metadata remains necessary for compatibility with older collections and some tooling.
Can compressed NFTs be traded on a marketplace?
Yes. The marketplace must fetch a current Merkle proof from a DAS provider and pass it in the transfer transaction. If the tree changes in between, the transaction must retry with a fresh proof.
Are royalties enforced on Solana?
For pNFTs and Core NFTs with royalty rules, yes, at the protocol level. For legacy NFTs, royalties depend on marketplace policy.