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: 41751bd938114c60f1fd0534ea2e338bc2c69650f10bac7ca77e37e5fa330b48
+-- hash: 454857d6641206426edf1b345b6c3325c11aa449009fe4abc4e2cf89dfcaefee
 
 name:           haskoin-store
-version:        0.25.3
+version:        0.25.4
 synopsis:       Storage and index for Bitcoin and Bitcoin Cash
 description:    Store and index Bitcoin or Bitcoin Cash blocks, transactions, balances and unspent outputs.
                 All data is available via REST API in JSON or binary format.
@@ -57,7 +57,7 @@
     , hashable >=1.3.0.0
     , haskoin-core >=0.13.3
     , haskoin-node >=0.13.0
-    , haskoin-store-data ==0.25.3
+    , haskoin-store-data ==0.25.4
     , hedis >=0.12.13
     , http-types >=0.12.3
     , monad-logger >=0.3.32
@@ -99,7 +99,7 @@
     , haskoin-core >=0.13.3
     , haskoin-node >=0.13.0
     , haskoin-store
-    , haskoin-store-data ==0.25.3
+    , haskoin-store-data ==0.25.4
     , monad-logger >=0.3.32
     , mtl >=2.2.2
     , nqe >=0.6.1
@@ -149,7 +149,7 @@
     , hashable >=1.3.0.0
     , haskoin-core >=0.13.3
     , haskoin-node >=0.13.0
-    , haskoin-store-data ==0.25.3
+    , haskoin-store-data ==0.25.4
     , hedis >=0.12.13
     , hspec >=2.7.1
     , http-types >=0.12.3
diff --git a/src/Haskoin/Store/Logic.hs b/src/Haskoin/Store/Logic.hs
--- a/src/Haskoin/Store/Logic.hs
+++ b/src/Haskoin/Store/Logic.hs
@@ -180,7 +180,7 @@
             , blockDataHeader = nodeHeader n
             , blockDataSize = fromIntegral (B.length (encode b))
             , blockDataTxs = map txHash (blockTxns b)
-            , blockDataWeight = fromIntegral w
+            , blockDataWeight = if getSegWit net then fromIntegral w else 0
             , blockDataSubsidy = subsidy
             , blockDataFees = cb_out_val - subsidy
             , blockDataOutputs = ts_out_val
@@ -212,12 +212,9 @@
     br pos = BlockRef {blockRefHeight = nodeHeight n, blockRefPos = pos}
     w =
         let s =
-                B.length
-                    (encode
-                         b
-                             { blockTxns =
-                                   map (\t -> t {txWitness = []}) (blockTxns b)
-                             })
+                B.length $
+                encode
+                    b {blockTxns = map (\t -> t {txWitness = []}) (blockTxns b)}
             x = B.length (encode b)
          in s * 3 + x
 
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
@@ -73,7 +73,8 @@
                                                 Transaction (..), TxData (..),
                                                 TxId (..), UnixTime, Unspent,
                                                 XPubBal (..), XPubSpec (..),
-                                                balanceToEncoding, isCoinbase,
+                                                balanceToEncoding,
+                                                blockDataToEncoding, isCoinbase,
                                                 nullBalance, transactionData,
                                                 transactionToEncoding,
                                                 unspentToEncoding,
@@ -324,7 +325,7 @@
         then do
             refuseLargeBlock limits b
             rawBlock b >>= protoSerial proto
-        else protoSerial proto (pruneTx n b)
+        else protoSerialNet proto blockDataToEncoding (pruneTx n b)
 
 scottyBlock :: (MonadUnliftIO m, MonadLoggerIO m) => Bool -> WebT m ()
 scottyBlock raw = do
@@ -341,7 +342,7 @@
         then do
             refuseLargeBlock limits b
             rawBlock b >>= protoSerial proto
-        else protoSerial proto (pruneTx n b)
+        else protoSerialNet proto blockDataToEncoding (pruneTx n b)
 
 scottyBlockHeight :: (MonadUnliftIO m, MonadLoggerIO m) => Bool -> WebT m ()
 scottyBlockHeight raw = do
@@ -360,7 +361,7 @@
         else do
             blocks <- catMaybes <$> mapM getBlock hs
             let blocks' = map (pruneTx n) blocks
-            protoSerial proto blocks'
+            protoSerialNet proto (list . blockDataToEncoding) blocks'
 
 scottyBlockTime :: (MonadUnliftIO m, MonadLoggerIO m) => Bool -> WebT m ()
 scottyBlockTime raw = do
@@ -377,7 +378,7 @@
                  Just d -> do
                      refuseLargeBlock limits d
                      Just <$> rawBlock d
-        else maybeSerial proto m
+        else maybeSerialNet proto blockDataToEncoding m
 
 scottyBlockHeights :: (MonadUnliftIO m, MonadLoggerIO m) => WebT m ()
 scottyBlockHeights = do
@@ -387,7 +388,7 @@
     proto <- setupBin
     bhs <- concat <$> mapM getBlocksAtHeight (heights :: [BlockHeight])
     blocks <- map (pruneTx n) . catMaybes <$> mapM getBlock bhs
-    protoSerial proto blocks
+    protoSerialNet proto (list . blockDataToEncoding) blocks
 
 scottyBlockLatest :: (MonadUnliftIO m, MonadLoggerIO m) => WebT m ()
 scottyBlockLatest = do
@@ -397,7 +398,7 @@
     getBestBlock >>= \case
         Just h -> do
             blocks <- reverse <$> go 100 n h
-            protoSerial proto blocks
+            protoSerialNet proto (list . blockDataToEncoding) blocks
         Nothing -> S.raise ThingNotFound
   where
     go 0 _ _ = return []
@@ -420,7 +421,7 @@
     n <- parseNoTx
     proto <- setupBin
     bks <- map (pruneTx n) . catMaybes <$> mapM getBlock (nub bhs)
-    protoSerial proto bks
+    protoSerialNet proto (list . blockDataToEncoding) bks
 
 scottyMempool :: (MonadUnliftIO m, MonadLoggerIO m) => WebT m ()
 scottyMempool = do
