https://ipld.io/specs/codecs/dag-cbor/spec/

It’s a subset of CBOR to represent the IPLD data model. There is a DAG- prefix is done so that we get consistent hashes. (e.g. DAG-JSON forces a known key order, unlike vanilla JSON). All links are CIDs. Map keys are strings.

The CBOR IPLD format is called DAG-CBOR to disambiguate it from regular CBOR. Most simple CBOR objects are valid DAG-CBOR. The primary differences are:

  • Tag 42 interpreted as CIDs, no other tags are supported.
  • Maps may only be keyed by strings.
  • Additional strictness requirements are applied to ensure canonical data encoding forms. See Strictness below.