diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -127,7 +127,7 @@
     tickerURL :: !String,
     priceHistoryURL :: !String,
     noBlockchainInfo :: !Bool,
-    noSlow :: !Bool,
+    noXPub :: !Bool,
     healthCheckInterval :: !Int,
     bloom :: !Bool
   }
@@ -205,8 +205,8 @@
     env "PRICE_HISTORY_URL" priceHistoryString pure
   noBlockchainInfo <-
     env "NO_BLOCKCHAIN_INFO" False parseBool
-  noSlow <-
-    env "NO_SLOW" False parseBool
+  noXPub <-
+    env "NO_XPUB" False parseBool
   healthCheckInterval <-
     env "HEALTH_CHECK_INTERVAL" 30 readMaybe
   bloom <-
@@ -516,10 +516,10 @@
     flag c.noBlockchainInfo True $
       long "no-blockchain-info"
         <> help "Disable Blockchain.info-style API endpoints"
-  noSlow <-
-    flag c.noSlow True $
-      long "no-slow"
-        <> help "Disable potentially slow API endpoints"
+  noXPub <-
+    flag c.noXPub True $
+      long "no-xpub"
+        <> help "Disable extended public key support"
   healthCheckInterval <-
     option auto $
       metavar "SECONDS"
@@ -608,7 +608,7 @@
               tickerRefresh = cfg.tickerRefresh,
               tickerURL = cfg.tickerURL,
               priceHistoryURL = cfg.priceHistoryURL,
-              noSlow = cfg.noSlow,
+              noXPub = cfg.noXPub,
               noBlockchainInfo = cfg.noBlockchainInfo,
               healthCheckInterval = cfg.healthCheckInterval
             }
diff --git a/haskoin-store.cabal b/haskoin-store.cabal
--- a/haskoin-store.cabal
+++ b/haskoin-store.cabal
@@ -1,17 +1,17 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.37.0.
+-- This file has been generated from package.yaml by hpack version 0.38.0.
 --
 -- see: https://github.com/sol/hpack
 
 name:           haskoin-store
-version:        1.5.14
+version:        1.5.16
 synopsis:       Storage and index for Bitcoin and Bitcoin Cash
-description:    Please see the README on GitHub at <https://github.com/haskoin/haskoin-store#readme>
+description:    Please see the README on GitHub at <https://github.com/jprupp/haskoin-store#readme>
 category:       Bitcoin, Finance, Network
-homepage:       http://github.com/haskoin/haskoin-store#readme
-bug-reports:    http://github.com/haskoin/haskoin-store/issues
-author:         Jean-Pierre Rupp
+homepage:       http://github.com/jprupp/haskoin-store#readme
+bug-reports:    http://github.com/jprupp/haskoin-store/issues
+author:         JP Rupp
 maintainer:     jprupp@protonmail.ch
 license:        MIT
 license-file:   LICENSE
@@ -19,7 +19,7 @@
 
 source-repository head
   type: git
-  location: https://github.com/haskoin/haskoin-store.git
+  location: https://github.com/jprupp/haskoin-store.git
 
 library
   exposed-modules:
@@ -54,7 +54,7 @@
     , hashtables >=1.2.4.2
     , haskoin-core >=1.0.0
     , haskoin-node >=1.0.0
-    , haskoin-store-data ==1.4.0
+    , haskoin-store-data ==1.5.16
     , hedis >=0.12.13
     , http-types >=0.12.3
     , lens >=4.18.1
@@ -108,7 +108,7 @@
     , haskoin-core >=1.0.0
     , haskoin-node >=1.0.0
     , haskoin-store
-    , haskoin-store-data ==1.4.0
+    , haskoin-store-data ==1.5.16
     , hedis >=0.12.13
     , http-types >=0.12.3
     , lens >=4.18.1
@@ -167,7 +167,7 @@
     , haskoin-core >=1.0.0
     , haskoin-node >=1.0.0
     , haskoin-store
