diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,15 @@
+# Version [0.8.0.0](https://github.com/blockfrost/blockfrost-haskell/compare/client-0.7.1.1...client-0.8.0.0) (2023-12-18)
+
+* Allow servant `0.20` [#41](https://github.com/blockfrost/blockfrost-haskell/pull/41)
+* Additions [#43](https://github.com/blockfrost/blockfrost-haskell/pull/43)
+  * `getAccountAssociatedAddressesTotal` for `/accounts/:stake_address/addresses/total`
+  * `getAddressInfoExtended` for `/addresses/:address/extended`
+  * `listPoolsExtended` for `/pools/extended`
+  * `/utils` API
+    * `deriveShelleyAddress` for `/utils/addresses/xpub/:xpub/:role/:index`
+    * `evaluateTx` for `/utils/txs/evaluate` endpoint
+    * `evaluateTxUTXOs` for `/utils/txs/evaluate/utxos` endpoint
+
 # Version [0.7.1.1](https://github.com/blockfrost/blockfrost-haskell/compare/v0.7.1.0...client-0.7.1.1) (2023-01-10)
 
 * Allow blockfrost-api `0.8`
diff --git a/blockfrost-client.cabal b/blockfrost-client.cabal
--- a/blockfrost-client.cabal
+++ b/blockfrost-client.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                blockfrost-client
-version:             0.7.1.1
+version:             0.8.0.0
 synopsis:            blockfrost.io basic client
 description:         Simple Blockfrost clients for use with transformers or mtl
 homepage:            https://github.com/blockfrost/blockfrost-haskell
@@ -14,9 +14,10 @@
 
 
 extra-source-files:
-    CHANGELOG.md
     LICENSE
     README.md
+extra-doc-files:
+    CHANGELOG.md
 
 flag BuildFast
      Default: True
@@ -61,10 +62,11 @@
                       , Blockfrost.Client.Cardano.Pools
                       , Blockfrost.Client.Cardano.Scripts
                       , Blockfrost.Client.Cardano.Transactions
+                      , Blockfrost.Client.Cardano.Utils
                       , Blockfrost.Client.IPFS
                       , Blockfrost.Client.NutLink
    build-depends:       base                     >= 4.7 && < 5
-                      , blockfrost-api           >= 0.7.1
+                      , blockfrost-api           >= 0.9
                       , blockfrost-client-core   ^>= 0.6
                       , bytestring
                       , directory
@@ -72,7 +74,7 @@
                       , filepath
                       , text
                       , mtl
-                      , servant                  >= 0.18 && < 0.20
+                      , servant                  >= 0.18 && < 0.21
                       , servant-client
                       , servant-client-core
 
diff --git a/src/Blockfrost/Client.hs b/src/Blockfrost/Client.hs
--- a/src/Blockfrost/Client.hs
+++ b/src/Blockfrost/Client.hs
@@ -31,10 +31,12 @@
   , getAccountMirs'
   , getAccountAssociatedAddresses
   , getAccountAssociatedAddresses'
+  , getAccountAssociatedAddressesTotal
   , getAccountAssociatedAssets
   , getAccountAssociatedAssets'
     -- Cardano - Addresses
   , getAddressInfo
+  , getAddressInfoExtended
   , getAddressDetails
   , getAddressUtxos
   , getAddressUtxos'
@@ -101,6 +103,8 @@
     -- Cardano - Pools
   , listPools
   , listPools'
+  , listPoolsExtended
+  , listPoolsExtended'
   , listRetiredPools
   , listRetiredPools'
   , listRetiringPools
@@ -139,6 +143,10 @@
   , getTxMetadataCBOR
   , getTxRedeemers
   , submitTx
+    -- Cardano - Utils
+  , deriveShelleyAddress
+  , txEvaluate
+  , txEvaluateUTXOs
     -- IPFS
   , ipfsAdd
   , ipfsGateway
@@ -174,6 +182,7 @@
 import Blockfrost.Client.Cardano.Pools
 import Blockfrost.Client.Cardano.Scripts
 import Blockfrost.Client.Cardano.Transactions
+import Blockfrost.Client.Cardano.Utils
 import Blockfrost.Client.IPFS
 import Blockfrost.Client.NutLink
 import Blockfrost.Client.Types
diff --git a/src/Blockfrost/Client/Cardano/Accounts.hs b/src/Blockfrost/Client/Cardano/Accounts.hs
--- a/src/Blockfrost/Client/Cardano/Accounts.hs
+++ b/src/Blockfrost/Client/Cardano/Accounts.hs
@@ -16,6 +16,7 @@
   , getAccountMirs'
   , getAccountAssociatedAddresses
   , getAccountAssociatedAddresses'
+  , getAccountAssociatedAddressesTotal
   , getAccountAssociatedAssets
   , getAccountAssociatedAssets'
   ) where
@@ -145,6 +146,12 @@
 -- that accepts 'Paged' argument.
 getAccountAssociatedAddresses :: MonadBlockfrost m => Address -> m [AddressAssociated]
 getAccountAssociatedAddresses a = getAccountAssociatedAddresses' a def def
+
+getAccountAssociatedAddressesTotal_ :: MonadBlockfrost m => Project -> Address -> m AddressAssociatedTotal
+getAccountAssociatedAddressesTotal_ = _accountAssociatedTotal . accountsClient
+
+getAccountAssociatedAddressesTotal :: MonadBlockfrost m => Address -> m AddressAssociatedTotal
+getAccountAssociatedAddressesTotal a = go (`getAccountAssociatedAddressesTotal_` a)
 
 getAccountAssociatedAssets_ :: MonadBlockfrost m => Project -> Address -> Paged -> SortOrder -> m [Amount]
 getAccountAssociatedAssets_ = _accountAssociatedAssets . accountsClient
diff --git a/src/Blockfrost/Client/Cardano/Addresses.hs b/src/Blockfrost/Client/Cardano/Addresses.hs
--- a/src/Blockfrost/Client/Cardano/Addresses.hs
+++ b/src/Blockfrost/Client/Cardano/Addresses.hs
@@ -2,6 +2,7 @@
 
 module Blockfrost.Client.Cardano.Addresses
   ( getAddressInfo
+  , getAddressInfoExtended
   , getAddressDetails
   , getAddressUtxos
   , getAddressUtxos'
@@ -24,6 +25,13 @@
 -- | Obtain information about a specific address.
 getAddressInfo :: MonadBlockfrost m => Address -> m AddressInfo
 getAddressInfo a = go (`getAddressInfo_` a)
+
+getAddressInfoExtended_ :: MonadBlockfrost m => Project -> Address -> m AddressInfoExtended
+getAddressInfoExtended_ = _addressInfoExtended . addressesClient
+
+-- | Obtain extended information about a specific address.
+getAddressInfoExtended :: MonadBlockfrost m => Address -> m AddressInfoExtended
+getAddressInfoExtended a = go (`getAddressInfoExtended_` a)
 
 getAddressDetails_ :: MonadBlockfrost m => Project -> Address -> m AddressDetails
 getAddressDetails_ = _addressDetails . addressesClient
diff --git a/src/Blockfrost/Client/Cardano/Assets.hs b/src/Blockfrost/Client/Cardano/Assets.hs
--- a/src/Blockfrost/Client/Cardano/Assets.hs
+++ b/src/Blockfrost/Client/Cardano/Assets.hs
@@ -12,6 +12,7 @@
   , getAssetAddresses'
   , getAssetsByPolicy
   , getAssetsByPolicy'
+  , parseStandardMetadata
   ) where
 
 import Blockfrost.API
@@ -42,7 +43,7 @@
 
 -- | Information about a specific asset
 getAssetDetails :: MonadBlockfrost m => AssetId -> m AssetDetails
-getAssetDetails a = go (`getAssetDetails_` a)
+getAssetDetails a =  parseStandardMetadataInDetails <$> go (`getAssetDetails_` a)
 
 getAssetHistory_ :: MonadBlockfrost m => Project -> AssetId -> Paged -> SortOrder -> m [AssetHistory]
 getAssetHistory_ = _assetHistory . assetsClient
diff --git a/src/Blockfrost/Client/Cardano/Pools.hs b/src/Blockfrost/Client/Cardano/Pools.hs
--- a/src/Blockfrost/Client/Cardano/Pools.hs
+++ b/src/Blockfrost/Client/Cardano/Pools.hs
@@ -3,6 +3,8 @@
 module Blockfrost.Client.Cardano.Pools
   ( listPools
   , listPools'
+  , listPoolsExtended
+  , listPoolsExtended'
   , listRetiredPools
   , listRetiredPools'
   , listRetiringPools
@@ -42,6 +44,22 @@
 -- that accepts 'Paged' argument.
 listPools :: MonadBlockfrost m => m [PoolId]
 listPools = listPools' def def
+
+listPoolsExtended_ :: MonadBlockfrost m => Project -> Paged -> SortOrder -> m [Pool]
+listPoolsExtended_ = _listPoolsExtended . poolsClient
+
+-- | List registered stake pools with additional info
+-- Allows custom paging and ordering using 'Paged' and 'SortOrder'.
+listPoolsExtended' :: MonadBlockfrost m => Paged -> SortOrder -> m [Pool]
+listPoolsExtended' pg s = go (\p -> listPoolsExtended_ p pg s)
+
+-- | List registered stake pools with additional info.
+--
+-- Queries 100 entries. To query all entries use 'Blockfrost.Client.Core.allPages'
+-- with principled variant of this function (suffixed with @'@)
+-- that accepts 'Paged' argument.
+listPoolsExtended :: MonadBlockfrost m => m [Pool]
+listPoolsExtended = listPoolsExtended' def def
 
 listRetiredPools_ :: MonadBlockfrost m => Project -> Paged -> SortOrder -> m [PoolEpoch]
 listRetiredPools_ = _listRetiredPools . poolsClient
diff --git a/src/Blockfrost/Client/Cardano/Utils.hs b/src/Blockfrost/Client/Cardano/Utils.hs
new file mode 100644
--- /dev/null
+++ b/src/Blockfrost/Client/Cardano/Utils.hs
@@ -0,0 +1,62 @@
+-- | Utility queries
+
+module Blockfrost.Client.Cardano.Utils
+  ( deriveShelleyAddress
+  , txEvaluate
+  , txEvaluateUTXOs
+  ) where
+
+import Data.Text (Text)
+import Blockfrost.API
+import Blockfrost.Client.Types
+import Blockfrost.Types
+
+utilsClient :: MonadBlockfrost m => Project -> UtilsAPI (AsClientT m)
+utilsClient = fromServant . _utils . cardanoClient
+
+-- | Derive Shelley address from xpub key
+deriveShelleyAddress_
+  :: MonadBlockfrost m
+  => Project
+  -> Text -- ^ Hexadecimal xpub
+  -> Integer -- ^ Account role
+  -> Integer -- ^ Address index
+  -> m DerivedAddress
+deriveShelleyAddress_ = _deriveAddr . utilsClient
+
+-- | Derive Shelley address from xpub key
+deriveShelleyAddress
+  :: MonadBlockfrost m
+  => Text -- ^ Hexadecimal xpub
+  -> Integer -- ^ Account role
+  -> Integer -- ^ Address index
+  -> m DerivedAddress
+deriveShelleyAddress xpub role index = go (\p -> deriveShelleyAddress_ p xpub role index)
+
+txEvaluate_
+  :: MonadBlockfrost m
+  => Project
+  -> CBORString
+  -> m TxEval
+txEvaluate_ = _txEvaluate . utilsClient
+
+-- | Submit a transaction for execution units evaluation
+txEvaluate
+  :: MonadBlockfrost m
+  => CBORString
+  -> m TxEval
+txEvaluate txCbor = go (`txEvaluate_` txCbor)
+
+txEvaluateUTXOs_
+  :: MonadBlockfrost m
+  => Project
+  -> TxEvalInput
+  -> m TxEval
+txEvaluateUTXOs_ = _txEvaluateUTXOs . utilsClient
+
+-- | Submit a transaction for execution units evaluation (additional UTXO set)
+txEvaluateUTXOs
+  :: MonadBlockfrost m
+  => TxEvalInput
+  -> m TxEval
+txEvaluateUTXOs txei = go (`txEvaluateUTXOs_` txei)
diff --git a/src/Blockfrost/Client/Types.hs b/src/Blockfrost/Client/Types.hs
--- a/src/Blockfrost/Client/Types.hs
+++ b/src/Blockfrost/Client/Types.hs
@@ -64,7 +64,9 @@
   liftBlockfrostClient act = BlockfrostClientT $ do
     (env, _proj) <- ask
     liftIO (runClientM act env)
-      >>= either (throwError . fromServantClientError) pure
+      >>= either
+            (throwError . fromServantClientError)
+            pure
   getConf = BlockfrostClientT ask
 
 instance MonadBlockfrost ClientM where
@@ -72,13 +74,24 @@
   getConf = newClientConfig
 
 instance MonadBlockfrost IO where
-  liftBlockfrostClient act = getConf >>= \(env, _prj) -> runClientM act env >>= either (error . show) pure
+  liftBlockfrostClient act =
+    getConf
+      >>= \(env, _prj) ->
+        runClientM act env
+          >>= either
+                (error . show)
+                pure
   getConf = newClientConfig
 
-apiClient :: MonadBlockfrost m => BlockfrostAPI (AsClientT m)
+apiClient
+  :: MonadBlockfrost m
+  => BlockfrostAPI (AsClientT m)
 apiClient = genericClientHoist liftBlockfrostClient
 
-api0Client :: MonadBlockfrost m => Project -> BlockfrostV0API (AsClientT m)
+api0Client
+  :: MonadBlockfrost m
+  => Project
+  -> BlockfrostV0API (AsClientT m)
 api0Client = fromServant . _apiV0 apiClient
 
 -- ** Client runner
@@ -92,7 +105,8 @@
 
 -- | Run @BlockfrostClientT@, using provided @Project@
 runBlockfrostClientT
-  :: MonadIO m => Project
+  :: MonadIO m
+  => Project
   -> BlockfrostClientT m a
   -> m (Either BlockfrostError a)
 runBlockfrostClientT proj act = do
@@ -125,14 +139,26 @@
 
 -- ** Service clients
 
-commonClient :: MonadBlockfrost m => Project -> CommonAPI (AsClientT m)
+commonClient
+  :: MonadBlockfrost m
+  => Project
+  -> CommonAPI (AsClientT m)
 commonClient = fromServant . _common . api0Client
 
-cardanoClient :: MonadBlockfrost m => Project -> CardanoAPI (AsClientT m)
+cardanoClient
+  :: MonadBlockfrost m
+  => Project
+  -> CardanoAPI (AsClientT m)
 cardanoClient = fromServant . _cardano . api0Client
 
-ipfsClient :: MonadBlockfrost m => Project -> IPFSAPI (AsClientT m)
+ipfsClient
+  :: MonadBlockfrost m
+  => Project
+  -> IPFSAPI (AsClientT m)
 ipfsClient = fromServant . _ipfs . api0Client
 
-nutLinkClient :: MonadBlockfrost m => Project -> NutLinkAPI (AsClientT m)
+nutLinkClient
+  :: MonadBlockfrost m
+  => Project
+  -> NutLinkAPI (AsClientT m)
 nutLinkClient = fromServant . _nutLink . api0Client
