La API DAS
La API DAS (Digital Asset Standard) expone metadatos enriquecidos de activos para tokens, NFTs y cNFTs comprimidos a través de puntos de conexión RPC habilitados por el proveedor.
Receta
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
// Los métodos DAS utilizan JSON-RPC en URLs de proveedor habilitadas para DAS
const DAS_RPC = "https://mainnet.helius-rpc.com/?api-key=TU_CLAVE";
const body = {
jsonrpc: "2.0",
id: 1,
method: "getAsset",
params: { id: "ID_DEL_ACTIVO_O_MINT" },
};
const res = await fetch(DAS_RPC, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(body),
});
const { result } = await res.json();
console.log(result?.content?.metadata?.name);Cuándo usar esto:
- Renderizar galerías de NFTs con nombres e imágenes.
- Leer árboles de cNFTs comprimidos sin análisis de merkle manual.
- Token-gating por propiedad de activos en colecciones.
- Vistas de cartera de billetera más allá de
getTokenAccountsByOwneren bruto.
Ejemplo de trabajo
const DAS_RPC = process.env.DAS_RPC_URL!;
async function dasRpc<T>(method: string, params: unknown): Promise<T> {
const res = await fetch(DAS_RPC, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ jsonrpc: "2.0", id: 1, method, params }),
});
const json = await res.json();
if (json.error) throw new Error(json.error.message);
return json.result as T;
}
// Activos propiedad de la billetera
const assets = await dasRpc<{ items: unknown[] }>("getAssetsByOwner", {
ownerAddress: "CLAVE_PÚBLICA_DE_LA_BILLETERA",
page: 1,
limit: 50,
});
console.log("conteo:", assets.items?.length);
// Detalle de activo único
const asset = await dasRpc<unknown>("getAsset", { id: "ID_DEL_ACTIVO" });
console.log(asset);Lo que esto demuestra:
- DAS extiende JSON-RPC con métodos centrados en activos como
getAsset,getAssetsByOwner. - Los parámetros de paginación varían según el proveedor; consulte la documentación de Helius/Triton.
- Combinar con RPC estándar para transacciones y cuentas de programas personalizadas.
Inmersión profunda
Cómo funciona
- Los indexadores detrás del proveedor agregan metadatos de tokens en la cadena, programas MPL y pruebas de compresión.
getAssetdevuelve JSON unificado para activos estándar, comprimidos y fungibles donde se admiten.- No es parte del RPC estándar de Solana; se debe usar un punto de conexión habilitado para DAS.
@solana/kitmaneja el RPC estándar; DAS a menudo usafetcho el SDK del proveedor hasta que se unifique en kit.
Métodos DAS comunes
| Método | Propósito |
|---|---|
getAsset | Activo único por id |
getAssetsByOwner | Cartera de billetera |
getAssetsByGroup | Consultas de colección |
searchAssets | Descubrimiento filtrado |
Notas de TypeScript
// Emparejar lecturas DAS con envíos de kit
import { createSolanaRpc } from "@solana/kit";
const txRpc = createSolanaRpc(process.env.RPC_URL!);
// DAS_RPC URL separada en el mismo panel del proveedorTrampas
- RPC público estándar - Los métodos DAS devuelven errores o 404. Solución: habilite DAS en el plan del proveedor.
- Confusión de ID de activo - el mint, el PDA de metadatos y el ID de DAS difieren para los cNFTs. Solución: use el ID devuelto por la consulta DAS anterior.
- Metadatos obsoletos - JSON fuera de la cadena que se retrasa en las actualizaciones de imágenes. Solución: política de actualización + caché de URI.
- Huecos de paginación - los mints concurrentes durante la paginación pierden elementos. Solución: paginación basada en cursor si el proveedor lo admite.
- Mezclar DAS con GPA en bruto - rutas lógicas duplicadas. Solución: DAS para billeteras; GPA solo para estado de programa personalizado.
Alternativas
| Alternativa | Usar cuando | No usar cuando |
|---|---|---|
getTokenAccountsByOwner | Solo saldos SPL simples | Riqueza de metadatos NFT |
| Indexador personalizado | Control total del esquema | Galería MVP rápida |
| Lecturas del SDK de Metaplex | PDA de metadatos de bajo nivel | Ergonomía de activos comprimidos |
| APIs del explorador | Análisis ad hoc | Dependencia de la aplicación de producción |
Preguntas frecuentes
¿Qué proveedores admiten DAS?
Helius, Triton y otros anuncian DAS; verifique la bandera de características en el panel de su clave API.
¿DAS cubre NFTs comprimidos?
Sí, el valor principal son las lecturas unificadas para cNFTs de Bubblegum sin decodificación manual de pruebas.
¿Puedo usar DAS en devnet?
Depende del proveedor; muchas funciones DAS se dirigen a la red principal; consulte la matriz de soporte de devnet.
¿Está DAS en @solana/kit 7.0.0?
El kit estándar de RPC cubre los métodos del validador; DAS generalmente usa JSON-RPC del proveedor a través de fetch o el SDK del proveedor.
¿Cómo obtengo los activos de la colección?
getAssetsByGroup con clave/valor de grupo (por ejemplo, dirección verificada de la colección) según el esquema del proveedor.
¿Cuál es el ID de activo para cNFT?
Identificador calculado por el proveedor; no asuma que es igual a la dirección de la hoja sin verificar la respuesta de getAsset.
¿Límites de tasa en DAS?
Separado de las cuotas de RPC estándar; supervise 429 en los puntos de conexión de la cartera.
¿Puede DAS reemplazar la indexación?
Para billeteras con muchas lecturas, sí; los análisis aún requieren indexadores personalizados para eventos de programas arbitrarios.
¿Qué tan frescos son los datos de DAS?
Desde sub-ranuras hasta segundos detrás de la cadena, dependiendo del indexador; no idéntico a las lecturas processed.
¿Cómo se relaciona DAS con la documentación de compresión de estado?
Consulte Lectura de Activos Comprimidos DAS para ver patrones específicos de cNFT.
Relacionado
- Fundamentos de RPC - JSON-RPC estándar
- Métodos RPC principales - Lecturas de cuentas de bajo nivel
- Lectura de Activos Comprimidos DAS - Enfoque en cNFT
- Proveedores de RPC - Quién aloja DAS
Versiones de la pila: Esta página se escribió para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 y LiteSVM 0.6.x.