---
# System prepended metadata

title: CID 1.0 and beyond

---

# CID 1.0 and beyond

## Agenda

- How do we make decisions today ?
- Removing node Buffer dependency
    - Renaming `.buffer` property to `.bytes`
    - Do we even need `.buffer` / `.bytes` if `CID` is `ArrayBufferView` ?
- Deprecating properties requing codec tabes
    - [`.codec`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L123-L125)
    - [`.mulibaseName`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L127-L129)
    - [`.prefix`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L131-L133)
    - [`.toBaseEncodedString`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L153-L155)
- [Creating `code` in place of `codec`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L74)
- Replacing `.isCID` pattern with `.asCID`
    - [Discussion thread](https://github.com/multiformats/js-cid/issues/111)
    - [Changes landed is js-multiformats](https://github.com/multiformats/js-multiformats/pull/23)
- `CID` as `ArrayBufferView`
    - [Proposed changes](https://github.com/multiformats/js-multiformats/pull/29)
- [`/` property for circular reference](https://github.com/multiformats/js-multiformats/issues/27)
-  [Reducing CID constructor overload](https://github.com/multiformats/js-cid/issues/83#issuecomment-668748578)

## Notes

- Deprecation
    - In js-multiformats we print warning when using `CID.isCID(x)` that will start throwing in next major release. Seems like an overal pattern worth adopting for easing transitions. 
    - From @mikeal in slack:
      > we should only ever print the warning once
  - Maybe not throw until we switch to js-mulitformats
  - The reason we might want to have warning even if we never change js-cids is because ipfs.* will return CID instances so it's not up to them to switch.
  - Can we provide an alternative to string table.
  - Instead point to the migration guide.
  - `toBaseEncodedString` - print warning.
  - `toString` - print warning when encoding would be differnt.
  - `prefix` - warn then remove.
      - TODO: open issue in https://github.com/ipfs/js-ipfs-bitswap(?)
  - warn on construction.
  - Add `asCID` and migrate, but keep the `isCID`.
      - In second phase print warning
  - Check our assumbtions `.buffer`.
      - Throw if offset is not 0