diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html)
 
+## 0.47.1
+### Fixed
+- Fix serialization bugs for web data types.
+
 ## 0.47.0
 ### Added
 - Support for legacy block endpoints.
diff --git a/haskoin-store.cabal b/haskoin-store.cabal
--- a/haskoin-store.cabal
+++ b/haskoin-store.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 936d1c352473fe70b8f245dc68fdf18244c111477e0489bfdcf6e6443727962f
+-- hash: ff4a7aa140e43d4d77540711eef740057152592f5a48cdcd968ab1eca8176fbe
 
 name:           haskoin-store
-version:        0.47.0
+version:        0.47.1
 synopsis:       Storage and index for Bitcoin and Bitcoin Cash
 description:    Please see the README on GitHub at <https://github.com/haskoin/haskoin-store#readme>
 category:       Bitcoin, Finance, Network
@@ -61,7 +61,7 @@
     , hashable >=1.3.0.0
     , haskoin-core >=0.19.0
     , haskoin-node >=0.17.0
-    , haskoin-store-data ==0.47.0
+    , haskoin-store-data ==0.47.1
     , hedis >=0.12.13
     , http-types >=0.12.3
     , lens >=4.18.1
@@ -113,7 +113,7 @@
     , haskoin-core >=0.19.0
     , haskoin-node >=0.17.0
     , haskoin-store
-    , haskoin-store-data ==0.47.0
+    , haskoin-store-data ==0.47.1
     , hedis >=0.12.13
     , http-types >=0.12.3
     , lens >=4.18.1
@@ -170,7 +170,7 @@
     , haskoin-core >=0.19.0
     , haskoin-node >=0.17.0
     , haskoin-store
-    , haskoin-store-data ==0.47.0
+    , haskoin-store-data ==0.47.1
     , hedis >=0.12.13
     , hspec >=2.7.1
     , http-types >=0.12.3
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
@@ -449,9 +449,9 @@
         blockDataToJSON
     pathCompact
         (GetBlocks <$> param <*> paramDef)
-        scottyBlocks
-        (list . blockDataToEncoding)
-        (json_list blockDataToJSON)
+        (fmap SerialList . scottyBlocks)
+        (\n -> list (blockDataToEncoding n) . getSerialList)
+        (\n -> json_list blockDataToJSON  n . getSerialList)
     pathCompact
         (GetBlockRaw <$> paramLazy)
         scottyBlockRaw
@@ -469,19 +469,19 @@
         (const toJSON)
     pathCompact
         (GetBlockLatest <$> paramDef)
-        scottyBlockLatest
-        (list . blockDataToEncoding)
-        (json_list blockDataToJSON)
+        (fmap SerialList . scottyBlockLatest)
+        (\n -> list (blockDataToEncoding n) . getSerialList)
+        (\n -> json_list blockDataToJSON n . getSerialList)
     pathPretty
         (GetBlockHeight <$> paramLazy <*> paramDef)
-        scottyBlockHeight
-        (list . blockDataToEncoding)
-        (json_list blockDataToJSON)
+        (fmap SerialList . scottyBlockHeight)
+        (\n -> list (blockDataToEncoding n) . getSerialList)
+        (\n -> json_list blockDataToJSON n . getSerialList)
     pathCompact
         (GetBlockHeights <$> param <*> paramDef)
-        scottyBlockHeights
-        (list . blockDataToEncoding)
-        (json_list blockDataToJSON)
+        (fmap SerialList . scottyBlockHeights)
+        (\n -> list (blockDataToEncoding n) . getSerialList)
+        (\n -> json_list blockDataToJSON n . getSerialList)
     pathCompact
         (GetBlockHeightRaw <$> paramLazy)
         scottyBlockHeightRaw
@@ -515,9 +515,9 @@
         transactionToJSON
     pathCompact
         (GetTxs <$> param)
-        scottyTxs
-        (list . transactionToEncoding)
-        (json_list transactionToJSON)
+        (fmap SerialList . scottyTxs)
+        (\n -> list (transactionToEncoding n) . getSerialList)
+        (\n -> json_list transactionToJSON n . getSerialList)
     pathCompact
         (GetTxRaw <$> paramLazy)
         scottyTxRaw
@@ -530,9 +530,9 @@
         (const toJSON)
     pathCompact
         (GetTxsBlock <$> paramLazy)
-        scottyTxsBlock
-        (list . transactionToEncoding)
-        (json_list transactionToJSON)
+        (fmap SerialList . scottyTxsBlock)
+        (\n -> list (transactionToEncoding n) . getSerialList)
+        (\n -> json_list transactionToJSON n . getSerialList)
     pathCompact
         (GetTxsBlockRaw <$> paramLazy)
         scottyTxsBlockRaw