-    , haskoin-store-data ==1.4.0
+    , haskoin-store-data ==1.5.16
     , hedis >=0.12.13
     , hspec >=2.7.1
     , http-types >=0.12.3
diff --git a/src/Haskoin/Store/Cache.hs b/src/Haskoin/Store/Cache.hs
--- a/src/Haskoin/Store/Cache.hs
+++ b/src/Haskoin/Store/Cache.hs
@@ -732,9 +732,8 @@
           }
   Redis.setOpts l "locked" opts
 
-unlockIt :: (MonadLoggerIO m) => ByteString -> Bool -> CacheX m ()
-unlockIt l False = return ()
-unlockIt l True = void $ runRedis (Redis.del [l])
+unlockIt :: (MonadLoggerIO m) => ByteString -> CacheX m ()
+unlockIt l = void $ runRedis (Redis.del [l])
 
 withLock ::
   (MonadLoggerIO m, MonadUnliftIO m) =>
@@ -742,7 +741,7 @@
   CacheX m a ->
   CacheX m (Maybe a)
 withLock l f =
-  bracket (lockIt l) (unlockIt l) $ \case
+  bracket (lockIt l) (`when` unlockIt l) $ \case
     True -> Just <$> go
     False -> return Nothing
   where
diff --git a/src/Haskoin/Store/Web.hs b/src/Haskoin/Store/Web.hs
--- a/src/Haskoin/Store/Web.hs
+++ b/src/Haskoin/Store/Web.hs
@@ -254,7 +254,7 @@
     tickerRefresh :: !Int,
     tickerURL :: !String,
     priceHistoryURL :: !String,
-    noSlow :: !Bool,
+    noXPub :: !Bool,
     noBlockchainInfo :: !Bool,
     healthCheckInterval :: !Int
   }
@@ -516,7 +516,7 @@
         S.notFound $ raise ThingNotFound
   where
     priceUpdater session =
-      unless (config.noSlow || config.noBlockchainInfo)
+      unless config.noBlockchainInfo
         . price
           config.store.net
           session
@@ -673,104 +673,104 @@
     scottyHealth
     toEncoding
     toJSON
