diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,20 @@
 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.52.9
+### Added
+- Add Blockchain.info latest block endpoint.
+- Add Blockchain.info unconfirmed-transactions endpoint.
+- Add Blockchain.info blocks for one day endpoint.
+
+## 0.52.8
+### Fixed
+- Fix special case for zero limit.
+
+## 0.52.7
+### Fixed
+- Fix cache bug when too many transactions in mempool.
+
 ## 0.52.6
 ### Changed
 - Use rationals for Blockchain.info export-history endpoint arithmetics.
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: 9e77d20377455e8ad001eb7c7c5a39002f65f14e46954075ce6dba24f521cd96
+-- hash: 4068f11ea0427ac6c0846205b45263f5142f7cd3f8055993078495e8c1bd16e1
 
 name:           haskoin-store-data
-version:        0.52.6
+version:        0.52.9
 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
@@ -144,12 +144,19 @@
     , binfoXPubPathParseJSON
     , BinfoInfo(..)
     , BinfoBlockInfo(..)
+    , toBinfoBlockInfo
     , BinfoSymbol(..)
     , BinfoTicker(..)
     , BinfoRate(..)
     , BinfoHistory(..)
     , toBinfoHistory
     , BinfoDate(..)
+    , BinfoHeader(..)
+    , BinfoMempool(..)
+    , binfoMempoolToJSON
+    , binfoMempoolToEncoding
+    , binfoMempoolParseJSON
+    , BinfoBlocks(..)
     )
 
 where
@@ -3036,6 +3043,15 @@
         getBinfoBlockInfoIndex <- o .: "block_index"
         return BinfoBlockInfo {..}
 
+toBinfoBlockInfo :: BlockData -> BinfoBlockInfo
+toBinfoBlockInfo BlockData {..} =
+    BinfoBlockInfo
+    { getBinfoBlockInfoHash = headerHash blockDataHeader
+    , getBinfoBlockInfoHeight = blockDataHeight
+    , getBinfoBlockInfoTime = blockTimestamp blockDataHeader
+    , getBinfoBlockInfoIndex = blockDataHeight
+    }
+
 data BinfoRate
     = BinfoRate
       { binfoRateTime  :: !Word64
@@ -3468,3 +3484,56 @@
     concatMap (T.splitOn ",") (T.splitOn "|" s)
   where
     f x = BinfoAddr <$> textToAddr net x <|> BinfoXpub <$> xPubImport net x
+
+data BinfoHeader
+    = BinfoHeader
+      { binfoHeaderHash   :: !BlockHash
+      , binfoHeaderTime   :: !Timestamp
+      , binfoHeaderIndex  :: !Word32
+      , binfoHeaderHeight :: !BlockHeight
+      , binfoTxIndices    :: ![BinfoTxId]
+      } deriving (Eq, Show, Generic, NFData)
+
+instance ToJSON BinfoHeader where
+    toJSON BinfoHeader{..} =
+        A.object
+        [ "hash" .= binfoHeaderHash
+        , "time" .= binfoHeaderTime
+        , "block_index" .= binfoHeaderIndex
+        , "height" .= binfoHeaderHeight
+        , "txIndexes" .= binfoTxIndices
+        ]
+
+instance FromJSON BinfoHeader where
+    parseJSON = A.withObject "header" $ \o -> do
+        binfoHeaderHash <- o .: "hash"
+        binfoHeaderTime <- o .: "time"
+        binfoHeaderIndex <- o .: "block_index"
+        binfoHeaderHeight <-  o .: "height"
+        binfoTxIndices <- o .: "txIndexes"
+        return BinfoHeader{..}
+
+newtype BinfoMempool = BinfoMempool { getBinfoMempool :: [BinfoTx] }
+    deriving (Eq, Show, Generic, NFData)
+
+binfoMempoolToJSON :: Network -> BinfoMempool -> Value
+binfoMempoolToJSON net (BinfoMempool txs) =
+    A.object ["txs" .= map (binfoTxToJSON net) txs]
+
+binfoMempoolToEncoding :: Network -> BinfoMempool -> Encoding
+binfoMempoolToEncoding net (BinfoMempool txs) =
+    AE.pairs $ AE.pair "txs" (AE.list (binfoTxToEncoding net) txs)
+
+binfoMempoolParseJSON :: Network -> Value -> Parser BinfoMempool
+binfoMempoolParseJSON net =
+    A.withObject "mempool" $ \o ->
+    BinfoMempool <$> (mapM (binfoTxParseJSON net) =<< o .: "txs")
+
+newtype BinfoBlocks = BinfoBlocks { binfoBlocks :: [BinfoBlockInfo] }
+    deriving (Eq, Show, Generic, NFData)
+
+instance ToJSON BinfoBlocks where
+    toJSON BinfoBlocks {..} = A.object [ "blocks" .= binfoBlocks ]
+
+instance FromJSON BinfoBlocks where
+    parseJSON = A.withObject "blocks" $ \o -> BinfoBlocks <$> o .: "blocks"
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
@@ -73,6 +73,8 @@
     , JsonBox (arbitrary :: Gen BinfoTxId)
     , JsonBox (arbitrary :: Gen BinfoShortBal)
     , JsonBox (arbitrary :: Gen BinfoHistory)
+    , JsonBox (arbitrary :: Gen BinfoHeader)
+    , JsonBox (arbitrary :: Gen BinfoBlocks)
     ]
 
 netVals :: [NetBox]
@@ -149,6 +151,10 @@
              , binfoRawAddrToEncoding
              , binfoRawAddrParseJSON
              , arbitraryNetData)
+    , NetBox ( binfoMempoolToJSON
+             , binfoMempoolToEncoding
+             , binfoMempoolParseJSON
+             , arbitraryNetData)
     ]
 
 spec :: Spec
@@ -590,3 +596,18 @@
 
 instance Arbitrary BinfoUnspents where
     arbitrary = BinfoUnspents <$> arbitrary
+
+instance Arbitrary BinfoHeader where
+    arbitrary =
+        BinfoHeader
+        <$> arbitraryBlockHash
+        <*> arbitrary
+        <*> arbitrary
+        <*> arbitrary
+        <*> arbitrary
+
+instance Arbitrary BinfoMempool where
+    arbitrary = BinfoMempool <$> arbitrary
+
+instance Arbitrary BinfoBlocks where
+    arbitrary = BinfoBlocks <$> arbitrary
