# ContentAddress


`contentAddress drv` returns `drv` with floating content-addressing: its
output store path is the realised NAR content hash, not the input hash.

```nix
final = contentAddress wrappedPackage;
```

Wins over input-addressed caching: early cutoff (unchanged output stops a
rebuild cascade) and cross-machine sharing (a realisation built on one
machine substitutes on another, given nix >= 2.35 + harmonia >= 3.1.0).

Only wrap byte-reproducible derivations (`nix build --rebuild`). A
non-reproducible CA drv flaps its output hash and mismatches across
machines. Per-derivation opt-in; never `contentAddressedByDefault`.

