
IPLD is the layer that explains why IPFS's Merkle DAG isn't actually limited to files at all. This series' hub article introduced the DAG as a hash-linked graph of blocks, and the UnixFS article showed one specific way to interpret that graph as files and directories. IPLD is the general framework underneath both: an abstract data model for linked, hash-addressed data, with UnixFS as one of several concrete serializations (codecs) built on top of it, not the only one possible.
TL;DR:
ipfs://{cid}, are exactly the kind of structured, non-file data IPLD's broader model exists to support, distinct from the file-and-folder data UnixFS is built forThe Merkle DAG structure at the center of this series is powerful specifically because it's generic: nodes, links, hashes, no assumptions about what the data inside a node represents. UnixFS is one interpretation of that generic structure, built specifically for files and directories, using its own protobuf schema and the DAG-PB codec to encode it. But nothing about the underlying DAG requires that interpretation. IPLD is the name for the layer that makes this explicit: a data model general enough to describe files, but just as capable of describing arbitrary structured data, linked databases, or application-specific schemas that have nothing to do with filesystems at all.
IPLD separates concerns into three distinct layers. The Data Model is an abstract description of the kinds of data that can exist, maps, lists, strings, numbers, bytes, and links, independent of how any of it gets written to disk or sent over a wire. A codec is what actually serializes that abstract model into concrete bytes, DAG-PB, DAG-CBOR, and DAG-JSON are all codecs, each making different tradeoffs. Storage and transport is the final layer, how those serialized bytes actually move between peers and get held on disk, the DHT and Bitswap mechanics this series already covers in depth. Keeping these separate is what lets the exact same logical data structure be serialized differently, moved over different transports, and processed by different programming languages, while staying semantically the same thing underneath.
DAG-PB, the codec UnixFS is built on, implements only a small, deliberately limited subset of the full IPLD Data Model: it can represent raw bytes and named links, and essentially nothing else. That limitation isn't a flaw, it's exactly matched to what a file or directory node actually needs, data plus a set of named children, no more. DAG-CBOR and DAG-JSON, by contrast, implement the Data Model far more completely, supporting the full range of maps, lists, and scalar types, which makes them the recommended choice for general-purpose linked data that isn't specifically a file or folder. DAG-CBOR in particular is binary and length-delimited, which makes it efficient to parse, while DAG-JSON trades some of that efficiency for being human-readable.
This series' CID-anatomy article already covered the multicodec field inside a CID, the part of the identifier that says how to interpret the linked content, using values like dag-pb (0x70), raw (0x55), and dag-cbor (0x71). IPLD is the reason that field has to exist at all: since the same underlying DAG structure can hold data serialized with any of several codecs, something in the address itself has to say which one applies, so a reader knows whether to run DAG-PB's limited decoder or DAG-CBOR's fuller one before it can make sense of a block's bytes.
Because the Data Model doesn't assume anything about files or directories, arbitrary structured data, a JSON-like document, a linked database record, an application-specific schema, can be represented as an IPLD DAG the same way a file can, addressed by CID, verified the same trustless way, and linked to other IPLD data across completely different applications. This is the property that lets IPFS's addressing, verification, and transport machinery serve as general infrastructure for linked data generally, not a mechanism that only happens to work for files because files were the first thing built on top of it.
This series' ERC-8004 coverage elsewhere on this site already touches IPLD territory without naming it directly: an ERC-8004 Registration File is a structured JSON document, referenced directly as ipfs://{cid} per the standard's own convention, not a UnixFS file wrapping arbitrary bytes in the filesystem sense. Pinning that document on AIOZ Pin protects and replicates it the same way any pinned content is protected, the pinning and persistence mechanics don't change based on which codec produced the data. What does change is how a client interprets the bytes once retrieved, and that's exactly the layer IPLD, and the multicodec field pointing at the right codec, is responsible for.
What is IPLD in one sentence? The general data model underneath IPFS's Merkle DAG, separating what kind of data something is from how it's serialized (codec) and how it moves and persists (storage/transport).
Is UnixFS part of IPLD or something separate? UnixFS is one specific schema built on top of IPLD, using the DAG-PB codec. IPLD itself is broader and supports other codecs and data shapes beyond files and directories.
What's the difference between DAG-PB and DAG-CBOR? DAG-PB implements a small, limited subset of the IPLD Data Model, just enough for files and named links. DAG-CBOR implements the full Data Model and is recommended for general-purpose structured data.
How does a reader know which codec to use for a given block? The multicodec field inside the block's CID specifies the codec, so decoding always knows which serialization rules to apply before interpreting the bytes.
Does IPLD only work for files? No. Its Data Model is general enough to represent any structured, linked data, files are just the first and most common use case built on top of it.
Is AIOZ Pin's ERC-8004 support built on IPLD? ERC-8004 Registration Files are structured JSON documents referenced by CID, the same kind of non-file, structured data IPLD's broader model exists to support, distinct from UnixFS's file-and-directory schema.

AIOZ Pin has no credit card option. You fund an account with AIOZ tokens instead. Here is exactly how the wallet, deposits, and conversion actually work.

Pinning services can remove their own copy of a file. They cannot remove it from IPFS. Here is exactly what a takedown does and does not accomplish.

libp2p connections can run over more than one transport. Here is exactly what changes with QUIC instead of TCP, and why IPFS dials both at once.

The DHT answers who has a CID. GossipSub answers a different question: how do peers push real-time updates to everyone listening, without a lookup at all.

js-ipfs is deprecated. Helia is what replaced it: a modular, TypeScript-first IPFS implementation built for the browser and Node.js. Here is how it fits.

Not every retrieval needs the whole DAG. IPLD Selectors describe exactly which nodes to traverse and match, so a client can fetch a slice, not everything.