diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -186,7 +186,7 @@
     same "printed page" as the copyright notice for easier
     identification within third-party archives.
 
-Copyright 2016-2021 Aleksandr Krupenkin 
+Copyright 2016-2026 Aleksandr Krupenkin 
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/src/Network/Ethereum/Account/Internal.hs b/src/Network/Ethereum/Account/Internal.hs
--- a/src/Network/Ethereum/Account/Internal.hs
+++ b/src/Network/Ethereum/Account/Internal.hs
@@ -33,7 +33,7 @@
 import qualified Network.Ethereum.Api.Eth       as Eth (getTransactionReceipt)
 import           Network.Ethereum.Api.Types     (Call (..),
                                                  DefaultBlock (Latest),
-                                                 TxReceipt (receiptTransactionHash))
+                                                 TxReceipt)
 import           Network.Ethereum.Unit          (Unit (..))
 import           Network.JsonRpc.TinyClient     (JsonRpc)
 
@@ -139,8 +139,3 @@
 
 getReceipt' :: JsonRpc m => HexString -> m TxReceipt
 getReceipt' = fmap (fromRight undefined) . getReceipt Nothing
-
-updateReceipt :: JsonRpc m => TxReceipt -> m TxReceipt
-{-# INLINE updateReceipt #-}
--- No timeout, because we update the receipt of an already processed transaction.
-updateReceipt = getReceipt' . receiptTransactionHash
diff --git a/src/Network/Ethereum/Account/Safe.hs b/src/Network/Ethereum/Account/Safe.hs
--- a/src/Network/Ethereum/Account/Safe.hs
+++ b/src/Network/Ethereum/Account/Safe.hs
@@ -20,7 +20,6 @@
 import           Data.ByteArray.HexString          (HexString)
 
 import           Network.Ethereum.Account.Class    (Account (send))
-import           Network.Ethereum.Account.Internal (updateReceipt)
 import qualified Network.Ethereum.Api.Eth          as Eth
 import           Network.Ethereum.Api.Types        (TxReceipt (receiptBlockNumber))
 import           Network.Ethereum.Contract.Method  (Method)
@@ -42,17 +41,12 @@
             Left tx       -> return $ Left tx
             Right receipt -> Right <$> f receipt
 
-    waiting receipt =
-        case receiptBlockNumber receipt of
-            Nothing -> do
-                liftIO $ threadDelay 1000000
-                waiting =<< updateReceipt receipt
-            Just bn -> do
-                current <- Eth.blockNumber
-                if current - bn >= fromInteger b
-                    then return receipt
-                    else do liftIO $ threadDelay 1000000
-                            waiting receipt
+    waiting receipt = do
+        current <- Eth.blockNumber
+        if current - receiptBlockNumber receipt >= fromInteger b
+            then return receipt
+            else do liftIO $ threadDelay 1000000
+                    waiting receipt
 
 -- | Count block confirmation to keep secure
 -- According to Vitalik post
diff --git a/src/Network/Ethereum/Api/Eth.hs b/src/Network/Ethereum/Api/Eth.hs
--- a/src/Network/Ethereum/Api/Eth.hs
+++ b/src/Network/Ethereum/Api/Eth.hs
@@ -18,11 +18,20 @@
 import           Data.ByteArray.HexString   (HexString)
 import           Data.Solidity.Prim.Address (Address)
 import           Data.Text                  (Text)
-import           Network.Ethereum.Api.Types (Block, BlockT, Call, Change,
-                                             DefaultBlock, Filter, Quantity,
-                                             SyncingState, Transaction,
-                                             TxReceipt)
-import           Network.JsonRpc.TinyClient (JsonRpc (..))
+import           Network.Ethereum.Api.Types
+    ( Block
+    , BlockT
+    , Call
+    , Change
+    , DefaultBlock
+    , FeeHistory
+    , Filter
+    , Quantity
+    , SyncingState
+    , Transaction
+    , TxReceipt
+    )
+import           Network.JsonRpc.TinyClient (JsonRpc(..))
 
 -- | Returns the current ethereum protocol version.
 protocolVersion :: JsonRpc m => m Text
@@ -146,6 +155,10 @@
 {-# INLINE estimateGas #-}
 estimateGas = remote "eth_estimateGas"
 
+-- | Returns transaction base fee per gas and effective priority fee per gas for the requested/supported block range.
+feeHistory :: (JsonRpc m) => Quantity -> DefaultBlock -> [Double] -> m FeeHistory
+feeHistory = remote "eth_feeHistory"
+
 -- | Returns information about a block by hash with only hashes of the transactions in it.
 getBlockByHashLite :: JsonRpc m => HexString -> m (Maybe (BlockT HexString))
 {-# INLINE getBlockByHashLite #-}
@@ -257,3 +270,8 @@
 submitHashrate :: JsonRpc m => HexString -> HexString -> m Bool
 {-# INLINE submitHashrate #-}
 submitHashrate = remote "eth_submitHashrate"
+
+-- | Returns the chain ID of the current network.
+chainId :: JsonRpc m => m Quantity
+{-# INLINE chainId #-}
+chainId = remote "eth_chainId"
diff --git a/src/Network/Ethereum/Api/Types.hs b/src/Network/Ethereum/Api/Types.hs
--- a/src/Network/Ethereum/Api/Types.hs
+++ b/src/Network/Ethereum/Api/Types.hs
@@ -32,6 +32,7 @@
 import qualified Data.Text.Lazy.Builder     as B (toLazyText)
 import qualified Data.Text.Lazy.Builder.Int as B (hexadecimal)
 import qualified Data.Text.Read             as R (decimal, hexadecimal)
+import           Data.Word                  (Word8)
 import           GHC.Generics               (Generic)
 import           Lens.Micro                 (_head, over)
 
@@ -74,6 +75,43 @@
             _             -> fail $ "Quantity " ++ show v <> " is not valid hex"
     parseJSON _ = fail "Quantity should be a JSON String"
 
+-- | Type representing a Byte in Web3 JSON RPC docs ("#/components/schemas/byte")
+--
+-- The encoding is similar to Quantity, encoding as hex string.
+newtype Byte = Byte { unByte :: Word8 }
+    deriving (Num, Real, Integral, Enum, Eq, Ord, Generic)
+
+instance Show Byte where
+    show = show . unByte
+
+instance IsString Byte where
+    fromString ('0' : 'x' : hex) =
+       case R.hexadecimal (T.pack hex) of
+            Right (x, "")
+                | toInteger (minBound :: Word8) <= x && x <= toInteger (maxBound :: Word8) -> Byte (fromInteger x)
+                | otherwise -> error ("Byte " ++ show hex ++ "is not within bounds")
+            _               -> error ("Byte " ++ show hex ++ " is not valid hex")
+
+    fromString num =
+        case R.decimal (T.pack num) of
+            Right (x, "")
+                | toInteger (minBound :: Word8) <= x && x <= toInteger (maxBound :: Word8) -> Byte (fromInteger x)
+                | otherwise -> error ("Byte " ++ show num ++ "is not within bounds")
+            _             -> error ("Byte " ++ show num ++ " is not valid decimal")
+
+instance ToJSON Byte where
+    toJSON (Byte x) =
+        let hexValue = B.toLazyText (B.hexadecimal x)
+        in  toJSON ("0x" <> hexValue)
+
+instance FromJSON Byte where
+    parseJSON (String v) =
+        case R.hexadecimal v of
+            Right (x, "") -> return (Byte x)
+            _             -> fail $ "Byte " ++ show v <> " is not valid hex"
+    parseJSON _ = fail "Byte should be a JSON String"
+
+
 -- | An object with sync status data.
 data SyncActive = SyncActive
     { syncStartingBlock :: !Quantity
@@ -194,26 +232,40 @@
 
 -- | The Receipt of a Transaction
 data TxReceipt = TxReceipt
-    { receiptTransactionHash   :: !HexString
+    { receiptType :: !(Maybe Byte)
+    -- ^ BYTE - type of the transaction 0x00 for legacy transactions, 0x01 EIP-2930, 0x02 EIP-1559
+    , receiptTransactionHash   :: !HexString
     -- ^ DATA, 32 Bytes - hash of the transaction.
     , receiptTransactionIndex  :: !Quantity
     -- ^ QUANTITY - index of the transaction.
-    , receiptBlockHash         :: !(Maybe HexString)
-    -- ^ DATA, 32 Bytes - hash of the block where this transaction was in. null when its pending.
-    , receiptBlockNumber       :: !(Maybe Quantity)
-    -- ^ QUANTITY - block number where this transaction was in. null when its pending.
+    , receiptBlockHash         :: !HexString
+    -- ^ DATA, 32 Bytes - hash of the block where this transaction was in. 
+    , receiptBlockNumber       :: !Quantity
+    -- ^ QUANTITY - block number where this transaction was in.
+    , receiptFrom              :: !Address
+    -- ^ DATA, 20 Bytes - the address of the sender
+    , receiptTo                :: !(Maybe Address)
+    -- ^ DATA, 20 Bytes - The address of the receiver. null when the transaction is a contract creation transaction.
     , receiptCumulativeGasUsed :: !Quantity
     -- ^ QUANTITY - The total amount of gas used when this transaction was executed in the block.
     , receiptGasUsed           :: !Quantity
     -- ^ QUANTITY - The amount of gas used by this specific transaction alone.
+    , receiptBlobGasUsed       :: !(Maybe Quantity)
+    -- ^ QUANTITY - The amount of blob gas used for this specific transaction. Only specified for blob transactions as defined by EIP-4844.
     , receiptContractAddress   :: !(Maybe Address)
     -- ^ DATA, 20 Bytes - The contract address created, if the transaction was a contract creation, otherwise null.
     , receiptLogs              :: ![Change]
     -- ^ Array - Array of log objects, which this transaction generated.
     , receiptLogsBloom         :: !HexString
     -- ^ DATA, 256 Bytes - Bloom filter for light clients to quickly retrieve related logs.
+    , receiptRoot              :: !(Maybe HexString)
+    -- ^ DATA, 32 Bytes - The post-transaction state root. Only specified for transactions included before the Byzantium upgrade.
     , receiptStatus            :: !(Maybe Quantity)
     -- ^ QUANTITY either 1 (success) or 0 (failure)
+    , receiptEffectiveGasPrice :: !Quantity
+    -- ^ QUANTITY - The actual value per gas deducted from the sender's account. Before EIP-1559, this is equal to the transaction's gas price. After, it is equal to baseFeePerGas + min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas).
+    , blobGasPrice             :: !(Maybe Quantity)
+    -- ^ QUANTITY - The actual value per gas deducted from the sender's account for blob gas. Only specified for blob transactions as defined by EIP-4844.
     }
     deriving (Show, Generic)
 
@@ -277,10 +329,8 @@
     -- ^ DATA, 32 Bytes - the root of the receipts trie of the block.
     , blockMiner            :: !Address
     -- ^ DATA, 20 Bytes - the address of the beneficiary to whom the mining rewards were given.
-    , blockDifficulty       :: !Quantity
+    , blockDifficulty       :: !(Maybe Quantity)
     -- ^ QUANTITY - integer of the difficulty for this block.
-    , blockTotalDifficulty  :: !Quantity
-    -- ^ QUANTITY - integer of the total difficulty of the chain until this block.
     , blockExtraData        :: !HexString
     -- ^ DATA - the "extra data" field of this block.
     , blockSize             :: !Quantity
@@ -300,3 +350,23 @@
 
 $(deriveJSON (defaultOptions
     { fieldLabelModifier = over _head toLower . drop 5 }) ''BlockT)
+
+-- | Fee History information
+data FeeHistory
+  = FeeHistory
+  { feeHistoryBaseFeePerBlobGas :: [Quantity]
+  -- ^ array of block base fees per blob gas.
+  , feeHistoryBaseFeePerGas :: [Quantity]
+  -- ^ Array of block base fees per gas.
+  , feeHistoryBlobGasUsedRatio :: [Rational]
+  -- ^ Array of block base fees per blob gas.
+  , feeHistoryGasUsedRatio :: [Rational]
+  -- ^ Array of block gas used ratios.
+  , feeHistoryOldestBlock :: Quantity
+  -- ^ QUANTITY - lowest number block of returned range.
+  , feeHistoryReward :: [[Quantity]]
+  -- ^ Two-dimensional array of effective priority fees per gas at the requested block percentiles.
+  }
+  deriving (Generic, Show)
+
+$(deriveJSON defaultOptions{fieldLabelModifier = over _head toLower . drop 10} ''FeeHistory)
diff --git a/web3-ethereum.cabal b/web3-ethereum.cabal
--- a/web3-ethereum.cabal
+++ b/web3-ethereum.cabal
@@ -1,9 +1,9 @@
 cabal-version: 1.12
 name:          web3-ethereum
-version:       1.0.1.0
+version:       1.1.0.0
 license:       Apache-2.0
 license-file:  LICENSE
-copyright:     (c) Aleksandr Krupenkin 2016-2024
+copyright:     (c) Aleksandr Krupenkin 2016-2026
 maintainer:    mail@akru.me
 author:        Aleksandr Krupenkin
 homepage:      https://github.com/airalab/hs-web3#readme
@@ -60,29 +60,29 @@
         -Wunused-foralls -Wtabs
 
     build-depends:
-        OneTuple >0.2 && <0.5,
-        aeson >1.2 && <2.2,
+        OneTuple >=0.2 && <0.5,
+        aeson >=1.2 && <2.3,
         aeson-casing >=0.2 && <0.3,
-        base >4.11 && <4.19,
-        bytestring >0.10 && <0.12,
-        data-default >0.7 && <0.8,
-        exceptions >0.8 && <0.11,
-        generics-sop >0.3 && <0.6,
-        jsonrpc-tinyclient >=1.0 && <1.1,
-        machines >0.6 && <0.8,
-        memory >0.14 && <0.19,
-        memory-hexstring >=1.0 && <1.1,
-        microlens >0.4 && <0.5,
-        microlens-aeson >2.2 && <2.6,
-        mtl >2.2 && <2.4,
-        relapse >=1.0 && <2.0,
-        tagged >0.8 && <0.9,
-        template-haskell >2.11 && <2.21,
-        text >1.2 && <2.1,
-        transformers >0.5 && <0.7,
-        vinyl >0.5 && <0.15,
-        web3-crypto >=1.0 && <1.1,
-        web3-solidity >=1.0 && <1.1
+        base >=4.11 && <4.21,
+        bytestring >=0.10 && <0.13,
+        data-default >=0.7 && <0.9,
+        exceptions >=0.8 && <0.11,
+        generics-sop >=0.3 && <0.6,
+        jsonrpc-tinyclient >=1.0 && <1.2,
+        machines >=0.6 && <0.8,
+        memory >=0.14 && <0.19,
+        memory-hexstring >=1.0 && <1.2,
+        microlens >=0.4 && <0.5,
+        microlens-aeson >=2.2 && <2.6,
+        mtl >=2.2 && <2.4,
+        relapse >=1.0 && <1.1,
+        tagged >=0.8 && <0.9,
+        template-haskell >=2.11 && <2.23,
+        text >=1.2 && <2.2,
+        transformers >=0.5 && <0.7,
+        vinyl >=0.5 && <0.15,
+        web3-crypto >=1.0 && <1.2,
+        web3-solidity >=1.0 && <1.2
 
 test-suite tests
     type:             exitcode-stdio-1.0
@@ -133,30 +133,30 @@
         -Wunused-foralls -Wtabs -threaded -rtsopts -with-rtsopts=-N
 
     build-depends:
-        OneTuple >0.2 && <0.5,
-        aeson >1.2 && <2.2,
+        OneTuple >=0.2 && <0.5,
+        aeson >=1.2 && <2.3,
         aeson-casing >=0.2 && <0.3,
-        base >4.11 && <4.19,
-        bytestring >0.10 && <0.12,
-        data-default >0.7 && <0.8,
-        exceptions >0.8 && <0.11,
-        generics-sop >0.3 && <0.6,
+        base >=4.11 && <4.21,
+        bytestring >=0.10 && <0.13,
+        data-default >=0.7 && <0.9,
+        exceptions >=0.8 && <0.11,
+        generics-sop >=0.3 && <0.6,
         hspec >=2.4.4 && <2.12,
         hspec-contrib >=0.4.0 && <0.6,
         hspec-discover >=2.4.4 && <2.12,
         hspec-expectations >=0.8.2 && <0.9,
-        jsonrpc-tinyclient >=1.0 && <1.1,
-        machines >0.6 && <0.8,
-        memory >0.14 && <0.19,
-        memory-hexstring >=1.0 && <1.1,
-        microlens >0.4 && <0.5,
-        microlens-aeson >2.2 && <2.6,
-        mtl >2.2 && <2.4,
-        relapse >=1.0 && <2.0,
-        tagged >0.8 && <0.9,
-        template-haskell >2.11 && <2.21,
-        text >1.2 && <2.1,
-        transformers >0.5 && <0.7,
-        vinyl >0.5 && <0.15,
-        web3-crypto >=1.0 && <1.1,
-        web3-solidity >=1.0 && <1.1
+        jsonrpc-tinyclient >=1.0 && <1.2,
+        machines >=0.6 && <0.8,
+        memory >=0.14 && <0.19,
+        memory-hexstring >=1.0 && <1.2,
+        microlens >=0.4 && <0.5,
+        microlens-aeson >=2.2 && <2.6,
+        mtl >=2.2 && <2.4,
+        relapse >=1.0 && <1.1,
+        tagged >=0.8 && <0.9,
+        template-haskell >=2.11 && <2.23,
+        text >=1.2 && <2.2,
+        transformers >=0.5 && <0.7,
+        vinyl >=0.5 && <0.15,
+        web3-crypto >=1.0 && <1.2,
+        web3-solidity >=1.0 && <1.2
