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: 27988a8740b2340e21ae4c0a14ef926f1904d73b09465e41bf6d4a11b9e3c1da
+-- hash: 0a701e28ce4d2ba69e0a284d87a37982111d904ea08b16228a83c754194396bf
 
 name:           haskoin-store-data
-version:        0.41.3
+version:        0.42.1
 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
@@ -93,6 +93,7 @@
     , binfoTxIndexBlock
     , binfoTransactionIndex
     , BinfoTxId(..)
+    , getBinfoTxId
     , BinfoMultiAddr(..)
     , binfoMultiAddrToJSON
     , binfoMultiAddrToEncoding
@@ -105,6 +106,14 @@
     , BinfoAddr(..)
     , parseBinfoAddr
     , BinfoWallet(..)
+    , BinfoUnspent(..)
+    , binfoUnspentToJSON
+    , binfoUnspentToEncoding
+    , binfoUnspentParseJSON
+    , BinfoUnspents(..)
+    , binfoUnspentsToJSON
+    , binfoUnspentsToEncoding
+    , binfoUnspentsParseJSON
     , BinfoTx(..)
     , relevantTxs
     , toBinfoTx
@@ -156,11 +165,11 @@
 import           Data.Either             (fromRight, lefts, rights)
 import           Data.Foldable           (toList)
 import           Data.Function           (on)
-import           Data.Hashable           (Hashable (..))
 import           Data.HashMap.Strict     (HashMap)
 import qualified Data.HashMap.Strict     as HashMap
 import           Data.HashSet            (HashSet)
 import qualified Data.HashSet            as HashSet
+import           Data.Hashable           (Hashable (..))
 import           Data.Int                (Int64)
 import qualified Data.IntMap             as IntMap
 import           Data.IntMap.Strict      (IntMap)
@@ -194,6 +203,7 @@
                                           txHashToHex, wrapPubKey, xPubFromJSON,
                                           xPubImport, xPubToEncoding,
                                           xPubToJSON)
+import           Text.Printf             (printf)
 import           Text.Read               (readMaybe)
 import           Web.Scotty.Trans        (Parsable (..), ScottyError (..))
 
@@ -463,7 +473,7 @@
         script <- BSS.toShort <$> (o .: "pkscript" >>= jsonHex)
         addr <- o .: "address" >>= \case
             Nothing -> return Nothing
