The DAS API: one interface to read every Solana asset
The Digital Asset Standard API queries NFTs, compressed NFTs, and tokens through one JSON-RPC interface — and is the only way to read cNFTs. Here's the methods, getAssetProof, and the indexer caveat.
The Digital Asset Standard (DAS) API is a standardized read API for querying every Solana asset type — regular NFTs, compressed NFTs (cNFTs), fungible/SPL tokens, and Token-2022 — through a single JSON-RPC interface. Metaplex describes it as an open specification for interacting with digital assets on Solana.
Why it exists: a cNFT lives only as a leaf in an on-chain Merkle tree — there's no account to getAccountInfo. DAS indexes the tree (and off-chain metadata) so you can read the asset and, critically, fetch the Merkle proof needed to transact it.
The methods
getAsset/getAssets— one or many by IDgetAssetProof/getAssetProofs— the Merkle proof for compressed assetsgetAssetsByOwner/ByCreator/ByGroup(e.g. collection) /ByAuthoritysearchAssets— flexible multi-filter querygetAssetSignatures; providers add extensions likegetTokenAccounts
// All NFTs (compressed or not) owned by a wallet:
const res = await fetch(RPC_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
jsonrpc: "2.0", id: "1", method: "getAssetsByOwner",
params: { ownerAddress: owner, page: 1, limit: 1000 }, // pages start at 1
}),
}).then(r => r.json())
// To MOVE a cNFT you must include its Merkle proof:
const proof = await rpc("getAssetProof", { id: assetId })
// → { root, proof: [...], node_index, leaf, tree_id }
// feed root/proof/leaf into the Bubblegum/compression instructionAn asset object carries interface, content (metadata + files), compression (whether compressed, tree, leaf), grouping, royalty, creators, ownership, and supply.
The honest read
The catch: DAS is not part of base Solana RPC. The index is maintained by providers (Helius, Triton, QuickNode, Shyft) — so you depend on one, and extension methods, pagination semantics, and limits vary between them. It's also eventually consistent: results can lag chain state, and off-chain metadata changes are only re-indexed after on-chain activity touches the asset. None of that is a dealbreaker — DAS is the de-facto standard read layer and the only practical way to read compressed assets — but write your code against one provider's exact behavior and don't assume instant consistency.
References
- metaplex-foundation/digital-asset-standard-api
- Helius — DAS API docs
- State compression & cNFTs — what DAS reads
- Metaplex Core — the new NFT standard
If you're building anything that displays or moves Solana NFTs, DAS is the API you reach for first — and the only one that can see compressed assets at all.