@@ -550,30 +550,30 @@
         (const toJSON)
     pathPretty
         (GetMempool <$> paramOptional <*> parseOffset)
-        scottyMempool
+        (fmap SerialList . scottyMempool)
         (const toEncoding)
         (const toJSON)
     -- Address Paths
     pathPretty
         (GetAddrTxs <$> paramLazy <*> parseLimits)
-        scottyAddrTxs
+        (fmap SerialList . scottyAddrTxs)
         (const toEncoding)
         (const toJSON)
     pathCompact
         (GetAddrsTxs <$> param <*> parseLimits)
-        scottyAddrsTxs
+        (fmap SerialList . scottyAddrsTxs)
         (const toEncoding)
         (const toJSON)
     pathCompact
         (GetAddrTxsFull <$> paramLazy <*> parseLimits)
-        scottyAddrTxsFull
-        (list . transactionToEncoding)
-        (json_list transactionToJSON)
+        (fmap SerialList . scottyAddrTxsFull)
+        (\n -> list (transactionToEncoding n) . getSerialList)
+        (\n -> json_list transactionToJSON n . getSerialList)
     pathCompact
         (GetAddrsTxsFull <$> param <*> parseLimits)
-        scottyAddrsTxsFull
-        (list . transactionToEncoding)
-        (json_list transactionToJSON)
+        (fmap SerialList . scottyAddrsTxsFull)
+        (\n -> list (transactionToEncoding n) . getSerialList)
+        (\n -> json_list transactionToJSON n . getSerialList)
     pathPretty
         (GetAddrBalance <$> paramLazy)
         scottyAddrBalance
@@ -581,19 +581,19 @@
         balanceToJSON
     pathCompact
         (GetAddrsBalance <$> param)
-        scottyAddrsBalance
-        (list . balanceToEncoding)
-        (json_list balanceToJSON)
+        (fmap SerialList . scottyAddrsBalance)
+        (\n -> list (balanceToEncoding n) . getSerialList)
+        (\n -> json_list balanceToJSON n . getSerialList)
     pathPretty
         (GetAddrUnspent <$> paramLazy <*> parseLimits)
-        scottyAddrUnspent
-        (list . unspentToEncoding)
-        (json_list unspentToJSON)
+        (fmap SerialList . scottyAddrUnspent)
+        (\n -> list (unspentToEncoding n) . getSerialList)
+        (\n -> json_list unspentToJSON n . getSerialList)
     pathCompact
         (GetAddrsUnspent <$> param <*> parseLimits)
-        scottyAddrsUnspent
-        (list . unspentToEncoding)
-        (json_list unspentToJSON)
+        (fmap SerialList . scottyAddrsUnspent)
+        (\n -> list (unspentToEncoding n) . getSerialList)
+        (\n -> json_list unspentToJSON n . getSerialList)
     -- XPubs
     pathPretty
         (GetXPub <$> paramLazy <*> paramDef <*> paramDef)
@@ -602,28 +602,28 @@
         (const toJSON)
     pathPretty
         (GetXPubTxs <$> paramLazy <*> paramDef <*> parseLimits <*> paramDef)
-        scottyXPubTxs
+        (fmap SerialList . scottyXPubTxs)
         (const toEncoding)
         (const toJSON)
     pathCompact
         (GetXPubTxsFull <$> paramLazy <*> paramDef <*> parseLimits <*> paramDef)
-        scottyXPubTxsFull
-        (list . transactionToEncoding)
-        (json_list transactionToJSON)
+        (fmap SerialList . scottyXPubTxsFull)
+        (\n -> list (transactionToEncoding n) . getSerialList)
+        (\n -> json_list transactionToJSON n . getSerialList)
     pathPretty
         (GetXPubBalances <$> paramLazy <*> paramDef <*> paramDef)
-        scottyXPubBalances
-        (list . xPubBalToEncoding)
-        (json_list xPubBalToJSON)
+        (fmap SerialList . scottyXPubBalances)
+        (\n -> list (xPubBalToEncoding n) . getSerialList)
+        (\n -> json_list xPubBalToJSON n . getSerialList)
     pathPretty
         (GetXPubUnspent <$> paramLazy <*> paramDef <*> parseLimits <*> paramDef)
-        scottyXPubUnspent
-        (list . xPubUnspentToEncoding)
-        (json_list xPubUnspentToJSON)
+        (fmap SerialList . scottyXPubUnspent)
+        (\n -> list (xPubUnspentToEncoding n) . getSerialList)
+        (\n -> json_list xPubUnspentToJSON n . getSerialList)
     -- Network
     pathPretty
         (GetPeers & return)
-        scottyPeers
+        (fmap SerialList . scottyPeers)
         (const toEncoding)
         (const toJSON)
     pathPretty