-            Just a -> Just <$> addrFromJSON net a <|> return Nothing
+            Just a  -> Just <$> addrFromJSON net a <|> return Nothing
         return
             Unspent
                 { unspentBlock = block
@@ -698,7 +708,7 @@
                 value <- o .: "value"
                 addr <- o .: "address" >>= \case
                     Nothing -> return Nothing
-                    Just a -> Just <$> addrFromJSON net a <|> return Nothing
+                    Just a  -> Just <$> addrFromJSON net a <|> return Nothing
                 return
                     StoreInput
                         { inputPoint = outpoint
@@ -779,7 +789,7 @@
         spender <- o .: "spender"
         addr <- o .: "address" >>= \case
             Nothing -> return Nothing
-            Just a -> Just <$> addrFromJSON net a <|> return Nothing
+            Just a  -> Just <$> addrFromJSON net a <|> return Nothing
         return
             StoreOutput
                 { outputAmount = value
@@ -1129,12 +1139,12 @@
             , "indices" .= object ["change" .= ch, "external" .= ext]
             ]
     toEncoding XPubSummary { xPubSummaryConfirmed = c
-                       , xPubSummaryZero = z
-                       , xPubSummaryReceived = r
-                       , xPubUnspentCount = u
-                       , xPubExternalIndex = ext
-                       , xPubChangeIndex = ch
-                       } =
+                           , xPubSummaryZero = z
+                           , xPubSummaryReceived = r
+                           , xPubUnspentCount = u
+                           , xPubExternalIndex = ext
+                           , xPubChangeIndex = ch
+                           } =
         pairs
             (  "balance" `pair` pairs
                 (  "confirmed" .= c
@@ -1417,8 +1427,7 @@
     toEncoding (EventTx h) =
         pairs ("type" `pair` text "tx" <> "id" `pair` text (txHashToHex h))
     toEncoding (EventBlock h) =
-        pairs
-            ("type" `pair` text "block" <> "id" `pair` text (blockHashToHex h))
+        pairs ("type" `pair` text "block" <> "id" `pair` text (blockHashToHex h))
 
 instance FromJSON Event where
     parseJSON =
@@ -1809,6 +1818,78 @@
         getBinfoWalletTotalSent <- o .: "total_sent"
         return BinfoWallet {..}
 
+data BinfoUnspent
+    = BinfoUnspent
+      { getBinfoUnspentHash            :: !TxHash
+      , getBinfoUnspentOutputIndex     :: !Word32
+      , getBinfoUnspentScript          :: !ByteString
+      , getBinfoUnspentValue           :: !Word64
+      , getBinfoUnspentConfirmations   :: !Word32
+      , getBinfoUnspentTxIndex         :: !BinfoTxId
+      , getBinfoUnspentXPub            :: !(Maybe BinfoXPubPath)
+      } deriving (Eq, Show, Generic, Serialize, NFData)
+
+binfoUnspentToJSON :: Network -> BinfoUnspent -> Value
+binfoUnspentToJSON net BinfoUnspent{..} =
+        object $
+        [ "tx_hash_big_endian" .= getBinfoUnspentHash
+        , "tx_hash" .= encodeHex (S.encode (getTxHash getBinfoUnspentHash))
+        , "tx_output_n" .= getBinfoUnspentOutputIndex
+        , "script" .= encodeHex getBinfoUnspentScript
+        , "value" .= getBinfoUnspentValue
+        , "value_hex" .= (printf "%x" getBinfoUnspentValue :: String)
+        , "confirmations" .= getBinfoUnspentConfirmations
+        , "tx_index" .= getBinfoUnspentTxIndex
+        ] <>
+        [ "xpub" .= binfoXPubPathToJSON net x
+        | x <- maybeToList getBinfoUnspentXPub
+        ]
+
+binfoUnspentToEncoding :: Network -> BinfoUnspent -> Encoding
+binfoUnspentToEncoding net BinfoUnspent{..} =
+        pairs $
+        "tx_hash_big_endian" .= getBinfoUnspentHash <>
+        "tx_hash" .= encodeHex (S.encode (getTxHash getBinfoUnspentHash)) <>
+        "tx_output_n" .= getBinfoUnspentOutputIndex <>
+        "script" .= encodeHex getBinfoUnspentScript <>
+        "value" .= getBinfoUnspentValue <>
+        "value_hex" .= (printf "%x" getBinfoUnspentValue :: String) <>
+        "confirmations" .= getBinfoUnspentConfirmations <>
+        "tx_index" .= getBinfoUnspentTxIndex <>
+        maybe mempty (("xpub" `pair`) . binfoXPubPathToEncoding net) getBinfoUnspentXPub
+
+binfoUnspentParseJSON :: Network -> Value -> Parser BinfoUnspent
+binfoUnspentParseJSON net = withObject "unspent" $ \o -> do
+        getBinfoUnspentHash <- o .: "tx_hash_big_endian"
+        getBinfoUnspentOutputIndex <- o .: "tx_output_n"
+        getBinfoUnspentScript <- maybe mzero return . decodeHex =<< o .: "script"
+        getBinfoUnspentValue <- o .: "value"
+        getBinfoUnspentConfirmations <- o .: "confirmations"
+        getBinfoUnspentTxIndex <- o .: "tx_index"
+        getBinfoUnspentXPub <- mapM (binfoXPubPathParseJSON net) =<< o .:? "xpub"
+        return BinfoUnspent{..}
+
+newtype BinfoUnspents = BinfoUnspents [BinfoUnspent]
+    deriving (Eq, Show, Generic, Serialize, NFData)
+
+binfoUnspentsToJSON :: Network -> BinfoUnspents -> Value
+binfoUnspentsToJSON net (BinfoUnspents us) =
+    object
+    [ "notice" .= T.empty
+    , "unspent_outputs" .= map (binfoUnspentToJSON net) us
+    ]
+
+binfoUnspentsToEncoding :: Network -> BinfoUnspents -> Encoding
+binfoUnspentsToEncoding net (BinfoUnspents us) =
+    pairs $
+    "notice" .= T.empty <>
+    "unspent_outputs" `pair` list (binfoUnspentToEncoding net) us
+
+binfoUnspentsParseJSON :: Network -> Value -> Parser BinfoUnspents
+binfoUnspentsParseJSON net = withObject "unspents" $ \o -> do
+    us <- mapM (binfoUnspentParseJSON net) =<< o .: "unspent_outputs"
+    return (BinfoUnspents us)
+
 data BinfoTx
     = BinfoTx
         { getBinfoTxHash        :: !TxHash
@@ -1822,6 +1903,7 @@
         , getBinfoTxLockTime    :: !Word32
         , getBinfoTxIndex       :: !BinfoTxId
         , getBinfoTxDoubleSpend :: !Bool
+        , getBinfoTxRBF         :: !Bool
         , getBinfoTxResultBal   :: !(Maybe (Int64, Int64))
         , getBinfoTxTime        :: !Word64
         , getBinfoTxBlockIndex  :: !(Maybe Word32)
@@ -1850,10 +1932,13 @@
         , "block_height" .= getBinfoTxBlockHeight
         , "inputs" .= map (binfoTxInputToJSON net) getBinfoTxInputs
         , "out" .= map (binfoTxOutputToJSON net) getBinfoTxOutputs
-        ] ++
+        ] ++ bal ++ rbf
+  where
+    bal =
         case getBinfoTxResultBal of
             Nothing         -> []
             Just (res, bal) -> ["result" .= res, "balance" .= bal]
+    rbf = if getBinfoTxRBF then ["rbf" .= True] else []
 
 binfoTxToEncoding :: Network -> BinfoTx -> Encoding
 binfoTxToEncoding net BinfoTx {..} =
@@ -1874,9 +1959,13 @@
         "block_height" .= getBinfoTxBlockHeight <>
         "inputs" `pair` list (binfoTxInputToEncoding net) getBinfoTxInputs <>
         "out" `pair` list (binfoTxOutputToEncoding net) getBinfoTxOutputs <>
+        bal <> rbf
+  where
+    bal =
         case getBinfoTxResultBal of
             Nothing         -> mempty
             Just (res, bal) -> "result" .= res <> "balance" .= bal
+    rbf = if getBinfoTxRBF then "rbf" .= True else mempty
 
 binfoTxParseJSON :: Network -> Value -> Parser BinfoTx
 binfoTxParseJSON net = withObject "tx" $ \o -> do
@@ -1896,6 +1985,7 @@
     getBinfoTxBlockHeight <- o .: "block_height"
     getBinfoTxInputs <- o .: "inputs" >>= mapM (binfoTxInputParseJSON net)
     getBinfoTxOutputs <- o .: "out" >>= mapM (binfoTxOutputParseJSON net)
+    getBinfoTxRBF <- o .:? "rbf" .!= False
     res <- o .:? "result"
     bal <- o .:? "balance"
     let getBinfoTxResultBal = (,) <$> res <*> bal
@@ -2342,7 +2432,8 @@
            , getBinfoTxRelayedBy = "0.0.0.0"
            , getBinfoTxLockTime = transactionLockTime
            , getBinfoTxIndex = binfoTransactionIndex (isNothing etxs) t
-           , getBinfoTxDoubleSpend = transactionRBF
+           , getBinfoTxDoubleSpend = transactionDeleted
+           , getBinfoTxRBF = transactionRBF
            , getBinfoTxTime = transactionTime
            , getBinfoTxBlockIndex = toBinfoBlockIndex t
            , getBinfoTxBlockHeight = toBinfoBlockIndex t
diff --git a/test/Haskoin/Store/DataSpec.hs b/test/Haskoin/Store/DataSpec.hs
--- a/test/Haskoin/Store/DataSpec.hs
+++ b/test/Haskoin/Store/DataSpec.hs
@@ -57,6 +57,8 @@
     , SerialBox (arbitrary :: Gen BinfoTxInput)
     , SerialBox (arbitrary :: Gen BinfoTx)
     , SerialBox (arbitrary :: Gen BinfoTxId)
+    , SerialBox (arbitrary :: Gen BinfoUnspent)
+    , SerialBox (arbitrary :: Gen BinfoUnspents)
     ]
 
 jsonVals :: [JsonBox]
@@ -140,6 +142,10 @@
              , binfoXPubPathToEncoding
              , binfoXPubPathParseJSON
              , arbitraryNetData)