+  pathCompact
+    (GetMempool <$> paramOptional <*> parseOffset)
+    (fmap SerialList . scottyMempool)
+    toEncoding
+    toJSON
+  pathCompact
+    (GetBlocks <$> paramRequired <*> paramDef)
+    (fmap SerialList . scottyBlocks)
+    (list (marshalEncoding net) . (.get))
+    (json_list (marshalValue net) . (.get))
+  pathCompact
+    (GetBlockRaw <$> paramCapture)
+    scottyBlockRaw
+    toEncoding
+    toJSON
+  pathCompact
+    (GetBlockBestRaw & return)
+    scottyBlockBestRaw
+    toEncoding
+    toJSON
+  pathCompact
+    (GetBlockLatest <$> paramDef)
+    (fmap SerialList . scottyBlockLatest)
+    (list (marshalEncoding net) . (.get))
+    (json_list (marshalValue net) . (.get))
+  pathCompact
+    (GetBlockHeights <$> paramRequired <*> paramDef)
+    (fmap SerialList . scottyBlockHeights)
+    (list (marshalEncoding net) . (.get))
+    (json_list (marshalValue net) . (.get))
+  pathCompact
+    (GetBlockHeightRaw <$> paramCapture)
+    scottyBlockHeightRaw
+    toEncoding
+    toJSON
+  pathCompact
+    (GetBlockTimeRaw <$> paramCapture)
+    scottyBlockTimeRaw
+    toEncoding
+    toJSON
+  pathCompact
+    (GetBlockMTPRaw <$> paramCapture)
+    scottyBlockMTPRaw
+    toEncoding
+    toJSON
+  pathCompact
+    (GetTxs <$> paramRequired)
+    (fmap SerialList . scottyTxs)
+    (list (marshalEncoding net) . (.get))
+    (json_list (marshalValue net) . (.get))
+  pathCompact
+    (GetTxsRaw <$> paramRequired)
+    scottyTxsRaw
+    toEncoding
+    toJSON
+  pathCompact
+    (GetTxsBlock <$> paramCapture)
+    (fmap SerialList . scottyTxsBlock)
+    (list (marshalEncoding net) . (.get))
+    (json_list (marshalValue net) . (.get))
+  pathCompact
+    (GetTxsBlockRaw <$> paramCapture)
+    scottyTxsBlockRaw
+    toEncoding
+    toJSON
+  pathCompact
+    (GetTxAfter <$> paramCapture <*> paramCapture)
+    scottyTxAfter
+    toEncoding
+    toJSON
+  pathCompact
+    (GetAddrsTxs <$> paramRequired <*> parseLimits)
+    (fmap SerialList . scottyAddrsTxs)
+    toEncoding
+    toJSON
+  pathCompact
+    (GetAddrTxsFull <$> paramCapture <*> parseLimits)
+    (fmap SerialList . scottyAddrTxsFull)
+    (list (marshalEncoding net) . (.get))
+    (json_list (marshalValue net) . (.get))
+  pathCompact
+    (GetAddrsTxsFull <$> paramRequired <*> parseLimits)
+    (fmap SerialList . scottyAddrsTxsFull)
+    (list (marshalEncoding net) . (.get))
+    (json_list (marshalValue net) . (.get))
+  pathCompact
+    (GetAddrsBalance <$> paramRequired)
+    (fmap SerialList . scottyAddrsBalance)
+    (list (marshalEncoding net) . (.get))
+    (json_list (marshalValue net) . (.get))
+  pathCompact
+    (GetAddrsUnspent <$> paramRequired <*> parseLimits)
+    (fmap SerialList . scottyAddrsUnspent)
+    (list (marshalEncoding net) . (.get))
+    (json_list (marshalValue net) . (.get))
   S.get "/events" scottyEvents
