What Is the Metaplex DAS API?
The Metaplex Digital Asset Standard (DAS) API is a unified read interface for digital assets on Solana. One set of JSON-RPC methods returns indexed, normalized data for standard NFTs, compressed NFTs, fungible tokens, MPL Core assets, and Token 2022 assets. You do not have to query a different program or parse a different account layout for each token standard.
DAS is an open specification maintained by Metaplex that ensures fast and reliable access to asset metadata and state. Because responses share the same shape regardless of which standard an asset uses, a wallet, marketplace, or portfolio tracker can render everything a user owns from a single call.
The API covers four areas:
- Fetch specific assets: Look up one asset or a batch of assets by ID.
- Find assets by wallet, creator, or collection: Query assets by owner, authority, creator, group, or arbitrary search criteria.
- Verify compressed NFTs: Retrieve the Merkle proofs required to transfer or burn a compressed NFT.
- Read token accounts, editions, and history: Inspect balances, printed editions, and an asset's transaction signatures.
Why Use DAS Instead of Standard Solana RPC?
Reading assets with standard Solana RPC methods takes a chain of calls: scan program accounts, derive and fetch the metadata account behind each mint, then fetch the offchain JSON that metadata points to. You also have to know the account layout of every standard you support, since each one comes back in a different shape and the results have to be merged by hand.
DAS collapses that work into one request. A single getAssetsByOwner call returns fungible tokens, NFTs, and compressed assets for a wallet as one merged, normalized list, with the offchain metadata already indexed and attached.
Compressed NFTs require DAS. Their data never lands in an account. Only a Merkle root goes onchain and the leaf data sits in an indexer, so standard RPC methods have nothing to read. DAS is how you fetch a compressed NFT's metadata and how you get the proof needed to transfer or burn it.
Supported Asset Types
- Fungible Tokens: Interchangeable SPL tokens governed by a single mint account that defines total supply and decimal precision, such as stablecoins, liquid staking tokens, and memecoins.
- Standard NFTs: Assets created with the Metaplex Token Metadata program: a mint with supply locked to 1 by a master edition account, plus a metadata account holding the name, symbol, creators, royalty basis points, and a URI pointing to offchain JSON.
- Compressed NFTs: NFTs minted with the Metaplex Bubblegum program that have no mint or token account of their own. Their data is hashed into a Merkle tree instead, which makes minting far cheaper and means only an RPC provider with DAS API indexing support can read them back.
- MPL Core Assets: NFTs built on the Metaplex Core standard, which stores each asset in a single account rather than using the Token program at all. Plugins add behavior such as enforced royalties, freeze delegates, and collection-level operations.
- Token 2022 Assets: Fungible and non-fungible tokens created with Token 2022, a separate token program whose optional extensions add features like transfer fees, confidential transfers, interest-bearing balances, and metadata stored on the mint.
How to Access the DAS API
Once enabled, DAS methods are available on your existing Solana endpoint URL. You call them like any other JSON-RPC method, with no separate hostname or API key.
DAS API Methods
Fetch Specific Assets
Use these methods when you already know the asset ID, for example on an asset detail page or when loading a set of listings.
| Method | Description | Use It For |
|---|---|---|
getAsset | Returns the metadata, ownership, royalty, and compression details of a single compressed or standard asset | Rendering an asset detail page |
getAssets | Returns the same information for a list of asset IDs in one request | Loading a gallery or marketplace listings page |
Find Assets by Wallet, Creator, or Collection
Use these methods to list what a wallet holds, what a creator minted, or what belongs to a collection.
| Method | Description | Use It For |
|---|---|---|
getAssetsByOwner | Lists every asset owned by a wallet address, merging fungible tokens, NFTs, and compressed assets | Wallet and portfolio views |
getAssetsByAuthority | Lists assets controlled by a specific update authority | Admin dashboards for a project you control |
getAssetsByCreator | Lists assets minted by a given creator address, with an option to require that the creator is verified | Creator profile pages |
getAssetsByGroup | Lists assets matching a group key and value, most commonly a collection address | Collection browse pages |
searchAssets | Queries assets by any combination of owner, creator, authority, collection, interface, burnt status, and more | Filtered search and complex queries |
Note: getAssetsByGroup is the direct way to list a single collection. Reach for searchAssets when you need to combine filters, for example every unburnt compressed NFT from a collection that a specific wallet owns.
Verify Compressed NFTs
A compressed NFT has no account of its own, so any program that transfers, burns, or delegates one needs a Merkle proof showing that the asset belongs to its tree. Fetch that proof here and pass it into the instruction.
| Method | Description | Use It For |
|---|---|---|
getAssetProof | Returns the Merkle proof, root, and tree ID for a single compressed asset | Building a cNFT transfer or burn instruction |
getAssetProofs | Returns proofs for multiple compressed assets in one request | Batch transfers and airdrop claims |
Read Token Accounts, Editions, and History
| Method | Description | Use It For |
|---|---|---|
getTokenAccounts | Lists token accounts and balances for a specified mintAddress or ownerAddress | Balance checks and holder snapshots |
getNftEditions | Returns the printed editions of a specified master edition NFT | Edition supply and print tracking |
getAssetSignatures | Returns the transaction signatures that touched a compressed asset, including mints, transfers, and burns | Provenance and activity feeds |
Pagination and Sorting
The list methods return paginated results, capped by the limit parameter. Pick a pagination strategy based on how your app reads them.
| Mode | Parameters | When to Use It |
|---|---|---|
| By page | page | Numbered pagination where a user can jump to a specific page. The index starts at 1 |
| By cursor | cursor | Infinite scroll and large result sets, using the cursor returned by the previous response |
| By range | before, after | Fetching a bounded slice of results between two known asset IDs |
Order results with the sortBy object, which takes a sort field and a direction.
| sortBy Value | Sorts By |
|---|---|
created | The date the asset was created |
updated | The date the asset was last updated |
recentAction | The most recent action taken on the asset |
none | No sorting applied |