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.3
+### Fixed
+- Fix serialization bug with unspents.
+
 ## 0.47.2
 ### Fixed
 - Fix serialization bug for health check.
diff --git a/haskoin-store-data.cabal b/haskoin-store-data.cabal
--- a/haskoin-store-data.cabal
+++ b/haskoin-store-data.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 26bfc2d99799fc52417601d4b2fa0ce25a5981df63ad79236d8567dba16d80cb
+-- hash: 120e101c54350d43b5d4ca62bc4f525b79deb06f7a8344f3b5799d42c8db6a0b
 
 name:           haskoin-store-data
-version:        0.47.2
+version:        0.47.3
 synopsis:       Data for Haskoin Store
 description:    Please see the README on GitHub at <https://github.com/haskoin/haskoin-store#readme>
 category:       Bitcoin, Finance, Network
diff --git a/src/Haskoin/Store/Data.hs b/src/Haskoin/Store/Data.hs
--- a/src/Haskoin/Store/Data.hs
+++ b/src/Haskoin/Store/Data.hs
@@ -237,27 +237,26 @@
 
 instance Serial XPubSpec where
     serialize XPubSpec {xPubSpecKey = k, xPubDeriveType = t} = do
-        serialize (xPubDepth k)
-        serialize (xPubParent k)
-        serialize (xPubIndex k)
+        putWord8 (xPubDepth k)
+        putWord32be (xPubParent k)
+        putWord32be (xPubIndex k)
         serialize (xPubChain k)
         serialize (wrapPubKey True (xPubKey k))
         serialize t
     deserialize = do
-        d <- deserialize
-        p <- deserialize
-        i <- deserialize
+        d <- getWord8
+        p <- getWord32be
+        i <- getWord32be
         c <- deserialize
         k <- deserialize
         t <- deserialize
-        let x =
-                XPubKey
-                    { xPubDepth = d
-                    , xPubParent = p
-                    , xPubIndex = i
-                    , xPubChain = c
-                    , xPubKey = pubKeyPoint k
-                    }
+        let x = XPubKey
+                { xPubDepth = d
+                , xPubParent = p
+                , xPubIndex = i
+                , xPubChain = c
+                , xPubKey = pubKeyPoint k
+                }
         return XPubSpec {xPubSpecKey = x, xPubDeriveType = t}
 
 instance Serialize XPubSpec where
@@ -511,14 +510,14 @@
         serialize unspentBlock
         serialize unspentPoint
         putWord64be unspentAmount
-        serialize unspentScript
+        putLengthBytes unspentScript
         putMaybe serialize unspentAddress
 
     deserialize = do
         unspentBlock <- deserialize
         unspentPoint <- deserialize
         unspentAmount <- getWord64be
-        unspentScript <- deserialize
+        unspentScript <- getLengthBytes
         unspentAddress <- getMaybe deserialize
         return Unspent{..}
 
@@ -746,7 +745,7 @@
     serialize StoreInput{..} = do
         putWord8 0x01
         serialize inputPoint
-        serialize inputSequence
+        putWord32be inputSequence
         putLengthBytes inputSigScript
         putLengthBytes inputPkScript
         putWord64be inputAmount
@@ -958,7 +957,7 @@
         { outputAmount  :: !Word64
         , outputScript  :: !ByteString
         , outputSpender :: !(Maybe Spender)
-        , outputAddr :: !(Maybe Address)
+        , outputAddr    :: !(Maybe Address)
         }
     deriving (Show, Read, Eq, Ord, Generic, Hashable, NFData)
 
