DASL: Simple Primitives for Content-Addressed Data
DASL (pronounced "dazzle") is a small set of simple, standard primitives for working with content-addressed, linked data. The design is inspired by subcomponents of the IPFS universe, but simplified to improve interoperability, decrease costs, and work well with the web.
Building applications with content-addressed data shouldn't require a PhD in distributed systems. That's why we're introducing DASL (Data-Addressed Structures and Links) — a small set of simple, standard primitives that make working with content-addressed, linked data as straightforward and interoperable as possible.
What DASL Does
DASL ("dazzle") is a small set of simple, standard primitives for working with content-addressed, linked data. It builds on content addressing, a proven approach used in Git and IPFS to create reliable content identifiers (known as CIDs) through cryptographic hashing. Content addressing enables robust data integrity checks and efficient networking: systems can verify they received exactly what they asked for and avoid downloading the same content twice. The linking part lets you refer to stuff by its hash. You can build very big graphs of structured data and blobs with these primitives, such as the graph behind Bluesky.
We call DASL "data-addressed" because it supports a data serialization component that makes content-addressing sweet and easy when working with data. The design is inspired by subcomponents of the IPFS universe, but simplified to improve interoperability, decrease costs, and work well with the web.
DASL is a strict subset of IPFS CIDs and IPLD, so existing IPFS and IPLD implementations will just read DASL CIDs and DRISL without so much as a hiccup. Some implementations also specifically target a DASL subset.
Our Design Principles
Pave the cowpaths: We focus on supporting what people trying to solve real-world problems actually use. This takes over any consideration of engineering ideals or theoretical purity. We're retconning the spec to what people actually use implement — as it should be.
Extensibility vs optionality: Extensibility is important for long-lived distributed systems, because the world will happen and you will need to change. But introducing optionality reduces interoperability and increases cost of both implementation and adoption. So rather than require support for many options now, we have extension points now but deliberately don't use their full range.
Don't make me think: You don't want to be thinking about content addressing. You want to grab this off the shelf and have something that works out of the box. Nothing weird, no impedance mismatch with the systems you know and love (or maybe know and hate, but whatever, it just works).
Lightweight loading: Some people like JavaScript, others don't. We don't care, we just want things that work. What's certain is that you can't ignore it and be relevant. The ability to ship small code to the browser is critical.
Unix philosophy: All of our specs are tiny and meant to compose together in simple ways that can be implemented independently from one another.
What's Here, What's Next
DASL exists to serve the community and meet production-grade needs for content-addressed systems. The specifications are designed to be approachable — if this introduction isn't enough to understand DASL, that's our failure, not yours.
Recent milestones include:
- Project Launch - In December 2024, we introduced DASL at the CID Congress #1 virtual meeting with initial specifications focused on core primitives for content-addressed, linked data.
- Additional Specifications - Throughout Spring 2025, we expanded the specification suite to cover retrieval (RASL), metadata (MASL), and other community-surfaced needs, and push the boundaries of punny acronymns.
- IETF Draft Submission - In May 2025, we submitted the CBOR/c-42 specification as an Internet Draft to the IETF.
- Test Suite - We are collaborating with Hypha Co-op on a comprehensive testing suite for current and future DASL implementations. You can preview the WIP results and source code, if you'd like.
Content-addressed data has enormous potential to make applications more reliable, efficient, and interoperable. DASL aims to make that potential accessible to more developers across the web. Starting as an independent exploration of what content-addressing could look like in its most minimal form, we ultimately aim to integrate these approaches into the IPFS stack and web-side standards.
We are actively seeking feedback and contributions. If you have thoughts, questions, or use cases we haven't considered, don't be shy and submit an issue!
Learn more about DASL and how to get started at dasl.ing.