+    , NetBox ( binfoUnspentToJSON
+             , binfoUnspentToEncoding
+             , binfoUnspentParseJSON
+             , arbitraryNetData)
     ]
 
 spec :: Spec
@@ -456,6 +462,7 @@
         getBinfoTxLockTime <- arbitrary
         getBinfoTxIndex <- arbitrary
         getBinfoTxDoubleSpend <- arbitrary
+        getBinfoTxRBF <- arbitrary
         getBinfoTxTime <- arbitrary
         getBinfoTxBlockIndex <- arbitrary
         getBinfoTxBlockHeight <- arbitrary
@@ -532,3 +539,17 @@
         binfoTickerLast <- arbitrary
         binfoTickerSymbol <- cs <$> listOf1 arbitraryUnicodeChar
         return BinfoTicker{..}
+
+instance Arbitrary BinfoUnspent where
+    arbitrary = do
+        getBinfoUnspentHash <- arbitraryTxHash
+        getBinfoUnspentOutputIndex <- arbitrary
+        getBinfoUnspentScript <- B.pack <$> listOf arbitrary
+        getBinfoUnspentValue <- arbitrary
+        getBinfoUnspentConfirmations <- arbitrary
+        getBinfoUnspentTxIndex <- arbitrary
+        getBinfoUnspentXPub <- arbitrary
+        return BinfoUnspent{..}
+
+instance Arbitrary BinfoUnspents where
+    arbitrary = BinfoUnspents <$> arbitrary
