diff --git a/manifest.dhall b/manifest.dhall
index 0631186be75fabb8fb9f592afd7a141226e30a88..55c417b4a53879f8b72f0cf53ff8757ead4bc53c 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -89,11 +89,31 @@ in  [ callHackage "PyF" "0.11.0.0"
         "https://github.com/milloni/cardano-ledger"
         (Some "2857b079bdab6e1545c60c614157ba8e7d19233e")
         (Some "eras/byron/crypto")
+    , callCabal2nix
+        "cardano-data"
+        "https://github.com/milloni/cardano-ledger"
+        (Some "bc859395040abf075f4ca44b4ce8c221d2c4bb66")
+        (Some "libs/cardano-data")
     , callCabal2nix
         "cardano-ledger-byron"
         "https://github.com/milloni/cardano-ledger"
         (Some "2857b079bdab6e1545c60c614157ba8e7d19233e")
         (Some "eras/byron/ledger/impl")
+    , callCabal2nix
+        "cardano-ledger-core"
+        "https://github.com/milloni/cardano-ledger"
+        (Some "bc859395040abf075f4ca44b4ce8c221d2c4bb66")
+        (Some "libs/cardano-ledger-core")
+    , callCabal2nix
+        "cardano-ledger-shelley"
+        "https://github.com/milloni/cardano-ledger"
+        (Some "bc859395040abf075f4ca44b4ce8c221d2c4bb66")
+        (Some "eras/shelley/impl")
+    , callCabal2nix
+        "cardano-slotting"
+        "https://github.com/input-output-hk/cardano-base"
+        (Some "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee")
+        (Some "slotting")
     , callCabal2nix
         "cardano-strict-containers"
         "https://github.com/input-output-hk/cardano-base"
@@ -150,6 +170,11 @@ in  [ callHackage "PyF" "0.11.0.0"
         "https://github.com/milloni/moo"
         (Some "20e4c6ee880e7d62b18b995750063dd7349a3f8e")
         (None Text)
+    , callCabal2nix
+        "non-integral"
+        "https://github.com/milloni/cardano-ledger"
+        (Some "bc859395040abf075f4ca44b4ce8c221d2c4bb66")
+        (Some "libs/non-integral")
     , callCabal2nix
         "nothunks"
         "https://github.com/locallycompact/nothunks"
@@ -179,6 +204,11 @@ in  [ callHackage "PyF" "0.11.0.0"
     , callHackage "ral" "0.1"
     , callHackage "recursion-schemes" "5.2.2.2"
     , callHackage "ref-tf" "0.5.0.1"
+    , callCabal2nix
+        "set-algebra"
+        "https://github.com/milloni/cardano-ledger"
+        (Some "bc859395040abf075f4ca44b4ce8c221d2c4bb66")
+        (Some "libs/set-algebra")
     , callHackage "singletons-th" "3.1.1"
     , callCabal2nix
         "small-steps"
@@ -202,6 +232,11 @@ in  [ callHackage "PyF" "0.11.0.0"
         "https://github.com/parsonsmatt/typerep-map"
         (Some "75b7cd5d45986be07420a6821d352ad2adc0b697")
         (None Text)
+    , callCabal2nix
+        "vector-map"
+        "https://github.com/milloni/cardano-ledger"
+        (Some "bc859395040abf075f4ca44b4ce8c221d2c4bb66")
+        (Some "libs/vector-map")
     , callCabal2nix
         "word-array"
         "https://github.com/milloni/plutus"
diff --git a/overlay.nix b/overlay.nix
index bbe50a0d88b69c48da48cb1b053d22281a222623..c403b7af14a1a92daddbe98c7147f0f9a05a151c 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -31,12 +31,20 @@ final: prev: with pkgs.haskell.lib; {
 
   cardano-crypto-wrapper = prev.callPackage (./pkgs/cardano-crypto-wrapper.nix) { };
 
+  cardano-data = prev.callPackage (./pkgs/cardano-data.nix) { };
+
   cardano-ledger-byron = prev.callPackage (./pkgs/cardano-ledger-byron.nix) { };
 
+  cardano-ledger-core = prev.callPackage (./pkgs/cardano-ledger-core.nix) { };
+
+  cardano-ledger-shelley = prev.callPackage (./pkgs/cardano-ledger-shelley.nix) { };
+
   cardano-prelude = prev.callPackage (./pkgs/cardano-prelude.nix) { };
 
   cardano-prelude-test = prev.callPackage (./pkgs/cardano-prelude-test.nix) { };
 
+  cardano-slotting = prev.callPackage (./pkgs/cardano-slotting.nix) { };
+
   cardano-strict-containers = prev.callPackage (./pkgs/cardano-strict-containers.nix) { };
 
   flat = prev.callPackage (./pkgs/flat.nix) { };
@@ -57,6 +65,8 @@ final: prev: with pkgs.haskell.lib; {
 
   moo = prev.callPackage (./pkgs/moo.nix) { };
 
+  non-integral = prev.callPackage (./pkgs/non-integral.nix) { };
+
   nothunks = prev.callPackage (./pkgs/nothunks.nix) { };
 
   plutus-core = prev.callPackage (./pkgs/plutus-core.nix) { };
@@ -75,6 +85,8 @@ final: prev: with pkgs.haskell.lib; {
 
   ref-tf = prev.callPackage (./pkgs/ref-tf.nix) { };
 
+  set-algebra = prev.callPackage (./pkgs/set-algebra.nix) { };
+
   singletons-th = prev.callPackage (./pkgs/singletons-th.nix) { };
 
   small-steps = prev.callPackage (./pkgs/small-steps.nix) { };
@@ -89,6 +101,8 @@ final: prev: with pkgs.haskell.lib; {
 
   typerep-map = prev.callPackage (./pkgs/typerep-map.nix) { };
 
+  vector-map = prev.callPackage (./pkgs/vector-map.nix) { };
+
   word-array = prev.callPackage (./pkgs/word-array.nix) { };
 
 }
diff --git a/pkgs/cardano-data.nix b/pkgs/cardano-data.nix
new file mode 100644
index 0000000000000000000000000000000000000000..fc838297a571726f22e7c3de98e8d0f88370e376
--- /dev/null
+++ b/pkgs/cardano-data.nix
@@ -0,0 +1,76 @@
+{ mkDerivation
+, aeson
+, base
+, bytestring
+, cardano-binary
+, cardano-strict-containers
+, cborg
+, containers
+, deepseq
+, fetchgit
+, formatting
+, lib
+, microlens
+, mtl
+, nothunks
+, primitive
+, QuickCheck
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, text
+, transformers
+, vector
+, vector-map
+}:
+mkDerivation {
+  pname = "cardano-data";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "109piw0q5nlypsywkmkwng4ixalbfmzf379b4n931ghih54xzwja";
+    rev = "bc859395040abf075f4ca44b4ce8c221d2c4bb66";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/libs/cardano-data/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    aeson
+    base
+    bytestring
+    cardano-binary
+    cardano-strict-containers
+    cborg
+    containers
+    deepseq
+    formatting
+    microlens
+    mtl
+    nothunks
+    primitive
+    QuickCheck
+    text
+    transformers
+    vector
+    vector-map
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    cardano-binary
+    cardano-strict-containers
+    cborg
+    containers
+    QuickCheck
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/input-output-hk/cardano-ledger";
+  description = "Specialized data for Cardano project";
+  license = lib.licenses.asl20;
+}
diff --git a/pkgs/cardano-ledger-core.nix b/pkgs/cardano-ledger-core.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ba3f05f4353844604624edb30e3f5ea9a2a4d8c6
--- /dev/null
+++ b/pkgs/cardano-ledger-core.nix
@@ -0,0 +1,97 @@
+{ mkDerivation
+, aeson
+, base
+, base16-bytestring
+, binary
+, bytestring
+, cardano-binary
+, cardano-crypto
+, cardano-crypto-class
+, cardano-crypto-praos
+, cardano-crypto-wrapper
+, cardano-data
+, cardano-ledger-byron
+, cardano-prelude
+, cardano-slotting
+, cardano-strict-containers
+, cborg
+, containers
+, data-default-class
+, deepseq
+, fetchgit
+, groups
+, heapwords
+, iproute
+, lib
+, microlens
+, mtl
+, network
+, non-integral
+, nothunks
+, partial-order
+, primitive
+, quiet
+, scientific
+, set-algebra
+, small-steps
+, text
+, time
+, transformers
+, validation-selective
+}:
+mkDerivation {
+  pname = "cardano-ledger-core";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "109piw0q5nlypsywkmkwng4ixalbfmzf379b4n931ghih54xzwja";
+    rev = "bc859395040abf075f4ca44b4ce8c221d2c4bb66";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/libs/cardano-ledger-core/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    aeson
+    base
+    base16-bytestring
+    binary
+    bytestring
+    cardano-binary
+    cardano-crypto
+    cardano-crypto-class
+    cardano-crypto-praos
+    cardano-crypto-wrapper
+    cardano-data
+    cardano-ledger-byron
+    cardano-prelude
+    cardano-slotting
+    cardano-strict-containers
+    cborg
+    containers
+    data-default-class
+    deepseq
+    groups
+    heapwords
+    iproute
+    microlens
+    mtl
+    network
+    non-integral
+    nothunks
+    partial-order
+    primitive
+    quiet
+    scientific
+    set-algebra
+    small-steps
+    text
+    time
+    transformers
+    validation-selective
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Core components of Cardano ledgers from the Shelley release on";
+  license = lib.licenses.asl20;
+}
diff --git a/pkgs/cardano-ledger-shelley.nix b/pkgs/cardano-ledger-shelley.nix
new file mode 100644
index 0000000000000000000000000000000000000000..9e6f9c0d2cc678cfc0921d275d3b796580d0cdaa
--- /dev/null
+++ b/pkgs/cardano-ledger-shelley.nix
@@ -0,0 +1,85 @@
+{ mkDerivation
+, aeson
+, base
+, base16-bytestring
+, bytestring
+, cardano-binary
+, cardano-crypto
+, cardano-crypto-class
+, cardano-crypto-wrapper
+, cardano-data
+, cardano-ledger-byron
+, cardano-ledger-core
+, cardano-slotting
+, cardano-strict-containers
+, cborg
+, containers
+, data-default-class
+, deepseq
+, fetchgit
+, groups
+, heapwords
+, iproute
+, lib
+, microlens
+, mtl
+, nothunks
+, quiet
+, set-algebra
+, small-steps
+, text
+, time
+, transformers
+, validation-selective
+, vector-map
+}:
+mkDerivation {
+  pname = "cardano-ledger-shelley";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "109piw0q5nlypsywkmkwng4ixalbfmzf379b4n931ghih54xzwja";
+    rev = "bc859395040abf075f4ca44b4ce8c221d2c4bb66";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/eras/shelley/impl/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    aeson
+    base
+    base16-bytestring
+    bytestring
+    cardano-binary
+    cardano-crypto
+    cardano-crypto-class
+    cardano-crypto-wrapper
+    cardano-data
+    cardano-ledger-byron
+    cardano-ledger-core
+    cardano-slotting
+    cardano-strict-containers
+    cborg
+    containers
+    data-default-class
+    deepseq
+    groups
+    heapwords
+    iproute
+    microlens
+    mtl
+    nothunks
+    quiet
+    set-algebra
+    small-steps
+    text
+    time
+    transformers
+    validation-selective
+    vector-map
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Shelley Ledger Executable Model";
+  license = lib.licenses.asl20;
+}
diff --git a/pkgs/cardano-slotting.nix b/pkgs/cardano-slotting.nix
new file mode 100644
index 0000000000000000000000000000000000000000..cdfac90a0cbeb24ba8ae78fc8541731675960e87
--- /dev/null
+++ b/pkgs/cardano-slotting.nix
@@ -0,0 +1,44 @@
+{ mkDerivation
+, aeson
+, base
+, cardano-binary
+, deepseq
+, fetchgit
+, lib
+, mmorph
+, nothunks
+, quiet
+, serialise
+, tasty
+, tasty-quickcheck
+, time
+}:
+mkDerivation {
+  pname = "cardano-slotting";
+  version = "0.1.0.1";
+  src = fetchgit {
+    url = "https://github.com/input-output-hk/cardano-base";
+    sha256 = "0qn56ahqmy79riwyaq5m0d4vpamdjkkk04b0x8zwlyd5y3pg58xd";
+    rev = "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/slotting/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    aeson
+    base
+    cardano-binary
+    deepseq
+    mmorph
+    nothunks
+    quiet
+    serialise
+    time
+  ];
+  testHaskellDepends = [ base tasty tasty-quickcheck ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Key slotting types for cardano libraries";
+  license = lib.licenses.asl20;
+}
diff --git a/pkgs/non-integral.nix b/pkgs/non-integral.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3c23db7f552977fc6ed4d5415fba07cdb636904a
--- /dev/null
+++ b/pkgs/non-integral.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, fetchgit, lib, QuickCheck }:
+mkDerivation {
+  pname = "non-integral";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "109piw0q5nlypsywkmkwng4ixalbfmzf379b4n931ghih54xzwja";
+    rev = "bc859395040abf075f4ca44b4ce8c221d2c4bb66";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/libs/non-integral/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base QuickCheck ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  license = lib.licenses.asl20;
+}
diff --git a/pkgs/set-algebra.nix b/pkgs/set-algebra.nix
new file mode 100644
index 0000000000000000000000000000000000000000..04e347881556f4ffec479bf62a5b872f0767ae60
--- /dev/null
+++ b/pkgs/set-algebra.nix
@@ -0,0 +1,43 @@
+{ mkDerivation
+, ansi-wl-pprint
+, base
+, cardano-data
+, containers
+, fetchgit
+, lib
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "set-algebra";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "109piw0q5nlypsywkmkwng4ixalbfmzf379b4n931ghih54xzwja";
+    rev = "bc859395040abf075f4ca44b4ce8c221d2c4bb66";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/libs/set-algebra/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    ansi-wl-pprint
+    base
+    cardano-data
+    containers
+  ];
+  testHaskellDepends = [
+    base
+    cardano-data
+    containers
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/input-output-hk/cardano-ledger";
+  description = "Set Algebra";
+  license = lib.licenses.asl20;
+}
diff --git a/pkgs/vector-map.nix b/pkgs/vector-map.nix
new file mode 100644
index 0000000000000000000000000000000000000000..268a7a112761b5fcc8a3b898f2ac27bca961ce7b
--- /dev/null
+++ b/pkgs/vector-map.nix
@@ -0,0 +1,55 @@
+{ mkDerivation
+, base
+, cardano-binary
+, containers
+, criterion
+, deepseq
+, fetchgit
+, lib
+, nothunks
+, primitive
+, QuickCheck
+, quickcheck-classes-base
+, random
+, tasty
+, tasty-quickcheck
+, vector
+, vector-algorithms
+}:
+mkDerivation {
+  pname = "vector-map";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "109piw0q5nlypsywkmkwng4ixalbfmzf379b4n931ghih54xzwja";
+    rev = "bc859395040abf075f4ca44b4ce8c221d2c4bb66";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/libs/vector-map/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    base
+    cardano-binary
+    containers
+    deepseq
+    nothunks
+    primitive
+    vector
+    vector-algorithms
+  ];
+  testHaskellDepends = [
+    base
+    containers
+    QuickCheck
+    quickcheck-classes-base
+    tasty
+    tasty-quickcheck
+  ];
+  benchmarkHaskellDepends = [ base containers criterion random ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/input-output-hk/cardano-ledger";
+  description = "An efficient VMap that is backed by two vectors: one for keys and another for values";
+  license = lib.licenses.asl20;
+}