
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
@dcl/asset-packs
Advanced tools
Decentraland Asset Packs - curated collections of 3D assets for Decentraland scenes
The asset-packs repository is a fundamental component of the Decentraland ecosystem that serves as the central storage and distribution system for default items and assets. It manages and distributes:
When deployed, all assets are hashed and uploaded to an S3 bucket under contents/:hash. An npm package @dcl/asset-packs is published containing:
catalog.json with all asset packs data and content hashesbin/index.js runtime required for Smart Items functionalityThe assets are accessible through builder-items.decentraland.* via Cloudflare.
Install the package in your Decentraland SDK7 scene:
npm install @dcl/asset-packs
Import and use asset packs in your scene:
import { readGltfLocator } from '@dcl/asset-packs'
// Use an asset from the catalog
const assetId = 'some-asset-id'
const gltfSrc = readGltfLocator(assetId)
// Use in your scene
engine.addEntity({
transform: Transform.create(),
gltfContainer: GltfContainer.create({ src: gltfSrc })
})
@dcl/asset-packs@latesthttps://builder-items.decentraland.org/contents/:hash@dcl/asset-packs@nexthttps://builder-items.decentraland.zone/contents/:hashProduction Deployment:
main branch@dcl/asset-packs@latesthttps://builder-items.decentraland.orgDevelopment Deployment:
/upload-assets on pull requests (org members only)https://builder-items.decentraland.zoneNote: All assets are content-addressed (hashed), ensuring immutability and correct caching.
You can develop this repo locally and test it within the Web Editor by doing the following:
Go to this repo in your machine and do this:
npm run start to watch for changes and start the SDK7 dev server (on port 8001 by default).docker-compose up to start the local content server on http://localhost:9000/asset-packsnpm run upload to upload all assets to your local content server (copy the .env.example into .env if you haven't done that before).bin/index.js in this repo (something like /Users/my-user/path/to/creators-hub/packages/asset-packs/bin/index.js).Go to the packages/inspector in this monorepo and do this:
npm start to start a local dev server. It should start by default on port 8000.Go to the packages/creator-hub in this monorepo and do this:
.env.example to .env if you haven't done that before.VITE_INSPECTOR_PORT env var in .env to be 8000 (this is the @dcl/inspector dev server we started in the previous section).VITE_ASSET_PACKS_JS_PORT to the port where the SDK7 started running in the first section (8001).VITE_ASSET_PACKS_JS_PATH env var in .env to the path to the bin/index.js that you copied in the first section.VITE_ASSET_PACKS_CONTENT_URL env var in .env to be http://localhost:9000/asset-packs (this is the content server we started in the first section).npm start to start the builder local server which should start on port 3000Now you are all set, you can start developing the SDK7 scene in this repo, use it from the local Builder and test it by previewing the scene, which should use your local Builder Server serving the development javascript files.
The inspector fetches the asset catalog at runtime from S3. If latest/catalog.json is unreachable (e.g. on a pre-merge PR branch, in CI, or offline), it automatically falls back to the catalog.json bundled in the @dcl/asset-packs npm package — so the inspector always loads.
When you add a new asset locally it won't appear in the Asset Packs tab automatically because neither the CDN nor the bundled catalog knows about it yet. There are two options:
The existing docker-compose setup handles everything. npm run upload now also uploads catalog.json as asset-packs/latest/catalog.json to MinIO, mirroring what CI does on S3.
Follow the steps in Local Development above, then open the inspector with:
http://localhost:8000/?contentUrl=http://localhost:9000/asset-packs
Both the catalog listing and all asset files are served locally — full end-to-end testing with no remote CDN needed.
Push your branch and comment /upload-assets on the pull request (org members only). The CI will upload all asset files from your branch to the development CDN (https://builder-items.decentraland.zone) and post a comment confirming the upload.
Then configure the inspector to use the dev CDN:
VITE_ASSET_PACKS_CONTENT_URL=https://builder-items.decentraland.zone
Or when opening the inspector directly:
http://localhost:8000/?contentUrl=https://builder-items.decentraland.zone
The catalog pointer (latest/catalog.json) is only updated on merge to main, so the Asset Packs tab will still show the currently published catalog — but the asset files themselves will be available for loading.
@dcl/ecs dependencyThis package has a dependency on @dcl/ecs for several types. This is package is not added as a dependency even though it should be, because this causes an issue when installing @dcl/sdk@next on a scene. The problem is the following dependency chains:
@dcl/sdk -> @dcl/ecs@dcl/sdk -> @dcl/sdk-commands -> @dcl/inspector -> @dcl/asset-packs -> @dcl/ecsWhen a user installs @dcl/sdk@next on as scene, that updates @dcl/ecs from 1) but not the one from 2) and due to the clash npm stores the @latest version on the top level of node_modules and the @next version only whithin the @dcl/sdk/node_modules. This can cause runtime issues.
So we decisded to remove the explicit dependency of @dcl/ecs from the @dcl/asset-packs package, and that allows users to install @dcl/sdk@next or upgrade versions without problems.
The downside is that if this package is used in some project where @dcl/ecs is not available, it's going to break. This package is not meant to be used outside of a Decentraland scene anyway so that shouldn't be a problem.
For a deeper understanding of the architecture and design decisions:
FAQs
Decentraland Asset Packs - curated collections of 3D assets for Decentraland scenes
The npm package @dcl/asset-packs receives a total of 1,311 weekly downloads. As such, @dcl/asset-packs popularity was classified as popular.
We found that @dcl/asset-packs demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.