diff --git a/changes.md b/changes.md
--- a/changes.md
+++ b/changes.md
@@ -1,3 +1,6 @@
+# 1.4.0.0
+    - Add support for 'cryptoids-class'
+
 # 1.3.1.0
     - Fix documentation mistake
     - Bump @cryptoids@ to @0.4.0.*@
diff --git a/src/Data/UUID/Cryptographic.hs b/src/Data/UUID/Cryptographic.hs
--- a/src/Data/UUID/Cryptographic.hs
+++ b/src/Data/UUID/Cryptographic.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE ScopedTypeVariables #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
 
 {-|
 Description: Reversably generate UUIDs from arbitrary serializable types in a secure fashion
@@ -17,16 +18,17 @@
 where \(l\) is the length of the serialized payload.
 -}
 module Data.UUID.Cryptographic
-  ( CryptoID(..)
-  , CryptoUUID
+  ( CryptoUUID
+  , HasCryptoUUID
   , encrypt
   , decrypt
-  , CryptoIDError(..)
+  , module Data.CryptoID.Poly
   ) where
 
-import Data.CryptoID
 import Data.CryptoID.Poly hiding (encrypt, decrypt)
 import qualified Data.CryptoID.Poly as Poly (encrypt, decrypt)
+import Data.CryptoID.Class (HasCryptoID)
+import qualified Data.CryptoID.Class as Class (HasCryptoID(..))
 
 import Data.UUID (UUID, toByteString, fromByteString)
 import Data.Binary
@@ -39,6 +41,7 @@
 
 
 type CryptoUUID (namespace :: Symbol) = CryptoID namespace UUID
+type HasCryptoUUID (namespace :: Symbol) = HasCryptoID namespace UUID
 
 
 -- | Encrypt an arbitrary serializable value
@@ -64,3 +67,11 @@
            , MonadThrow m
            ) => CryptoIDKey -> CryptoUUID namespace -> m a
 decrypt = Poly.decrypt $ return . Lazy.ByteString.toStrict . toByteString
+
+instance ( MonadCrypto m
+         , MonadCryptoKey m ~ CryptoIDKey
+         , KnownSymbol namespace
+         , Binary a
+         ) => HasCryptoID namespace UUID a m where
+  encrypt = cryptoIDKey . flip encrypt
+  decrypt = cryptoIDKey . flip decrypt
diff --git a/src/Data/UUID/Cryptographic/ImplicitNamespace.hs b/src/Data/UUID/Cryptographic/ImplicitNamespace.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/UUID/Cryptographic/ImplicitNamespace.hs
@@ -0,0 +1,19 @@
+{-|
+Description: Reversably generate UUIDs from arbitrary serializable types with implicit type level namespaces
+License: BSD3
+-}
+module Data.UUID.Cryptographic.ImplicitNamespace
+  ( CryptoUUID
+  , HasCryptoUUID
+  , module Data.UUID.Cryptographic
+  , module Data.CryptoID.Class.ImplicitNamespace
+  ) where
+
+import Data.CryptoID.Class.ImplicitNamespace
+
+import Data.UUID.Cryptographic hiding (encrypt, decrypt, CryptoID, HasCryptoID, CryptoUUID, HasCryptoUUID)
+
+import Data.UUID (UUID)
+
+type CryptoUUID plaintext = CryptoID UUID plaintext
+type HasCryptoUUID plaintext = HasCryptoID UUID plaintext
diff --git a/uuid-crypto.cabal b/uuid-crypto.cabal
--- a/uuid-crypto.cabal
+++ b/uuid-crypto.cabal
@@ -1,37 +1,41 @@
 name: uuid-crypto
-version: 1.3.1.0
+version: 1.4.0.0
 cabal-version: >=1.10
 build-type: Simple
 license: BSD3
 license-file: LICENSE
-maintainer: aethoago@141.li
+maintainer: Gregor Kleen <aethoago@141.li>
 synopsis: Reversable and secure encoding of object ids as uuids
 category: cryptography
-author: Gregor Kleen
+author: Gregor Kleen <aethoago@141.li>
 extra-source-files:
     changes.md
 
 source-repository head
     type: git
-    location: https://git.rheperire.org/cryptoids
-    subdir: uuid-crypto
+    location: https://git.rheperire.org/cryptoids/uuid-crypto
 
 library
     exposed-modules:
         Data.UUID.Cryptographic
+        Data.UUID.Cryptographic.ImplicitNamespace
     build-depends:
-        base >=4.9 && <4.11,
-        cryptoids-types ==0.0.0,
-        cryptoids ==0.4.0.*,
-        uuid >=1.3.13 && <1.4,
-        binary >=0.8.3.0 && <0.9,
-        bytestring >=0.10.8.1 && <0.11,
-        exceptions >=0.8.3 && <0.9
+        base >=4.10.1.0 && <4.11,
+        binary >=0.8.5.1 && <0.9,
+        bytestring >=0.10.8.2 && <0.11,
+        cryptoids >=0.5.0.0 && <0.6,
+        cryptoids-class >=0.0.0 && <0.1,
+        cryptoids-types >=0.0.0 && <0.1,
+        exceptions >=0.8.3 && <0.9,
+        uuid >=1.3.13 && <1.4
     default-language: Haskell2010
     default-extensions: KindSignatures ViewPatterns FlexibleContexts
                         GeneralizedNewtypeDeriving PatternGuards RecordWildCards DataKinds
-                        DeriveDataTypeable DeriveGeneric
+                        DeriveDataTypeable DeriveGeneric FlexibleInstances
+                        MultiParamTypeClasses TypeFamilies ConstraintKinds
     other-extensions: ScopedTypeVariables
     hs-source-dirs: src
+    other-modules:
+        Paths_uuid_crypto
     ghc-options: -Wall -fno-warn-name-shadowing
 
