diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,15 @@
+Unreleased
+==========
+<!-- Append new entries here -->
+
+
+0.9.1
+=====
+* [!751](https://gitlab.com/morley-framework/morley/-/merge_requests/751)
+  + Add new Edo instruction: `LEVEL`.
+* [!741](https://gitlab.com/morley-framework/morley/-/merge_requests/741)
+  + Add new Edo instructions: `SHA3` and `KECCAK`.
+
 0.9.0
 =====
 * [!731](https://gitlab.com/morley-framework/morley/-/merge_requests/731)
diff --git a/lorentz.cabal b/lorentz.cabal
--- a/lorentz.cabal
+++ b/lorentz.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           lorentz
-version:        0.9.0
+version:        0.9.1
 synopsis:       EDSL for the Michelson Language
 description:    Lorentz is a powerful meta-programming tool which allows one to write Michelson contracts directly in Haskell. It has the same instructions as Michelson, but operates on Haskell values and allows one to use Haskell features.
 category:       Language
diff --git a/src/Lorentz/Bytes.hs b/src/Lorentz/Bytes.hs
--- a/src/Lorentz/Bytes.hs
+++ b/src/Lorentz/Bytes.hs
@@ -20,6 +20,8 @@
   , Sha256
   , Sha512
   , Blake2b
+  , Sha3
+  , Keccak
   ) where
 
 import qualified Data.Kind as Kind
@@ -214,3 +216,15 @@
 instance KnownHashAlgorithm Blake2b where
   computeHash = Crypto.blake2b
   toHash = I T.BLAKE2B
+
+data Sha3 :: HashAlgorithmKind
+
+instance KnownHashAlgorithm Sha3 where
+  computeHash = Crypto.sha3
+  toHash = I T.SHA3
+
+data Keccak :: HashAlgorithmKind
+
+instance KnownHashAlgorithm Keccak where
+  computeHash = Crypto.keccak
+  toHash = I T.KECCAK
diff --git a/src/Lorentz/Entrypoints/Manual.hs b/src/Lorentz/Entrypoints/Manual.hs
--- a/src/Lorentz/Entrypoints/Manual.hs
+++ b/src/Lorentz/Entrypoints/Manual.hs
@@ -2,7 +2,7 @@
 --
 -- SPDX-License-Identifier: LicenseRef-MIT-TQ
 
--- | Allows specifying entrypoints without declaring 'ParamterHasEntrypoints'
+-- | Allows specifying entrypoints without declaring 'ParameterHasEntrypoints'
 -- instance.
 module Lorentz.Entrypoints.Manual
   ( ParameterWrapper (..)
@@ -12,8 +12,8 @@
 
 import Lorentz.Constraints
 import Lorentz.Entrypoints.Core
-import Michelson.Typed
 import Lorentz.Wrappable (Wrappable)
+import Michelson.Typed
 
 -- | Wrap parameter into this to locally assign a way to derive entrypoints for
 -- it.
diff --git a/src/Lorentz/Instr.hs b/src/Lorentz/Instr.hs
--- a/src/Lorentz/Instr.hs
+++ b/src/Lorentz/Instr.hs
@@ -100,11 +100,14 @@
   , sha256
   , sha512
   , blake2B
+  , sha3
+  , keccak
   , hashKey
   , source
   , sender
   , address
   , chainId
+  , level
   , framed
   , LorentzFunctor (..)
   , NonZero (..)
@@ -662,6 +665,14 @@
 blake2B :: BytesLike bs => bs : s :-> Hash Blake2b bs : s
 blake2B = I BLAKE2B
 
+{-# WARNING sha3 "Introduced by the Edo Protocol (008); This won't work on previous versions." #-}
+sha3 :: BytesLike bs => bs : s :-> Hash Sha3 bs : s
+sha3 = I SHA3
+
+{-# WARNING keccak "Introduced by the Edo Protocol (008); This won't work on previous versions." #-}
+keccak :: BytesLike bs => bs : s :-> Hash Keccak bs : s
+keccak = I KECCAK
+
 hashKey :: PublicKey : s :-> KeyHash : s
 hashKey = I HASH_KEY
 
@@ -679,6 +690,10 @@
 
 chainId :: s :-> ChainId : s
 chainId = I CHAIN_ID
+
+{-# WARNING level "Introduced by the Edo Protocol (008); This won't work on previous versions." #-}
+level :: s :-> Natural : s
+level = I LEVEL
 
 -- | Execute given instruction on truncated stack.
 --
