diff --git a/manifest.dhall b/manifest.dhall
index 4cd20130eece0b47f7c29a0b6c46123b64931749..67c8b49b23bde62e35eb663d6760d37e96bf4e2a 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -371,6 +371,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "unicode-transforms" "0.4.0.1"
     , callHackage "unordered-containers" "0.2.19.1"
     , callHackage "validity" "0.12.0.1"
+    , callHackage "validity-aeson" "0.2.0.5"
     , callHackage "vault" "0.3.1.5"
     , callHackage "vector" "0.13.0.0"
     , callHackage "vector-algorithms" "0.9.0.1"
diff --git a/overlay.nix b/overlay.nix
index f1b3676c2d88fde9e510b721fce706526e7c236c..95d9554fa19b68c1d5806d74491b0fe43edff4d7 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -479,6 +479,8 @@ final: prev: with pkgs.haskell.lib; {
 
     validity = prev.callPackage (./pkgs/validity.nix) { };
 
+    validity-aeson = prev.callPackage (./pkgs/validity-aeson.nix) { };
+
     vault = prev.callPackage (./pkgs/vault.nix) { };
 
     vector = prev.callPackage (./pkgs/vector.nix) { };
diff --git a/pkgs/validity-aeson.nix b/pkgs/validity-aeson.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7ec82ff5feaae7dcc03eb4fad4f0710e95bfe70e
--- /dev/null
+++ b/pkgs/validity-aeson.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, aeson, base, hspec, lib, validity
+, validity-scientific, validity-text, validity-unordered-containers
+, validity-vector
+}:
+mkDerivation {
+  pname = "validity-aeson";
+  version = "0.2.0.5";
+  sha256 = "b232c3bb0a3a1ae342f41c42eb90e8931421e409ed4930c2b89246a521ae623e";
+  libraryHaskellDepends = [
+    aeson base validity validity-scientific validity-text
+    validity-unordered-containers validity-vector
+  ];
+  testHaskellDepends = [ aeson base hspec validity ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/validity#readme";
+  description = "Validity instances for aeson";
+  license = lib.licenses.mit;
+}
\ No newline at end of file