-  unless cfg.noSlow $ do
-    S.get "/dbstats" scottyDbStats
-    pathCompact
-      (GetMempool <$> paramOptional <*> parseOffset)
-      (fmap SerialList . scottyMempool)
-      toEncoding
-      toJSON
-    pathCompact
-      (GetBlocks <$> paramRequired <*> paramDef)
-      (fmap SerialList . scottyBlocks)
-      (list (marshalEncoding net) . (.get))
-      (json_list (marshalValue net) . (.get))
-    pathCompact
-      (GetBlockRaw <$> paramCapture)
-      scottyBlockRaw
-      toEncoding
-      toJSON
-    pathCompact
-      (GetBlockBestRaw & return)
-      scottyBlockBestRaw
-      toEncoding
-      toJSON
-    pathCompact
-      (GetBlockLatest <$> paramDef)
-      (fmap SerialList . scottyBlockLatest)
-      (list (marshalEncoding net) . (.get))
-      (json_list (marshalValue net) . (.get))
-    pathCompact
-      (GetBlockHeights <$> paramRequired <*> paramDef)
-      (fmap SerialList . scottyBlockHeights)
-      (list (marshalEncoding net) . (.get))
-      (json_list (marshalValue net) . (.get))
-    pathCompact
-      (GetBlockHeightRaw <$> paramCapture)
-      scottyBlockHeightRaw
-      toEncoding
-      toJSON
-    pathCompact
-      (GetBlockTimeRaw <$> paramCapture)
-      scottyBlockTimeRaw
-      toEncoding
-      toJSON
-    pathCompact
-      (GetBlockMTPRaw <$> paramCapture)
-      scottyBlockMTPRaw
-      toEncoding
-      toJSON
-    pathCompact
-      (GetTxs <$> paramRequired)
-      (fmap SerialList . scottyTxs)
-      (list (marshalEncoding net) . (.get))
-      (json_list (marshalValue net) . (.get))
-    pathCompact
-      (GetTxsRaw <$> paramRequired)
-      scottyTxsRaw
-      toEncoding
-      toJSON
-    pathCompact
-      (GetTxsBlock <$> paramCapture)
-      (fmap SerialList . scottyTxsBlock)
-      (list (marshalEncoding net) . (.get))
-      (json_list (marshalValue net) . (.get))
-    pathCompact
-      (GetTxsBlockRaw <$> paramCapture)
-      scottyTxsBlockRaw
-      toEncoding
-      toJSON
-    pathCompact
-      (GetTxAfter <$> paramCapture <*> paramCapture)
-      scottyTxAfter
-      toEncoding
-      toJSON
-    pathCompact
-      (GetAddrsTxs <$> paramRequired <*> parseLimits)
-      (fmap SerialList . scottyAddrsTxs)
-      toEncoding
-      toJSON
-    pathCompact
-      (GetAddrTxsFull <$> paramCapture <*> parseLimits)
-      (fmap SerialList . scottyAddrTxsFull)
-      (list (marshalEncoding net) . (.get))
-      (json_list (marshalValue net) . (.get))
-    pathCompact
-      (GetAddrsTxsFull <$> paramRequired <*> parseLimits)
-      (fmap SerialList . scottyAddrsTxsFull)
-      (list (marshalEncoding net) . (.get))
-      (json_list (marshalValue net) . (.get))
-    pathCompact
-      (GetAddrsBalance <$> paramRequired)
-      (fmap SerialList . scottyAddrsBalance)
-      (list (marshalEncoding net) . (.get))
-      (json_list (marshalValue net) . (.get))
-    pathCompact
-      (GetAddrsUnspent <$> paramRequired <*> parseLimits)
-      (fmap SerialList . scottyAddrsUnspent)
-      (list (marshalEncoding net) . (.get))
-      (json_list (marshalValue net) . (.get))
+  S.get "/dbstats" scottyDbStats
+  unless cfg.noXPub $ do
     pathCompact
       (GetXPub <$> paramCapture <*> paramDef <*> paramDef)
       scottyXPub
@@ -801,40 +801,40 @@
       scottyDelXPub
       toEncoding
       toJSON
