diff --git a/manifest.dhall b/manifest.dhall
index 70a80d544c7b243179ee437cc4f548ab65bc27fc..e4a7c21fc9c6af94287e2baec20b7f955409e258 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -47,7 +47,7 @@ let callCardanoLedger
         callCabal2nix
           name
           "https://github.com/milloni/cardano-ledger"
-          (Some "0d12cfa23aed9c355f66f69d7a1fcc6e82b68ea9")
+          (Some "3aa1fd8469424778454644f0d371988fb4490b4a")
           (Some subdir)
 
 in  [ callHackage "PyF" "0.11.0.0"
@@ -91,13 +91,23 @@ in  [ callHackage "PyF" "0.11.0.0"
     , callCardanoLedger "cardano-crypto-test" "eras/byron/crypto/test"
     , callCardanoLedger "cardano-crypto-wrapper" "eras/byron/crypto"
     , callCardanoLedger "cardano-data" "libs/cardano-data"
+    , callCardanoLedger "cardano-ledger-alonzo" "eras/alonzo/impl"
+    , callCardanoLedger "cardano-ledger-alonzo-test" "eras/alonzo/test-suite"
+    , callCardanoLedger "cardano-ledger-api" "libs/cardano-ledger-api"
     , callCardanoLedger "cardano-ledger-babbage" "eras/babbage/impl"
+    , callCardanoLedger "cardano-ledger-babbage-test" "eras/babbage/test-suite"
     , callCardanoLedger "cardano-ledger-byron" "eras/byron/ledger/impl"
+    , callCardanoLedger "cardano-ledger-byron-test" "eras/byron/ledger/impl/test"
     , callCardanoLedger "cardano-ledger-conway" "eras/conway/impl"
+    , callCardanoLedger "cardano-ledger-conway-test" "eras/conway/test-suite"
     , callCardanoLedger "cardano-ledger-core" "libs/cardano-ledger-core"
+    , callCardanoLedger "cardano-ledger-pretty" "libs/cardano-ledger-pretty"
     , callCardanoLedger "cardano-ledger-shelley" "eras/shelley/impl"
+    , callCardanoLedger "cardano-ledger-shelley-test" "eras/shelley/test-suite"
     , callCardanoLedger "cardano-ledger-shelley-ma" "eras/shelley-ma/impl"
-    , callCardanoLedger "cardano-ledger-alonzo" "eras/alonzo/impl"
+    , callCardanoLedger "cardano-ledger-shelley-ma-test" "eras/shelley-ma/test-suite"
+    , callCardanoLedger "cardano-ledger-test" "libs/cardano-ledger-test"
+    , callCardanoLedger "cardano-protocol-tpraos" "libs/cardano-protocol-tpraos"
     , callCabal2nix
         "cardano-slotting"
         "https://github.com/input-output-hk/cardano-base"
@@ -180,6 +190,7 @@ in  [ callHackage "PyF" "0.11.0.0"
         "https://github.com/milloni/plutus"
         (Some "81cd1ada745c12af2c2c28afce1f6b6b28b38fdd")
         (Some "plutus-ledger-api")
+    , callCardanoLedger "plutus-preprocessor" "libs/plutus-preprocessor"
     , callCabal2nix
         "plutus-tx"
         "https://github.com/milloni/plutus"
diff --git a/overlay.nix b/overlay.nix
index 5b5088d1bac0d4ccac2abf6f12bb50f03d63ffd5..7448cebbd9c33cc03d26ca09afa1629090e5307c 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -37,22 +37,42 @@ final: prev: with pkgs.haskell.lib; {
 
   cardano-ledger-alonzo = prev.callPackage (./pkgs/cardano-ledger-alonzo.nix) { };
 
+  cardano-ledger-alonzo-test = prev.callPackage (./pkgs/cardano-ledger-alonzo-test.nix) { };
+
+  cardano-ledger-api = prev.callPackage (./pkgs/cardano-ledger-api.nix) { };
+
   cardano-ledger-babbage = prev.callPackage (./pkgs/cardano-ledger-babbage.nix) { };
 
+  cardano-ledger-babbage-test = prev.callPackage (./pkgs/cardano-ledger-babbage-test.nix) { };
+
   cardano-ledger-byron = prev.callPackage (./pkgs/cardano-ledger-byron.nix) { };
 
+  cardano-ledger-byron-test = prev.callPackage (./pkgs/cardano-ledger-byron-test.nix) { };
+
   cardano-ledger-conway = prev.callPackage (./pkgs/cardano-ledger-conway.nix) { };
 
+  cardano-ledger-conway-test = prev.callPackage (./pkgs/cardano-ledger-conway-test.nix) { };
+
   cardano-ledger-core = prev.callPackage (./pkgs/cardano-ledger-core.nix) { };
 
+  cardano-ledger-pretty = prev.callPackage (./pkgs/cardano-ledger-pretty.nix) { };
+
   cardano-ledger-shelley = prev.callPackage (./pkgs/cardano-ledger-shelley.nix) { };
 
   cardano-ledger-shelley-ma = prev.callPackage (./pkgs/cardano-ledger-shelley-ma.nix) { };
 
+  cardano-ledger-shelley-ma-test = prev.callPackage (./pkgs/cardano-ledger-shelley-ma-test.nix) { };
+
+  cardano-ledger-shelley-test = prev.callPackage (./pkgs/cardano-ledger-shelley-test.nix) { };
+
+  cardano-ledger-test = prev.callPackage (./pkgs/cardano-ledger-test.nix) { };
+
   cardano-prelude = prev.callPackage (./pkgs/cardano-prelude.nix) { };
 
   cardano-prelude-test = prev.callPackage (./pkgs/cardano-prelude-test.nix) { };
 
+  cardano-protocol-tpraos = prev.callPackage (./pkgs/cardano-protocol-tpraos.nix) { };
+
   cardano-slotting = prev.callPackage (./pkgs/cardano-slotting.nix) { };
 
   cardano-strict-containers = prev.callPackage (./pkgs/cardano-strict-containers.nix) { };
@@ -85,6 +105,8 @@ final: prev: with pkgs.haskell.lib; {
 
   plutus-ledger-api = prev.callPackage (./pkgs/plutus-ledger-api.nix) { };
 
+  plutus-preprocessor = prev.callPackage (./pkgs/plutus-preprocessor.nix) { };
+
   plutus-tx = prev.callPackage (./pkgs/plutus-tx.nix) { };
 
   prettyprinter-configurable = prev.callPackage (./pkgs/prettyprinter-configurable.nix) { };
diff --git a/pkgs/cardano-ledger-alonzo-test.nix b/pkgs/cardano-ledger-alonzo-test.nix
new file mode 100644
index 0000000000000000000000000000000000000000..319f9abc61ccadc426659a90f52f23f28deaccbc
--- /dev/null
+++ b/pkgs/cardano-ledger-alonzo-test.nix
@@ -0,0 +1,117 @@
+{ mkDerivation
+, base
+, base16-bytestring
+, bytestring
+, cardano-binary
+, cardano-data
+, cardano-ledger-alonzo
+, cardano-ledger-core
+, cardano-ledger-pretty
+, cardano-ledger-shelley
+, cardano-ledger-shelley-ma
+, cardano-ledger-shelley-ma-test
+, cardano-ledger-shelley-test
+, cardano-protocol-tpraos
+, cardano-slotting
+, cardano-strict-containers
+, cborg
+, containers
+, data-default-class
+, fetchgit
+, hashable
+, lib
+, microlens
+, plutus-core
+, plutus-ledger-api
+, plutus-tx
+, QuickCheck
+, small-steps
+, small-steps-test
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, text
+, time
+, transformers
+}:
+mkDerivation {
+  pname = "cardano-ledger-alonzo-test";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "0x6xx0rx85ygnl0wclr9w4li3pmc9zf7xi5wqb7h0ibzbqyrhbzf";
+    rev = "f24ec5ad840458588e6e3ec2440add911f066aeb";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/eras/alonzo/test-suite/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    cardano-binary
+    cardano-data
+    cardano-ledger-alonzo
+    cardano-ledger-core
+    cardano-ledger-pretty
+    cardano-ledger-shelley
+    cardano-ledger-shelley-ma
+    cardano-ledger-shelley-ma-test
+    cardano-ledger-shelley-test
+    cardano-protocol-tpraos
+    cardano-slotting
+    cardano-strict-containers
+    cborg
+    containers
+    data-default-class
+    hashable
+    microlens
+    plutus-core
+    plutus-ledger-api
+    plutus-tx
+    QuickCheck
+    small-steps
+    small-steps-test
+    text
+    transformers
+  ];
+  testHaskellDepends = [
+    base
+    base16-bytestring
+    bytestring
+    cardano-binary
+    cardano-data
+    cardano-ledger-alonzo
+    cardano-ledger-core
+    cardano-ledger-shelley
+    cardano-ledger-shelley-ma
+    cardano-ledger-shelley-ma-test
+    cardano-ledger-shelley-test
+    cardano-protocol-tpraos
+    cardano-slotting
+    cardano-strict-containers
+    cborg
+    containers
+    data-default-class
+    microlens
+    plutus-ledger-api
+    QuickCheck
+    small-steps
+    small-steps-test
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    time
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Tests for Cardano ledger introducing Plutus Core";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/cardano-ledger-api.nix b/pkgs/cardano-ledger-api.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7f86b31ab84c1f13bafd28d3b25e5452421846aa
--- /dev/null
+++ b/pkgs/cardano-ledger-api.nix
@@ -0,0 +1,66 @@
+{ mkDerivation
+, base
+, bytestring
+, cardano-binary
+, cardano-ledger-alonzo
+, cardano-ledger-babbage
+, cardano-ledger-babbage-test
+, cardano-ledger-conway
+, cardano-ledger-core
+, cardano-ledger-shelley
+, cardano-ledger-shelley-ma
+, fetchgit
+, lib
+, microlens
+, QuickCheck
+, tasty
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "cardano-ledger-api";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "0x6xx0rx85ygnl0wclr9w4li3pmc9zf7xi5wqb7h0ibzbqyrhbzf";
+    rev = "f24ec5ad840458588e6e3ec2440add911f066aeb";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/libs/cardano-ledger-api/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    cardano-ledger-alonzo
+    cardano-ledger-babbage
+    cardano-ledger-conway
+    cardano-ledger-core
+    cardano-ledger-shelley
+    cardano-ledger-shelley-ma
+    microlens
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    cardano-binary
+    cardano-ledger-alonzo
+    cardano-ledger-babbage
+    cardano-ledger-babbage-test
+    cardano-ledger-core
+    cardano-ledger-shelley
+    microlens
+    QuickCheck
+    tasty
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Public API for the cardano ledger codebase";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/cardano-ledger-babbage-test.nix b/pkgs/cardano-ledger-babbage-test.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5fd70b2eb2f275df1d5f593f67f3b303022444a5
--- /dev/null
+++ b/pkgs/cardano-ledger-babbage-test.nix
@@ -0,0 +1,102 @@
+{ mkDerivation
+, base
+, base16-bytestring
+, bytestring
+, cardano-binary
+, cardano-data
+, cardano-ledger-alonzo
+, cardano-ledger-alonzo-test
+, cardano-ledger-babbage
+, cardano-ledger-core
+, cardano-ledger-shelley
+, cardano-ledger-shelley-ma
+, cardano-ledger-shelley-ma-test
+, cardano-ledger-shelley-test
+, cardano-protocol-tpraos
+, cardano-slotting
+, cardano-strict-containers
+, cborg
+, containers
+, data-default-class
+, fetchgit
+, lib
+, plutus-ledger-api
+, plutus-tx
+, pretty-show
+, QuickCheck
+, small-steps
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, time
+}:
+mkDerivation {
+  pname = "cardano-ledger-babbage-test";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "0x6xx0rx85ygnl0wclr9w4li3pmc9zf7xi5wqb7h0ibzbqyrhbzf";
+    rev = "f24ec5ad840458588e6e3ec2440add911f066aeb";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/eras/babbage/test-suite/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    base
+    cardano-binary
+    cardano-ledger-alonzo
+    cardano-ledger-alonzo-test
+    cardano-ledger-babbage
+    cardano-ledger-core
+    cardano-ledger-shelley
+    cardano-ledger-shelley-ma
+    cardano-ledger-shelley-ma-test
+    cardano-ledger-shelley-test
+    cardano-slotting
+    cardano-strict-containers
+    containers
+    data-default-class
+    plutus-tx
+    QuickCheck
+    small-steps
+  ];
+  testHaskellDepends = [
+    base
+    base16-bytestring
+    bytestring
+    cardano-binary
+    cardano-data
+    cardano-ledger-alonzo
+    cardano-ledger-alonzo-test
+    cardano-ledger-babbage
+    cardano-ledger-core
+    cardano-ledger-shelley
+    cardano-ledger-shelley-ma
+    cardano-ledger-shelley-ma-test
+    cardano-ledger-shelley-test
+    cardano-protocol-tpraos
+    cardano-slotting
+    cardano-strict-containers
+    cborg
+    containers
+    data-default-class
+    plutus-ledger-api
+    pretty-show
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    time
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Tests for Cardano ledger babbage era";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/cardano-ledger-byron-test.nix b/pkgs/cardano-ledger-byron-test.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d5cb5546e29476c924b0af070ae023f0fa4edd05
--- /dev/null
+++ b/pkgs/cardano-ledger-byron-test.nix
@@ -0,0 +1,92 @@
+{ mkDerivation
+, base
+, base16-bytestring
+, bimap
+, byron-spec-chain
+, byron-spec-ledger
+, bytestring
+, cardano-binary
+, cardano-binary-test
+, cardano-crypto
+, cardano-crypto-test
+, cardano-crypto-wrapper
+, cardano-ledger-byron
+, cardano-prelude
+, cardano-prelude-test
+, containers
+, directory
+, fetchgit
+, filepath
+, formatting
+, generic-monoid
+, heapwords
+, hedgehog
+, lib
+, microlens
+, resourcet
+, small-steps
+, small-steps-test
+, streaming
+, tasty
+, tasty-hedgehog
+, text
+, time
+, vector
+}:
+mkDerivation {
+  pname = "cardano-ledger-byron-test";
+  version = "1.3.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "1gjfjbsj9zglxy2aas06nmr22629j1pd1nl3q584v5is6k8nxlsj";
+    rev = "0d12cfa23aed9c355f66f69d7a1fcc6e82b68ea9";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/eras/byron/ledger/impl/test/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    base
+    base16-bytestring
+    bimap
+    byron-spec-chain
+    byron-spec-ledger
+    bytestring
+    cardano-binary
+    cardano-binary-test
+    cardano-crypto
+    cardano-crypto-test
+    cardano-crypto-wrapper
+    cardano-ledger-byron
+    cardano-prelude
+    cardano-prelude-test
+    containers
+    directory
+    filepath
+    formatting
+    generic-monoid
+    heapwords
+    hedgehog
+    microlens
+    resourcet
+    small-steps
+    small-steps-test
+    streaming
+    tasty
+    tasty-hedgehog
+    text
+    time
+    vector
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Test helpers from cardano-ledger exposed to other packages";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/cardano-ledger-conway-test.nix b/pkgs/cardano-ledger-conway-test.nix
new file mode 100644
index 0000000000000000000000000000000000000000..598d5c9a781fbd6e01c0500ac93899f86a84868b
--- /dev/null
+++ b/pkgs/cardano-ledger-conway-test.nix
@@ -0,0 +1,74 @@
+{ mkDerivation
+, base
+, cardano-ledger-alonzo
+, cardano-ledger-alonzo-test
+, cardano-ledger-babbage
+, cardano-ledger-babbage-test
+, cardano-ledger-conway
+, cardano-ledger-core
+, cardano-ledger-shelley
+, cardano-ledger-shelley-ma
+, cardano-ledger-shelley-ma-test
+, cardano-ledger-shelley-test
+, cardano-slotting
+, cardano-strict-containers
+, containers
+, data-default-class
+, fetchgit
+, lib
+, plutus-tx
+, QuickCheck
+, tasty
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "cardano-ledger-conway-test";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "0x6xx0rx85ygnl0wclr9w4li3pmc9zf7xi5wqb7h0ibzbqyrhbzf";
+    rev = "f24ec5ad840458588e6e3ec2440add911f066aeb";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/eras/conway/test-suite/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    cardano-ledger-alonzo
+    cardano-ledger-alonzo-test
+    cardano-ledger-babbage
+    cardano-ledger-babbage-test
+    cardano-ledger-conway
+    cardano-ledger-core
+    cardano-ledger-shelley
+    cardano-ledger-shelley-ma
+    cardano-ledger-shelley-ma-test
+    cardano-ledger-shelley-test
+    cardano-slotting
+    cardano-strict-containers
+    containers
+    data-default-class
+    plutus-tx
+    QuickCheck
+    tasty
+    tasty-quickcheck
+  ];
+  testHaskellDepends = [
+    base
+    cardano-ledger-conway
+    cardano-ledger-shelley-test
+    tasty
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Tests for Cardano ledger Conway era";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/cardano-ledger-pretty.nix b/pkgs/cardano-ledger-pretty.nix
new file mode 100644
index 0000000000000000000000000000000000000000..678e476284b435d5fe049e20d607d2a9a5220ae5
--- /dev/null
+++ b/pkgs/cardano-ledger-pretty.nix
@@ -0,0 +1,74 @@
+{ mkDerivation
+, base
+, bech32
+, bytestring
+, cardano-crypto-class
+, cardano-ledger-alonzo
+, cardano-ledger-babbage
+, cardano-ledger-byron
+, cardano-ledger-core
+, cardano-ledger-shelley
+, cardano-ledger-shelley-ma
+, cardano-protocol-tpraos
+, cardano-slotting
+, cardano-strict-containers
+, containers
+, fetchgit
+, hashable
+, iproute
+, lib
+, microlens
+, plutus-ledger-api
+, prettyprinter
+, small-steps
+, text
+, vector-map
+}:
+mkDerivation {
+  pname = "cardano-ledger-pretty";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "1gjfjbsj9zglxy2aas06nmr22629j1pd1nl3q584v5is6k8nxlsj";
+    rev = "0d12cfa23aed9c355f66f69d7a1fcc6e82b68ea9";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/libs/cardano-ledger-pretty/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bech32
+    bytestring
+    cardano-crypto-class
+    cardano-ledger-alonzo
+    cardano-ledger-babbage
+    cardano-ledger-byron
+    cardano-ledger-core
+    cardano-ledger-shelley
+    cardano-ledger-shelley-ma
+    cardano-protocol-tpraos
+    cardano-slotting
+    cardano-strict-containers
+    containers
+    hashable
+    iproute
+    microlens
+    plutus-ledger-api
+    prettyprinter
+    small-steps
+    text
+    vector-map
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Pretty-printers for Cardano ledger datatypes";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/cardano-ledger-shelley-ma-test.nix b/pkgs/cardano-ledger-shelley-ma-test.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5aec64e29202679b15d76e3021fa9074c4d4a131
--- /dev/null
+++ b/pkgs/cardano-ledger-shelley-ma-test.nix
@@ -0,0 +1,106 @@
+{ mkDerivation
+, base
+, base16-bytestring
+, bytestring
+, cardano-binary
+, cardano-crypto-class
+, cardano-data
+, cardano-ledger-core
+, cardano-ledger-pretty
+, cardano-ledger-shelley
+, cardano-ledger-shelley-ma
+, cardano-ledger-shelley-test
+, cardano-protocol-tpraos
+, cardano-slotting
+, cardano-strict-containers
+, cborg
+, containers
+, data-default-class
+, fetchgit
+, generic-random
+, hashable
+, lib
+, microlens
+, mtl
+, QuickCheck
+, small-steps
+, small-steps-test
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, text
+}:
+mkDerivation {
+  pname = "cardano-ledger-shelley-ma-test";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "0x6xx0rx85ygnl0wclr9w4li3pmc9zf7xi5wqb7h0ibzbqyrhbzf";
+    rev = "f24ec5ad840458588e6e3ec2440add911f066aeb";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/eras/shelley-ma/test-suite/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    base
+    base16-bytestring
+    bytestring
+    cardano-binary
+    cardano-crypto-class
+    cardano-data
+    cardano-ledger-core
+    cardano-ledger-pretty
+    cardano-ledger-shelley
+    cardano-ledger-shelley-ma
+    cardano-ledger-shelley-test
+    cardano-slotting
+    cardano-strict-containers
+    containers
+    generic-random
+    hashable
+    microlens
+    mtl
+    QuickCheck
+    small-steps
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    text
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    cardano-binary
+    cardano-data
+    cardano-ledger-core
+    cardano-ledger-shelley
+    cardano-ledger-shelley-ma
+    cardano-ledger-shelley-test
+    cardano-protocol-tpraos
+    cardano-slotting
+    cardano-strict-containers
+    cborg
+    containers
+    data-default-class
+    microlens
+    mtl
+    QuickCheck
+    small-steps
+    small-steps-test
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Shelley ledger with multiasset and time lock support";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/cardano-ledger-shelley-test.nix b/pkgs/cardano-ledger-shelley-test.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ef16dffe52badca77dfd27af1eb36fab98fd069a
--- /dev/null
+++ b/pkgs/cardano-ledger-shelley-test.nix
@@ -0,0 +1,184 @@
+{ mkDerivation
+, aeson
+, base
+, base16-bytestring
+, binary
+, bytestring
+, cardano-binary
+, cardano-crypto
+, cardano-crypto-class
+, cardano-crypto-praos
+, cardano-crypto-test
+, cardano-crypto-wrapper
+, cardano-data
+, cardano-ledger-byron
+, cardano-ledger-byron-test
+, cardano-ledger-core
+, cardano-ledger-pretty
+, cardano-ledger-shelley
+, cardano-protocol-tpraos
+, cardano-slotting
+, cardano-strict-containers
+, cborg
+, containers
+, criterion
+, data-default-class
+, deepseq
+, fetchgit
+, generic-random
+, groups
+, hashable
+, hedgehog
+, hedgehog-quickcheck
+, iproute
+, lib
+, microlens
+, mtl
+, nothunks
+, plutus-ledger-api
+, prettyprinter
+, process-extras
+, QuickCheck
+, scientific
+, serialise
+, set-algebra
+, small-steps
+, small-steps-test
+, tasty
+, tasty-hedgehog
+, tasty-hunit
+, tasty-quickcheck
+, text
+, time
+, transformers
+, tree-diff
+, unliftio
+, vector
+, vector-map
+}:
+mkDerivation {
+  pname = "cardano-ledger-shelley-test";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "13k3kq9s4did0bnmsisp8d4liaa90v1an28h6z3b6vwrwabbls4n";
+    rev = "cb35749e9726bb5e8db4fc95b54f2521dfe9e192";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/eras/shelley/test-suite/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    base
+    base16-bytestring
+    binary
+    bytestring
+    cardano-binary
+    cardano-crypto
+    cardano-crypto-class
+    cardano-crypto-test
+    cardano-crypto-wrapper
+    cardano-data
+    cardano-ledger-byron
+    cardano-ledger-byron-test
+    cardano-ledger-core
+    cardano-ledger-pretty
+    cardano-ledger-shelley
+    cardano-protocol-tpraos
+    cardano-slotting
+    cardano-strict-containers
+    cborg
+    containers
+    data-default-class
+    deepseq
+    generic-random
+    hashable
+    hedgehog
+    hedgehog-quickcheck
+    iproute
+    microlens
+    mtl
+    nothunks
+    plutus-ledger-api
+    process-extras
+    QuickCheck
+    serialise
+    set-algebra
+    small-steps
+    small-steps-test
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    text
+    time
+    transformers
+    tree-diff
+    unliftio
+    vector
+    vector-map
+  ];
+  testHaskellDepends = [
+    aeson
+    base
+    base16-bytestring
+    binary
+    bytestring
+    cardano-binary
+    cardano-crypto-class
+    cardano-data
+    cardano-ledger-byron
+    cardano-ledger-core
+    cardano-ledger-pretty
+    cardano-ledger-shelley
+    cardano-protocol-tpraos
+    cardano-slotting
+    cardano-strict-containers
+    cborg
+    containers
+    data-default-class
+    groups
+    hedgehog
+    iproute
+    microlens
+    prettyprinter
+    QuickCheck
+    scientific
+    small-steps
+    small-steps-test
+    tasty
+    tasty-hedgehog
+    tasty-hunit
+    tasty-quickcheck
+    time
+  ];
+  benchmarkHaskellDepends = [
+    base
+    cardano-crypto-class
+    cardano-crypto-praos
+    cardano-data
+    cardano-ledger-core
+    cardano-ledger-shelley
+    cardano-protocol-tpraos
+    cardano-slotting
+    cardano-strict-containers
+    containers
+    criterion
+    deepseq
+    mtl
+    QuickCheck
+    set-algebra
+    small-steps
+    small-steps-test
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Test helpers from cardano-ledger-shelley exposed to other packages";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/cardano-ledger-test.nix b/pkgs/cardano-ledger-test.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a6dfd623f8976fb0c89a2a4350621cb1cb848541
--- /dev/null
+++ b/pkgs/cardano-ledger-test.nix
@@ -0,0 +1,156 @@
+{ mkDerivation
+, aeson
+, array
+, base
+, bytestring
+, cardano-binary
+, cardano-crypto-class
+, cardano-data
+, cardano-ledger-alonzo
+, cardano-ledger-alonzo-test
+, cardano-ledger-babbage
+, cardano-ledger-babbage-test
+, cardano-ledger-conway
+, cardano-ledger-conway-test
+, cardano-ledger-core
+, cardano-ledger-pretty
+, cardano-ledger-shelley
+, cardano-ledger-shelley-ma
+, cardano-ledger-shelley-ma-test
+, cardano-ledger-shelley-test
+, cardano-protocol-tpraos
+, cardano-slotting
+, cardano-strict-containers
+, containers
+, criterion
+, data-default-class
+, deepseq
+, fetchgit
+, genvalidity
+, genvalidity-scientific
+, lib
+, microlens
+, mtl
+, nothunks
+, plutus-core
+, plutus-ledger-api
+, prettyprinter
+, QuickCheck
+, random
+, scientific
+, set-algebra
+, small-steps
+, small-steps-test
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, text
+, time
+, transformers
+, vector
+, vector-map
+}:
+mkDerivation {
+  pname = "cardano-ledger-test";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "08nj6hcqj5apvb17n1irc8j7rzf10bcdh5gh1mkmhwbyw6h2d4ab";
+    rev = "3aa1fd8469424778454644f0d371988fb4490b4a";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/libs/cardano-ledger-test/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    array
+    base
+    bytestring
+    cardano-binary
+    cardano-crypto-class
+    cardano-data
+    cardano-ledger-alonzo
+    cardano-ledger-alonzo-test
+    cardano-ledger-babbage
+    cardano-ledger-babbage-test
+    cardano-ledger-conway
+    cardano-ledger-conway-test
+    cardano-ledger-core
+    cardano-ledger-pretty
+    cardano-ledger-shelley
+    cardano-ledger-shelley-ma
+    cardano-ledger-shelley-ma-test
+    cardano-ledger-shelley-test
+    cardano-protocol-tpraos
+    cardano-slotting
+    cardano-strict-containers
+    containers
+    data-default-class
+    genvalidity
+    genvalidity-scientific
+    microlens
+    mtl
+    nothunks
+    plutus-core
+    plutus-ledger-api
+    prettyprinter
+    QuickCheck
+    scientific
+    set-algebra
+    small-steps
+    small-steps-test
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    text
+    time
+    transformers
+    vector
+    vector-map
+  ];
+  testHaskellDepends = [
+    base
+    cardano-ledger-shelley-test
+    data-default-class
+    tasty
+  ];
+  benchmarkHaskellDepends = [
+    base
+    bytestring
+    cardano-binary
+    cardano-crypto-class
+    cardano-data
+    cardano-ledger-alonzo
+    cardano-ledger-alonzo-test
+    cardano-ledger-core
+    cardano-ledger-shelley
+    cardano-ledger-shelley-ma
+    cardano-ledger-shelley-ma-test
+    cardano-ledger-shelley-test
+    containers
+    criterion
+    data-default-class
+    deepseq
+    microlens
+    QuickCheck
+    random
+    small-steps
+    small-steps-test
+    tasty
+    tasty-quickcheck
+    text
+    vector-map
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Testing harness, tests and benchmarks for Shelley style cardano ledgers";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/cardano-protocol-tpraos.nix b/pkgs/cardano-protocol-tpraos.nix
new file mode 100644
index 0000000000000000000000000000000000000000..820ff01825f11b0a1c18614594bfed8d65705bfe
--- /dev/null
+++ b/pkgs/cardano-protocol-tpraos.nix
@@ -0,0 +1,70 @@
+{ mkDerivation
+, base
+, bytestring
+, cardano-binary
+, cardano-crypto-class
+, cardano-ledger-alonzo
+, cardano-ledger-babbage
+, cardano-ledger-conway
+, cardano-ledger-core
+, cardano-ledger-shelley
+, cardano-ledger-shelley-ma
+, cardano-slotting
+, containers
+, deepseq
+, fetchgit
+, lib
+, mtl
+, non-integral
+, nothunks
+, quiet
+, set-algebra
+, small-steps
+, transformers
+}:
+mkDerivation {
+  pname = "cardano-protocol-tpraos";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "1gjfjbsj9zglxy2aas06nmr22629j1pd1nl3q584v5is6k8nxlsj";
+    rev = "0d12cfa23aed9c355f66f69d7a1fcc6e82b68ea9";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/libs/cardano-protocol-tpraos/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    cardano-binary
+    cardano-crypto-class
+    cardano-ledger-alonzo
+    cardano-ledger-babbage
+    cardano-ledger-conway
+    cardano-ledger-core
+    cardano-ledger-shelley
+    cardano-ledger-shelley-ma
+    cardano-slotting
+    containers
+    deepseq
+    mtl
+    non-integral
+    nothunks
+    quiet
+    set-algebra
+    small-steps
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Cardano Protocol: Transitional Praos";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/plutus-preprocessor.nix b/pkgs/plutus-preprocessor.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a1a4c77c62db8f0abbc4adbd82f508cb3b1a2f1f
--- /dev/null
+++ b/pkgs/plutus-preprocessor.nix
@@ -0,0 +1,27 @@
+{ mkDerivation, base, cardano-ledger-alonzo, fetchgit, lib }:
+mkDerivation {
+  pname = "plutus-preprocessor";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/cardano-ledger";
+    sha256 = "08nj6hcqj5apvb17n1irc8j7rzf10bcdh5gh1mkmhwbyw6h2d4ab";
+    rev = "3aa1fd8469424778454644f0d371988fb4490b4a";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/libs/plutus-preprocessor/; echo source root reset to $sourceRoot";
+  isLibrary = false;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  executableHaskellDepends = [ base cardano-ledger-alonzo ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A preproceesor for creating plutus scripts as bytestrings and equivalents";
+  license = lib.licenses.asl20;
+  mainProgram = "plutus-debug";
+  broken = false;
+}