-    unless cfg.noBlockchainInfo $ do
-      S.post "/blockchain/multiaddr" scottyMultiAddr
-      S.get "/blockchain/multiaddr" scottyMultiAddr
-      S.get "/blockchain/balance" scottyShortBal
-      S.post "/blockchain/balance" scottyShortBal
-      S.get "/blockchain/rawaddr/:addr" scottyRawAddr
-      S.get "/blockchain/address/:addr" scottyRawAddr
-      S.get "/blockchain/xpub/:addr" scottyRawAddr
-      S.post "/blockchain/unspent" scottyBinfoUnspent
-      S.get "/blockchain/unspent" scottyBinfoUnspent
-      S.get "/blockchain/rawtx/:txid" scottyBinfoTx
-      S.get "/blockchain/rawblock/:block" scottyBinfoBlock
-      S.get "/blockchain/latestblock" scottyBinfoLatest
-      S.get "/blockchain/unconfirmed-transactions" scottyBinfoMempool
-      S.get "/blockchain/block-height/:height" scottyBinfoBlockHeight
-      S.get "/blockchain/blocks/:milliseconds" scottyBinfoBlocksDay
-      S.get "/blockchain/export-history" scottyBinfoHistory
-      S.post "/blockchain/export-history" scottyBinfoHistory
-      S.get "/blockchain/q/addresstohash/:addr" scottyBinfoAddrToHash
-      S.get "/blockchain/q/hashtoaddress/:hash" scottyBinfoHashToAddr
-      S.get "/blockchain/q/addrpubkey/:pubkey" scottyBinfoAddrPubkey
-      S.get "/blockchain/q/pubkeyaddr/:addr" scottyBinfoPubKeyAddr
-      S.get "/blockchain/q/hashpubkey/:pubkey" scottyBinfoHashPubkey
-      S.get "/blockchain/q/getblockcount" scottyBinfoGetBlockCount
-      S.get "/blockchain/q/latesthash" scottyBinfoLatestHash
-      S.get "/blockchain/q/bcperblock" scottyBinfoSubsidy
-      S.get "/blockchain/q/txtotalbtcoutput/:txid" scottyBinfoTotalOut
-      S.get "/blockchain/q/txtotalbtcinput/:txid" scottyBinfoTotalInput
-      S.get "/blockchain/q/txfee/:txid" scottyBinfoTxFees
-      S.get "/blockchain/q/txresult/:txid/:addr" scottyBinfoTxResult
-      S.get "/blockchain/q/getreceivedbyaddress/:addr" scottyBinfoReceived
-      S.get "/blockchain/q/getsentbyaddress/:addr" scottyBinfoSent
-      S.get "/blockchain/q/addressbalance/:addr" scottyBinfoAddrBalance
-      S.get "/blockchain/q/addressfirstseen/:addr" scottyFirstSeen
+  unless cfg.noBlockchainInfo $ do
+    S.post "/blockchain/multiaddr" scottyMultiAddr
+    S.get "/blockchain/multiaddr" scottyMultiAddr
+    S.get "/blockchain/balance" scottyShortBal
+    S.post "/blockchain/balance" scottyShortBal
+    S.get "/blockchain/rawaddr/:addr" scottyRawAddr
+    S.get "/blockchain/address/:addr" scottyRawAddr
+    S.get "/blockchain/xpub/:addr" scottyRawAddr
+    S.post "/blockchain/unspent" scottyBinfoUnspent
+    S.get "/blockchain/unspent" scottyBinfoUnspent
+    S.get "/blockchain/rawtx/:txid" scottyBinfoTx
+    S.get "/blockchain/rawblock/:block" scottyBinfoBlock
+    S.get "/blockchain/latestblock" scottyBinfoLatest
+    S.get "/blockchain/unconfirmed-transactions" scottyBinfoMempool
+    S.get "/blockchain/block-height/:height" scottyBinfoBlockHeight
+    S.get "/blockchain/blocks/:milliseconds" scottyBinfoBlocksDay
+    S.get "/blockchain/export-history" scottyBinfoHistory
+    S.post "/blockchain/export-history" scottyBinfoHistory
+    S.get "/blockchain/q/addresstohash/:addr" scottyBinfoAddrToHash
+    S.get "/blockchain/q/hashtoaddress/:hash" scottyBinfoHashToAddr
+    S.get "/blockchain/q/addrpubkey/:pubkey" scottyBinfoAddrPubkey
+    S.get "/blockchain/q/pubkeyaddr/:addr" scottyBinfoPubKeyAddr
+    S.get "/blockchain/q/hashpubkey/:pubkey" scottyBinfoHashPubkey
+    S.get "/blockchain/q/getblockcount" scottyBinfoGetBlockCount
+    S.get "/blockchain/q/latesthash" scottyBinfoLatestHash
+    S.get "/blockchain/q/bcperblock" scottyBinfoSubsidy
+    S.get "/blockchain/q/txtotalbtcoutput/:txid" scottyBinfoTotalOut
+    S.get "/blockchain/q/txtotalbtcinput/:txid" scottyBinfoTotalInput
+    S.get "/blockchain/q/txfee/:txid" scottyBinfoTxFees
+    S.get "/blockchain/q/txresult/:txid/:addr" scottyBinfoTxResult
+    S.get "/blockchain/q/getreceivedbyaddress/:addr" scottyBinfoReceived
+    S.get "/blockchain/q/getsentbyaddress/:addr" scottyBinfoSent
+    S.get "/blockchain/q/addressbalance/:addr" scottyBinfoAddrBalance
+    S.get "/blockchain/q/addressfirstseen/:addr" scottyFirstSeen
   where
     json_list f = toJSONList . map f
     net = cfg.store.net
