diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 7d529efa3ea8083aea665d4378d26a8ce828e28a..717e5a74ba3651e79b45236b9b573d1fd59ff136 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,5 +1,12 @@
 Changelog
 =========
+0.24.4
+------
+* add get_replace_hive_by_steem() to Hive(), which is True on HF23
+* Replace HIVE by STEEM and SBD by HBD only when Hive HF < 24
+* Replace steem and sbd paramter names for Hive HF >= 24 by hive and hbd
+* Add get follow list to Account (only for HIVE and HF >= 24)
+
 0.24.3
 ------
 * Fix encrypted memo decryption
diff --git a/beem/account.py b/beem/account.py
index 03a7e588742d75c80a96ffc89cabf78d2f21af24..de53fc446e90f774fcdbdf676da2fd48e302aef2 100644
--- a/beem/account.py
+++ b/beem/account.py
@@ -1043,6 +1043,34 @@ class Account(BlockchainObject):
         else:
             return Accounts(name_list, blockchain_instance=self.blockchain)
 
+    def get_follow_list(self, follow_type, starting_account=None, limit=100, raw_name_list=True):
+        """ Returns the follow list for the specified follow_type (Only HIVE with HF >= 24)
+
+            :param list follow_type: follow_type can be `blacklisted`, `follow_blacklist` `muted`, or `follow_muted`
+        """
+        if not self.blockchain.is_connected():
+            raise OfflineHasNoRPCException("No RPC available in offline mode!")
+        limit_reached = True
+        cnt = 0
+        while limit_reached:
+            self.blockchain.rpc.set_next_node_on_empty_reply(False)
+            query = {'observer': self.name, 'follow_type': follow_type, 'starting_account': starting_account, 'limit': limit}
+            followers = self.blockchain.rpc.get_follow_list(query, api='bridge')
+            if cnt == 0:
+                name_list = followers
+            elif followers is not None and len(followers) > 1:
+                name_list += followers[1:]
+            if followers is not None and len(followers) >= limit:
+                starting_account = followers[-1]
+                limit_reached = True
+                cnt += 1
+            else:
+                limit_reached = False
+        if raw_name_list:
+            return name_list
+        else:
+            return Accounts(name_list, blockchain_instance=self.blockchain)
+
     def _get_followers(self, direction="follower", last_user="", what="blog", limit=100):
         """ Help function, used in get_followers and get_following
         """
@@ -2728,11 +2756,11 @@ class Account(BlockchainObject):
             .. code-block:: python
 
                 from beem.account import Account
-                from beem import Steem
+                from beem import Hive
                 active_wif = "5xxxx"
-                stm = Steem(keys=[active_wif])
+                stm = Hive(keys=[active_wif])
                 acc = Account("test", blockchain_instance=stm)
-                acc.transfer("test1", 1, "STEEM", "test")
+                acc.transfer("test1", 1, "HIVE", "test")
 
         """
 
@@ -2742,6 +2770,7 @@ class Account(BlockchainObject):
             account = Account(account, blockchain_instance=self.blockchain)
         amount = Amount(amount, asset, blockchain_instance=self.blockchain)
         to = Account(to, blockchain_instance=self.blockchain)
+        replace_hive_by_steem = self.blockchain.get_replace_hive_by_steem()
         if memo and memo[0] == "#":
             from .memo import Memo
             memoObj = Memo(
@@ -2757,6 +2786,7 @@ class Account(BlockchainObject):
             "memo": memo,
             "from": account["name"],
             "prefix": self.blockchain.prefix,
+            "replace_hive_by_steem": replace_hive_by_steem,
         })
         return self.blockchain.finalizeOp(op, account, "active", **kwargs)
 
@@ -2777,7 +2807,7 @@ class Account(BlockchainObject):
         else:
             to = Account(to, blockchain_instance=self.blockchain)
         amount = self._check_amount(amount, self.blockchain.token_symbol)
-
+        replace_hive_by_steem = self.blockchain.get_replace_hive_by_steem()
         to = Account(to, blockchain_instance=self.blockchain)
 
         op = operations.Transfer_to_vesting(**{
@@ -2785,6 +2815,7 @@ class Account(BlockchainObject):
             "to": to["name"],
             "amount": amount,
             "prefix": self.blockchain.prefix,
+            "replace_hive_by_steem": replace_hive_by_steem,
         })
         return self.blockchain.finalizeOp(op, account, "active", **kwargs)
 
@@ -2807,12 +2838,14 @@ class Account(BlockchainObject):
             request_id = int(request_id)
         else:
             request_id = random.getrandbits(32)
+        replace_hive_by_steem = self.blockchain.get_replace_hive_by_steem()      
         op = operations.Convert(
             **{
                 "owner": account["name"],
                 "requestid": request_id,
                 "amount": amount,
                 "prefix": self.blockchain.prefix,
+                "replace_hive_by_steem": replace_hive_by_steem,
             })
 
         return self.blockchain.finalizeOp(op, account, "active")
@@ -2842,7 +2875,7 @@ class Account(BlockchainObject):
             to = account  # move to savings on same account
         else:
             to = Account(to, blockchain_instance=self.blockchain)
-
+        replace_hive_by_steem = self.blockchain.get_replace_hive_by_steem()
         op = operations.Transfer_to_savings(
             **{
                 "from": account["name"],
@@ -2850,6 +2883,7 @@ class Account(BlockchainObject):
                 "amount": amount,
                 "memo": memo,
                 "prefix": self.blockchain.prefix,
+                "replace_hive_by_steem": replace_hive_by_steem,
             })
         return self.blockchain.finalizeOp(op, account, "active", **kwargs)
 
@@ -2890,6 +2924,8 @@ class Account(BlockchainObject):
         else:
             request_id = random.getrandbits(32)
 
+        replace_hive_by_steem = self.blockchain.get_replace_hive_by_steem()
+
         op = operations.Transfer_from_savings(
             **{
                 "from": account["name"],
@@ -2898,6 +2934,7 @@ class Account(BlockchainObject):
                 "amount": amount,
                 "memo": memo,
                 "prefix": self.blockchain.prefix,
+                "replace_hive_by_steem": replace_hive_by_steem,
             })
         return self.blockchain.finalizeOp(op, account, "active", **kwargs)
 
@@ -2935,15 +2972,19 @@ class Account(BlockchainObject):
     def claim_reward_balance(self,
                              reward_steem=0,
                              reward_sbd=0,
+                             reward_hive=0,
+                             reward_hbd=0,                             
                              reward_vests=0,
                              account=None, **kwargs):
         """ Claim reward balances.
         By default, this will claim ``all`` outstanding balances. To bypass
         this behaviour, set desired claim amount by setting any of
-        `reward_steem`, `reward_sbd` or `reward_vests`.
+        `reward_steem`/``reward_hive, `reward_sbd`/``reward_hbd or `reward_vests`.
 
         :param str reward_steem: Amount of STEEM you would like to claim.
+        :param str reward_hive: Amount of HIVE you would like to claim.
         :param str reward_sbd: Amount of SBD you would like to claim.
+        :param str reward_hbd: Amount of HBD you would like to claim.
         :param str reward_vests: Amount of VESTS you would like to claim.
         :param str account: The source account for the claim if not
             ``default_account`` is used.
@@ -2959,9 +3000,16 @@ class Account(BlockchainObject):
         # if no values were set by user, claim all outstanding balances on
         # account
 
-        reward_steem = self._check_amount(reward_steem, self.blockchain.token_symbol)
-        reward_sbd = self._check_amount(reward_sbd, self.blockchain.backed_token_symbol)
+        reward_steem = self._check_amount(reward_steem + reward_hive, self.blockchain.token_symbol)
+        reward_sbd = self._check_amount(reward_sbd + reward_hbd, self.blockchain.backed_token_symbol)
         reward_vests = self._check_amount(reward_vests, self.blockchain.vest_token_symbol)
+        
+        reward_token = "reward_steem"
+        reward_backed_token = "reward_sbd"
+        replace_hive_by_steem = self.blockchain.get_replace_hive_by_steem()
+        if not replace_hive_by_steem:
+            reward_token = "reward_hive"
+            reward_backed_token = "reward_hbd"
 
         if reward_steem.amount == 0 and reward_sbd.amount == 0 and reward_vests.amount == 0:
             if len(account.balances["rewards"]) == 3:
@@ -2971,18 +3019,19 @@ class Account(BlockchainObject):
                 op = operations.Claim_reward_balance(
                     **{
                         "account": account["name"],
-                        "reward_steem": reward_steem,
-                        "reward_sbd": reward_sbd,
+                        reward_token: reward_steem,
+                        reward_backed_token: reward_sbd,
                         "reward_vests": reward_vests,
                         "prefix": self.blockchain.prefix,
-                    })
+                        "replace_hive_by_steem": replace_hive_by_steem
+                    })         
             else:
                 reward_steem = account.balances["rewards"][0]
                 reward_vests = account.balances["rewards"][1]
                 op = operations.Claim_reward_balance(
                     **{
                         "account": account["name"],
-                        "reward_steem": reward_steem,
+                        reward_token: reward_steem,
                         "reward_vests": reward_vests,
                         "prefix": self.blockchain.prefix,
                     })
diff --git a/beem/blockchaininstance.py b/beem/blockchaininstance.py
index 817c24f8294bdf85e87e65a8b3f87ce06e37f878..cf244c63a5c0d4aa52e91c25fef2e6cf59e7ca1f 100644
--- a/beem/blockchaininstance.py
+++ b/beem/blockchaininstance.py
@@ -739,6 +739,13 @@ class BlockChainInstance(object):
             return False
         return 'STEEM_CHAIN_ID' in self.get_config()
 
+    def get_replace_hive_by_steem(self):
+        hf_version = int(self.get_blockchain_version().split('.')[1])
+        replace_hive_by_steem = True
+        if self.is_hive and hf_version >= 24:
+            replace_hive_by_steem = False
+        return replace_hive_by_steem
+
     def set_default_account(self, account):
         """ Set the default account to be used
         """
@@ -1016,10 +1023,12 @@ class BlockChainInstance(object):
                 "Not creator account given. Define it with " +
                 "creator=x, or set the default_account using beempy")
         creator = Account(creator, blockchain_instance=self)
+        replace_hive_by_steem = self.get_replace_hive_by_steem()        
         op = {
             "fee": Amount(fee, blockchain_instance=self),
             "creator": creator["name"],
             "prefix": self.prefix,
+            "replace_hive_by_steem": replace_hive_by_steem,
         }
         op = operations.Claim_account(**op)
         return self.finalizeOp(op, creator, "active", **kwargs)
@@ -1194,10 +1203,12 @@ class BlockChainInstance(object):
             addaccount = Account(k, blockchain_instance=self)
             posting_accounts_authority.append([addaccount["name"], 1])
         if combine_with_claim_account:
+            replace_hive_by_steem = self.get_replace_hive_by_steem()              
             op = {
                 "fee": Amount(fee, blockchain_instance=self),
                 "creator": creator["name"],
                 "prefix": self.prefix,
+                "replace_hive_by_steem": replace_hive_by_steem,
             }
             op = operations.Claim_account(**op)
             ops = [op]
@@ -1395,6 +1406,7 @@ class BlockChainInstance(object):
             required_fee_steem = Amount(props["account_creation_fee"], blockchain_instance=self)
         else:
             required_fee_steem = Amount(props["account_creation_fee"], blockchain_instance=self) * 30
+        replace_hive_by_steem = self.get_replace_hive_by_steem()      
         op = {
             "fee": required_fee_steem,
             "creator": creator["name"],
@@ -1414,6 +1426,7 @@ class BlockChainInstance(object):
             'memo_key': memo,
             "json_metadata": json_meta or {},
             "prefix": self.prefix,
+            "replace_hive_by_steem": replace_hive_by_steem,
         }
         op = operations.Account_create(**op)
         return self.finalizeOp(op, creator, "active", **kwargs)
@@ -1622,8 +1635,8 @@ class BlockChainInstance(object):
         props_list = [["key", repr(PrivateKey(wif, prefix=self.prefix).pubkey)]]
         for k in props:
             props_list.append([k, props[k]])
-
-        op = operations.Witness_set_properties({"owner": owner["name"], "props": props_list, "prefix": self.prefix})
+        replace_hive_by_steem = self.get_replace_hive_by_steem()
+        op = operations.Witness_set_properties({"owner": owner["name"], "props": props_list, "prefix": self.prefix, "replace_hive_by_steem": replace_hive_by_steem})
         tb = TransactionBuilder(use_condenser_api=use_condenser_api, blockchain_instance=self)
         tb.appendOps([op])
         tb.appendWif(wif)
@@ -1660,6 +1673,7 @@ class BlockChainInstance(object):
             raise e
         if "account_creation_fee" in props:
             props["account_creation_fee"] = Amount(props["account_creation_fee"], blockchain_instance=self)
+        replace_hive_by_steem = self.get_replace_hive_by_steem()       
         op = operations.Witness_update(
             **{
                 "owner": account["name"],
@@ -1668,6 +1682,7 @@ class BlockChainInstance(object):
                 "props": props,
                 "fee": Amount(0, self.token_symbol, blockchain_instance=self),
                 "prefix": self.prefix,
+                "replace_hive_by_steem": replace_hive_by_steem,
             })
         return self.finalizeOp(op, account, "active", **kwargs)
 
@@ -2078,26 +2093,51 @@ class BlockChainInstance(object):
             options['beneficiaries'] = beneficiaries
 
         default_max_payout = "1000000.000 %s" % (self.backed_token_symbol)
-        comment_op = operations.Comment_options(
-            **{
-                "author":
-                author,
-                "permlink":
-                permlink,
-                "max_accepted_payout":
-                options.get("max_accepted_payout", default_max_payout),
-                "percent_steem_dollars":
-                int(options.get("percent_steem_dollars", STEEM_100_PERCENT)),
-                "allow_votes":
-                options.get("allow_votes", True),
-                "allow_curation_rewards":
-                options.get("allow_curation_rewards", True),
-                "extensions":
-                options.get("extensions", []),
-                "beneficiaries":
-                options.get("beneficiaries", []),
-                "prefix": self.prefix,
-            })
+        replace_hive_by_steem = self.get_replace_hive_by_steem()
+        if not replace_hive_by_steem:
+            comment_op = operations.Comment_options(
+                **{
+                    "author":
+                    author,
+                    "permlink":
+                    permlink,
+                    "max_accepted_payout":
+                    options.get("max_accepted_payout", default_max_payout),
+                    "percent_hive_dollars":
+                    int(options.get("percent_hive_dollars", STEEM_100_PERCENT)),
+                    "allow_votes":
+                    options.get("allow_votes", True),
+                    "allow_curation_rewards":
+                    options.get("allow_curation_rewards", True),
+                    "extensions":
+                    options.get("extensions", []),
+                    "beneficiaries":
+                    options.get("beneficiaries", []),
+                    "prefix": self.prefix,
+                    "replace_hive_by_steem": False,
+                })            
+        else:
+            comment_op = operations.Comment_options(
+                **{
+                    "author":
+                    author,
+                    "permlink":
+                    permlink,
+                    "max_accepted_payout":
+                    options.get("max_accepted_payout", default_max_payout),
+                    "percent_steem_dollars":
+                    int(options.get("percent_steem_dollars", STEEM_100_PERCENT)),
+                    "allow_votes":
+                    options.get("allow_votes", True),
+                    "allow_curation_rewards":
+                    options.get("allow_curation_rewards", True),
+                    "extensions":
+                    options.get("extensions", []),
+                    "beneficiaries":
+                    options.get("beneficiaries", []),
+                    "prefix": self.prefix,
+                    "replace_hive_by_steem": True,
+                })
         return comment_op
 
     def get_api_methods(self):
diff --git a/beem/market.py b/beem/market.py
index 650b45790cc75d0b2be975c5fd6b4d6996959302..94635b7e5d201049eec274159900c7eff35d19cd 100644
--- a/beem/market.py
+++ b/beem/market.py
@@ -590,7 +590,7 @@ class Market(dict):
             amount = Amount(amount, blockchain_instance=self.blockchain)
         else:
             amount = Amount(amount, self["quote"]["symbol"], blockchain_instance=self.blockchain)
-
+        replace_hive_by_steem = self.blockchain.get_replace_hive_by_steem()
         order = operations.Limit_order_create(**{
             "owner": account["name"],
             "orderid": orderid or random.getrandbits(32),
@@ -607,6 +607,7 @@ class Market(dict):
             "expiration": formatTimeFromNow(expiration),
             "fill_or_kill": killfill,
             "prefix": self.blockchain.prefix,
+            "replace_hive_by_steem": replace_hive_by_steem,
         })
 
         if returnOrderId:
@@ -674,7 +675,7 @@ class Market(dict):
             amount = Amount(amount, blockchain_instance=self.blockchain)
         else:
             amount = Amount(amount, self["quote"]["symbol"], blockchain_instance=self.blockchain)
-
+        replace_hive_by_steem = self.blockchain.get_replace_hive_by_steem()
         order = operations.Limit_order_create(**{
             "owner": account["name"],
             "orderid": orderid or random.getrandbits(32),
@@ -691,6 +692,7 @@ class Market(dict):
             "expiration": formatTimeFromNow(expiration),
             "fill_or_kill": killfill,
             "prefix": self.blockchain.prefix,
+            "replace_hive_by_steem": replace_hive_by_steem,
         })
         if returnOrderId:
             # Make blocking broadcasts
diff --git a/beem/version.py b/beem/version.py
index cc4ed752761fe3e3eba8d9fbc638ed7f3956f9c6..5d831152dcf569797b1e73f40975fd74c989f9ce 100644
--- a/beem/version.py
+++ b/beem/version.py
@@ -1,2 +1,2 @@
 """THIS FILE IS GENERATED FROM beem SETUP.PY."""
-version = '0.24.3'
+version = '0.24.4'
diff --git a/beem/witness.py b/beem/witness.py
index 742b2aa69d2081cb8a9007bf1b243eef1e52f8f3..1474ee16c1d80d97d822d5a773b3636a1598f520 100644
--- a/beem/witness.py
+++ b/beem/witness.py
@@ -158,7 +158,7 @@ class Witness(BlockchainObject):
             raise AssertionError()
         if not quote.symbol == self.blockchain.token_symbol:
             raise AssertionError()
-
+        replace_hive_by_steem = self.blockchain.get_replace_hive_by_steem()
         op = operations.Feed_publish(
             **{
                 "publisher": account["name"],
@@ -167,6 +167,7 @@ class Witness(BlockchainObject):
                     "quote": quote,
                 },
                 "prefix": self.blockchain.prefix,
+                "replace_hive_by_steem": replace_hive_by_steem,
             })
         return self.blockchain.finalizeOp(op, account, "active")
 
diff --git a/beemapi/version.py b/beemapi/version.py
index cc4ed752761fe3e3eba8d9fbc638ed7f3956f9c6..5d831152dcf569797b1e73f40975fd74c989f9ce 100644
--- a/beemapi/version.py
+++ b/beemapi/version.py
@@ -1,2 +1,2 @@
 """THIS FILE IS GENERATED FROM beem SETUP.PY."""
-version = '0.24.3'
+version = '0.24.4'
diff --git a/beembase/objects.py b/beembase/objects.py
index de71c8e3ea6ab30d282fdd6f92aa1e22f56ca230..b0e1f41eb40946dfc4471b9b549a8336715c836f 100644
--- a/beembase/objects.py
+++ b/beembase/objects.py
@@ -27,7 +27,8 @@ default_prefix = "STM"
 
 @python_2_unicode_compatible
 class Amount(object):
-    def __init__(self, d, prefix=default_prefix):
+    def __init__(self, d, prefix=default_prefix, replace_hive_by_steem=True):
+        self.replace_hive_by_steem = replace_hive_by_steem
         if isinstance(d, string_types):
             self.amount, self.symbol = d.strip().split(" ")
             self.precision = None
@@ -49,9 +50,10 @@ class Amount(object):
                 raise Exception("Asset unknown")
             self.amount = round(float(self.amount) * 10 ** self.precision)
             # Workaround to allow transfers in HIVE
-            if self.symbol == "HBD":
+
+            if self.symbol == "HBD" and replace_hive_by_steem:
                 self.symbol = "SBD"
-            elif self.symbol == "HIVE":
+            elif self.symbol == "HIVE" and replace_hive_by_steem:
                 self.symbol = "STEEM"
             self.str_repr = '{:.{}f} {}'.format((float(self.amount) / 10 ** self.precision), self.precision, self.symbol)
         elif isinstance(d, list):
@@ -87,9 +89,9 @@ class Amount(object):
             self.amount = d.amount
             self.symbol = d.symbol
             # Workaround to allow transfers in HIVE
-            if self.symbol == "HBD":
+            if self.symbol == "HBD" and replace_hive_by_steem:
                 self.symbol = "SBD"
-            elif self.symbol == "HIVE":
+            elif self.symbol == "HIVE" and replace_hive_by_steem:
                 self.symbol = "STEEM"              
             self.asset = d.asset["asset"]
             self.precision = d.asset["precision"]
@@ -101,9 +103,9 @@ class Amount(object):
     def __bytes__(self):
         # padding
         # Workaround to allow transfers in HIVE
-        if self.symbol == "HBD":
+        if self.symbol == "HBD" and self.replace_hive_by_steem:
             self.symbol = "SBD"
-        elif self.symbol == "HIVE":
+        elif self.symbol == "HIVE" and self.replace_hive_by_steem:
             self.symbol = "STEEM"        
         symbol = self.symbol + "\x00" * (7 - len(self.symbol))
         return (struct.pack("<q", int(self.amount)) + struct.pack("<b", self.precision) +
@@ -182,15 +184,22 @@ class WitnessProps(GrapheneObject):
             if len(args) == 1 and len(kwargs) == 0:
                 kwargs = args[0]
             prefix = kwargs.get("prefix", default_prefix)
+            replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
             if "sbd_interest_rate" in kwargs:
                 super(WitnessProps, self).__init__(OrderedDict([
-                    ('account_creation_fee', Amount(kwargs["account_creation_fee"], prefix=prefix)),
+                    ('account_creation_fee', Amount(kwargs["account_creation_fee"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
                     ('maximum_block_size', Uint32(kwargs["maximum_block_size"])),
                     ('sbd_interest_rate', Uint16(kwargs["sbd_interest_rate"])),
                 ]))
+            elif "hbd_interest_rate" in kwargs:
+                super(WitnessProps, self).__init__(OrderedDict([
+                    ('account_creation_fee', Amount(kwargs["account_creation_fee"], prefix=prefix, replace_hive_by_steem=False)),
+                    ('maximum_block_size', Uint32(kwargs["maximum_block_size"])),
+                    ('hbd_interest_rate', Uint16(kwargs["hbd_interest_rate"])),
+                ]))                
             else:
                 super(WitnessProps, self).__init__(OrderedDict([
-                    ('account_creation_fee', Amount(kwargs["account_creation_fee"], prefix=prefix)),
+                    ('account_creation_fee', Amount(kwargs["account_creation_fee"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
                     ('maximum_block_size', Uint32(kwargs["maximum_block_size"])),
                 ]))
 
@@ -203,9 +212,10 @@ class Price(GrapheneObject):
             if len(args) == 1 and len(kwargs) == 0:
                 kwargs = args[0]
             prefix = kwargs.get("prefix", default_prefix)
+            replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
             super(Price, self).__init__(OrderedDict([
-                ('base', Amount(kwargs["base"], prefix=prefix)),
-                ('quote', Amount(kwargs["quote"], prefix=prefix))
+                ('base', Amount(kwargs["base"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
+                ('quote', Amount(kwargs["quote"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem))
             ]))
 
 
@@ -264,10 +274,11 @@ class ExchangeRate(GrapheneObject):
                 kwargs = args[0]
 
             prefix = kwargs.get("prefix", default_prefix)
+            replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
             super(ExchangeRate, self).__init__(
                 OrderedDict([
-                    ('base', Amount(kwargs["base"], prefix=prefix)),
-                    ('quote', Amount(kwargs["quote"], prefix=prefix)),
+                    ('base', Amount(kwargs["base"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
+                    ('quote', Amount(kwargs["quote"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
                 ]))
 
 
diff --git a/beembase/operations.py b/beembase/operations.py
index 11bea656f669911d728a8b5e0bc6dbd7f82c4e05..20bc44bd65ce9a2a1d7ea76182689f58dd27bf82 100644
--- a/beembase/operations.py
+++ b/beembase/operations.py
@@ -52,6 +52,7 @@ class Transfer(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         if "memo" not in kwargs:
             kwargs["memo"] = ""
         if isinstance(kwargs["memo"], dict):
@@ -65,7 +66,7 @@ class Transfer(GrapheneObject):
         super(Transfer, self).__init__(OrderedDict([
             ('from', String(kwargs["from"])),
             ('to', String(kwargs["to"])),
-            ('amount', Amount(kwargs["amount"], prefix=prefix)),
+            ('amount', Amount(kwargs["amount"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
             ('memo', memo),
         ]))
 
@@ -91,10 +92,11 @@ class Transfer_to_vesting(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         super(Transfer_to_vesting, self).__init__(OrderedDict([
             ('from', String(kwargs["from"])),
             ('to', String(kwargs["to"])),
-            ('amount', Amount(kwargs["amount"], prefix=prefix)),
+            ('amount', Amount(kwargs["amount"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
         ]))
 
 
@@ -182,7 +184,7 @@ class Account_create(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
-
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         if not len(kwargs["new_account_name"]) <= 16:
             raise AssertionError("Account name must be at most 16 chars long")
 
@@ -194,7 +196,7 @@ class Account_create(GrapheneObject):
                 meta = kwargs["json_metadata"]
 
         super(Account_create, self).__init__(OrderedDict([
-            ('fee', Amount(kwargs["fee"], prefix=prefix)),
+            ('fee', Amount(kwargs["fee"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
             ('creator', String(kwargs["creator"])),
             ('new_account_name', String(kwargs["new_account_name"])),
             ('owner', Permission(kwargs["owner"], prefix=prefix)),
@@ -213,7 +215,7 @@ class Account_create_with_delegation(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
-
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         if not len(kwargs["new_account_name"]) <= 16:
             raise AssertionError("Account name must be at most 16 chars long")
 
@@ -225,8 +227,8 @@ class Account_create_with_delegation(GrapheneObject):
                 meta = kwargs["json_metadata"]
 
         super(Account_create_with_delegation, self).__init__(OrderedDict([
-            ('fee', Amount(kwargs["fee"], prefix=prefix)),
-            ('delegation', Amount(kwargs["delegation"], prefix=prefix)),
+            ('fee', Amount(kwargs["fee"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
+            ('delegation', Amount(kwargs["delegation"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
             ('creator', String(kwargs["creator"])),
             ('new_account_name', String(kwargs["new_account_name"])),
             ('owner', Permission(kwargs["owner"], prefix=prefix)),
@@ -340,6 +342,7 @@ class Create_proposal(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         extensions = Array([])
 
         super(Create_proposal, self).__init__(
@@ -348,7 +351,7 @@ class Create_proposal(GrapheneObject):
                 ('receiver', String(kwargs["receiver"])),
                 ('start_date', PointInTime(kwargs["start_date"])),
                 ('end_date', PointInTime(kwargs["end_date"])),
-                ('daily_pay', Amount(kwargs["daily_pay"], prefix=prefix)),
+                ('daily_pay', Amount(kwargs["daily_pay"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
                 ('subject', String(kwargs["subject"])),
                 ('permlink', String(kwargs["permlink"])),
                 ('extensions', extensions)
@@ -402,6 +405,7 @@ class Witness_set_properties(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.pop("prefix", default_prefix)
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         extensions = Array([])
         props = {}
         for k in kwargs["props"]:
@@ -424,14 +428,20 @@ class Witness_set_properties(GrapheneObject):
                 props[k[0]] = (hexlify(Uint32(k[1]).__bytes__())).decode()
             elif isinstance(k[1], int) and k[0] in ["sbd_interest_rate"]:
                 props[k[0]] = (hexlify(Uint16(k[1]).__bytes__())).decode()
+            elif isinstance(k[1], int) and k[0] in ["hbd_interest_rate"]:
+                props[k[0]] = (hexlify(Uint16(k[1]).__bytes__())).decode()            
             elif not isinstance(k[1], str) and k[0] in ["account_creation_fee"]:
-                props[k[0]] = (hexlify(Amount(k[1], prefix=prefix).__bytes__())).decode()
+                props[k[0]] = (hexlify(Amount(k[1], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem).__bytes__())).decode()
             elif not is_hex and isinstance(k[1], str) and k[0] in ["account_creation_fee"]:
-                props[k[0]] = (hexlify(Amount(k[1], prefix=prefix).__bytes__())).decode()
+                props[k[0]] = (hexlify(Amount(k[1], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem).__bytes__())).decode()
             elif not isinstance(k[1], str) and k[0] in ["sbd_exchange_rate"]:
                 if 'prefix' not in k[1]:
                     k[1]['prefix'] = prefix
-                props[k[0]] = (hexlify(ExchangeRate(k[1]).__bytes__())).decode()
+                props[k[0]] = (hexlify(ExchangeRate(k[1], replace_hive_by_steem=replace_hive_by_steem).__bytes__())).decode()
+            elif not isinstance(k[1], str) and k[0] in ["hbd_exchange_rate"]:
+                if 'prefix' not in k[1]:
+                    k[1]['prefix'] = prefix
+                props[k[0]] = (hexlify(ExchangeRate(k[1], replace_hive_by_steem=False).__bytes__())).decode()                
             elif not is_hex and k[0] in ["url"]:
                 props[k[0]] = (hexlify(String(k[1]).__bytes__())).decode()
             else:
@@ -460,7 +470,7 @@ class Witness_update(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.pop("prefix", default_prefix)
-
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         if "block_signing_key" in kwargs and kwargs["block_signing_key"]:
             block_signing_key = (PublicKey(kwargs["block_signing_key"], prefix=prefix))
         else:
@@ -473,8 +483,8 @@ class Witness_update(GrapheneObject):
             ('owner', String(kwargs["owner"])),
             ('url', String(kwargs["url"])),
             ('block_signing_key', block_signing_key),
-            ('props', WitnessProps(kwargs["props"])),
-            ('fee', Amount(kwargs["fee"], prefix=prefix)),
+            ('props', WitnessProps(kwargs["props"], replace_hive_by_steem=replace_hive_by_steem)),
+            ('fee', Amount(kwargs["fee"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
         ]))
 
 
@@ -538,7 +548,7 @@ class Comment_options(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
-
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         # handle beneficiaries
         if "beneficiaries" in kwargs and kwargs['beneficiaries']:
             kwargs['extensions'] = [[0, {'beneficiaries': kwargs['beneficiaries']}]]
@@ -546,20 +556,34 @@ class Comment_options(GrapheneObject):
         extensions = Array([])
         if "extensions" in kwargs and kwargs["extensions"]:
             extensions = Array([CommentOptionExtensions(o) for o in kwargs["extensions"]])
-
-        super(Comment_options, self).__init__(
-            OrderedDict([
-                ('author', String(kwargs["author"])),
-                ('permlink', String(kwargs["permlink"])),
-                ('max_accepted_payout',
-                 Amount(kwargs["max_accepted_payout"], prefix=prefix)),
-                ('percent_steem_dollars',
-                 Uint16(int(kwargs["percent_steem_dollars"]))),
-                ('allow_votes', Bool(bool(kwargs["allow_votes"]))),
-                ('allow_curation_rewards',
-                 Bool(bool(kwargs["allow_curation_rewards"]))),
-                ('extensions', extensions),
-            ]))
+        if "percent_steem_dollars" in kwargs:
+            super(Comment_options, self).__init__(
+                OrderedDict([
+                    ('author', String(kwargs["author"])),
+                    ('permlink', String(kwargs["permlink"])),
+                    ('max_accepted_payout',
+                     Amount(kwargs["max_accepted_payout"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
+                    ('percent_steem_dollars',
+                     Uint16(int(kwargs["percent_steem_dollars"]))),
+                    ('allow_votes', Bool(bool(kwargs["allow_votes"]))),
+                    ('allow_curation_rewards',
+                     Bool(bool(kwargs["allow_curation_rewards"]))),
+                    ('extensions', extensions),
+                ]))
+        else:
+            super(Comment_options, self).__init__(
+                OrderedDict([
+                    ('author', String(kwargs["author"])),
+                    ('permlink', String(kwargs["permlink"])),
+                    ('max_accepted_payout',
+                     Amount(kwargs["max_accepted_payout"], prefix=prefix, replace_hive_by_steem=False)),
+                    ('percent_hive_dollars',
+                     Uint16(int(kwargs["percent_hive_dollars"]))),
+                    ('allow_votes', Bool(bool(kwargs["allow_votes"]))),
+                    ('allow_curation_rewards',
+                     Bool(bool(kwargs["allow_curation_rewards"]))),
+                    ('extensions', extensions),
+                ]))            
 
 
 class Delete_comment(GrapheneObject):
@@ -582,12 +606,13 @@ class Feed_publish(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         if 'prefix' not in kwargs['exchange_rate']:
             kwargs['exchange_rate']['prefix'] = prefix
         super(Feed_publish, self).__init__(
             OrderedDict([
                 ('publisher', String(kwargs["publisher"])),
-                ('exchange_rate', ExchangeRate(kwargs["exchange_rate"])),
+                ('exchange_rate', ExchangeRate(kwargs["exchange_rate"], replace_hive_by_steem=replace_hive_by_steem)),
             ]))
 
 
@@ -598,11 +623,12 @@ class Convert(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         super(Convert, self).__init__(
             OrderedDict([
                 ('owner', String(kwargs["owner"])),
                 ('requestid', Uint32(kwargs["requestid"])),
-                ('amount', Amount(kwargs["amount"], prefix=prefix)),
+                ('amount', Amount(kwargs["amount"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
             ]))
 
 
@@ -641,10 +667,11 @@ class Claim_account(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         super(Claim_account, self).__init__(
             OrderedDict([
                 ('creator', String(kwargs["creator"])),
-                ('fee', Amount(kwargs["fee"], prefix=prefix)),
+                ('fee', Amount(kwargs["fee"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
                 ('extensions', Array([])),
             ]))
 
@@ -702,12 +729,13 @@ class Limit_order_create(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         super(Limit_order_create, self).__init__(
             OrderedDict([
                 ('owner', String(kwargs["owner"])),
                 ('orderid', Uint32(kwargs["orderid"])),
-                ('amount_to_sell', Amount(kwargs["amount_to_sell"], prefix=prefix)),
-                ('min_to_receive', Amount(kwargs["min_to_receive"], prefix=prefix)),
+                ('amount_to_sell', Amount(kwargs["amount_to_sell"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
+                ('min_to_receive', Amount(kwargs["min_to_receive"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
                 ('fill_or_kill', Bool(kwargs["fill_or_kill"])),
                 ('expiration', PointInTime(kwargs["expiration"])),
             ]))
@@ -720,15 +748,16 @@ class Limit_order_create2(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         if 'prefix' not in kwargs['exchange_rate']:
             kwargs['exchange_rate']['prefix'] = prefix
         super(Limit_order_create2, self).__init__(
             OrderedDict([
                 ('owner', String(kwargs["owner"])),
                 ('orderid', Uint32(kwargs["orderid"])),
-                ('amount_to_sell', Amount(kwargs["amount_to_sell"], prefix=prefix)),
+                ('amount_to_sell', Amount(kwargs["amount_to_sell"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
                 ('fill_or_kill', Bool(kwargs["fill_or_kill"])),
-                ('exchange_rate', ExchangeRate(kwargs["exchange_rate"])),
+                ('exchange_rate', ExchangeRate(kwargs["exchange_rate"], replace_hive_by_steem=replace_hive_by_steem)),
                 ('expiration', PointInTime(kwargs["expiration"])),
             ]))
 
@@ -754,6 +783,7 @@ class Transfer_from_savings(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         if "memo" not in kwargs:
             kwargs["memo"] = ""
 
@@ -762,7 +792,7 @@ class Transfer_from_savings(GrapheneObject):
                 ('from', String(kwargs["from"])),
                 ('request_id', Uint32(kwargs["request_id"])),
                 ('to', String(kwargs["to"])),
-                ('amount', Amount(kwargs["amount"], prefix=prefix)),
+                ('amount', Amount(kwargs["amount"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
                 ('memo', String(kwargs["memo"])),
             ]))
 
@@ -787,21 +817,37 @@ class Claim_reward_balance(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
-        if "reward_sbd" in kwargs:
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
+        if "reward_sbd" in kwargs and "reward_steem" in kwargs:
             super(Claim_reward_balance, self).__init__(
                 OrderedDict([
                     ('account', String(kwargs["account"])),
-                    ('reward_steem', Amount(kwargs["reward_steem"], prefix=prefix)),
-                    ('reward_sbd', Amount(kwargs["reward_sbd"], prefix=prefix)),
+                    ('reward_steem', Amount(kwargs["reward_steem"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
+                    ('reward_sbd', Amount(kwargs["reward_sbd"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
                     ('reward_vests', Amount(kwargs["reward_vests"], prefix=prefix)),
                 ]))
-        else:
+        elif "reward_hbd" in kwargs and "reward_hive" in kwargs:
             super(Claim_reward_balance, self).__init__(
                 OrderedDict([
                     ('account', String(kwargs["account"])),
-                    ('reward_steem', Amount(kwargs["reward_steem"], prefix=prefix)),
+                    ('reward_hive', Amount(kwargs["reward_hive"], prefix=prefix, replace_hive_by_steem=False)),
+                    ('reward_hbd', Amount(kwargs["reward_hbd"], prefix=prefix, replace_hive_by_steem=False)),
+                    ('reward_vests', Amount(kwargs["reward_vests"], prefix=prefix)),
+                ]))    
+        elif "reward_steem" in kwargs:
+            super(Claim_reward_balance, self).__init__(
+                OrderedDict([
+                    ('account', String(kwargs["account"])),
+                    ('reward_steem', Amount(kwargs["reward_steem"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
                     ('reward_vests', Amount(kwargs["reward_vests"], prefix=prefix)),
                 ]))
+        else:
+            super(Claim_reward_balance, self).__init__(
+                OrderedDict([
+                    ('account', String(kwargs["account"])),
+                    ('reward_hive', Amount(kwargs["reward_hive"], prefix=prefix, replace_hive_by_steem=False)),
+                    ('reward_vests', Amount(kwargs["reward_vests"], prefix=prefix)),
+                ]))            
 
 
 class Transfer_to_savings(GrapheneObject):
@@ -811,13 +857,14 @@ class Transfer_to_savings(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         if "memo" not in kwargs:
             kwargs["memo"] = ""
         super(Transfer_to_savings, self).__init__(
             OrderedDict([
                 ('from', String(kwargs["from"])),
                 ('to', String(kwargs["to"])),
-                ('amount', Amount(kwargs["amount"], prefix=prefix)),
+                ('amount', Amount(kwargs["amount"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
                 ('memo', String(kwargs["memo"])),
             ]))
 
@@ -864,25 +911,41 @@ class Escrow_transfer(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
         meta = ""
         if "json_meta" in kwargs and kwargs["json_meta"]:
             if (isinstance(kwargs["json_meta"], dict) or isinstance(kwargs["json_meta"], list)):
                 meta = json.dumps(kwargs["json_meta"])
             else:
                 meta = kwargs["json_meta"]
-        super(Escrow_transfer, self).__init__(
-            OrderedDict([
-                ('from', String(kwargs["from"])),
-                ('to', String(kwargs["to"])),
-                ('agent', String(kwargs["agent"])),
-                ('escrow_id', Uint32(kwargs["escrow_id"])),
-                ('sbd_amount', Amount(kwargs["sbd_amount"], prefix=prefix)),
-                ('steem_amount', Amount(kwargs["steem_amount"], prefix=prefix)),
-                ('fee', Amount(kwargs["fee"], prefix=prefix)),
-                ('ratification_deadline', PointInTime(kwargs["ratification_deadline"])),
-                ('escrow_expiration', PointInTime(kwargs["escrow_expiration"])),
-                ('json_meta', String(meta)),
-            ]))
+        if "sbd_amount" in kwargs and "steem_amount" in kwargs:
+            super(Escrow_transfer, self).__init__(
+                OrderedDict([
+                    ('from', String(kwargs["from"])),
+                    ('to', String(kwargs["to"])),
+                    ('agent', String(kwargs["agent"])),
+                    ('escrow_id', Uint32(kwargs["escrow_id"])),
+                    ('sbd_amount', Amount(kwargs["sbd_amount"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
+                    ('steem_amount', Amount(kwargs["steem_amount"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
+                    ('fee', Amount(kwargs["fee"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
+                    ('ratification_deadline', PointInTime(kwargs["ratification_deadline"])),
+                    ('escrow_expiration', PointInTime(kwargs["escrow_expiration"])),
+                    ('json_meta', String(meta)),
+                ]))
+        else:
+            super(Escrow_transfer, self).__init__(
+                OrderedDict([
+                    ('from', String(kwargs["from"])),
+                    ('to', String(kwargs["to"])),
+                    ('agent', String(kwargs["agent"])),
+                    ('escrow_id', Uint32(kwargs["escrow_id"])),
+                    ('hbd_amount', Amount(kwargs["hbd_amount"], prefix=prefix, replace_hive_by_steem=False)),
+                    ('hive_amount', Amount(kwargs["hive_amount"], prefix=prefix, replace_hive_by_steem=False)),
+                    ('fee', Amount(kwargs["fee"], prefix=prefix, replace_hive_by_steem=False)),
+                    ('ratification_deadline', PointInTime(kwargs["ratification_deadline"])),
+                    ('escrow_expiration', PointInTime(kwargs["escrow_expiration"])),
+                    ('json_meta', String(meta)),
+                ]))            
 
 
 class Escrow_dispute(GrapheneObject):
@@ -907,15 +970,27 @@ class Escrow_release(GrapheneObject):
         if len(args) == 1 and len(kwargs) == 0:
             kwargs = args[0]
         prefix = kwargs.get("prefix", default_prefix)
-        super(Escrow_release, self).__init__(
-            OrderedDict([
-                ('from', String(kwargs["from"])),
-                ('to', String(kwargs["to"])),
-                ('who', String(kwargs["who"])),
-                ('escrow_id', Uint32(kwargs["escrow_id"])),
-                ('sbd_amount', Amount(kwargs["sbd_amount"], prefix=prefix)),
-                ('steem_amount', Amount(kwargs["steem_amount"], prefix=prefix)),
-            ]))
+        replace_hive_by_steem = kwargs.get("replace_hive_by_steem", True)
+        if "steem_amount" in kwargs and "sbd_amount" in kwargs:
+            super(Escrow_release, self).__init__(
+                OrderedDict([
+                    ('from', String(kwargs["from"])),
+                    ('to', String(kwargs["to"])),
+                    ('who', String(kwargs["who"])),
+                    ('escrow_id', Uint32(kwargs["escrow_id"])),
+                    ('sbd_amount', Amount(kwargs["sbd_amount"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
+                    ('steem_amount', Amount(kwargs["steem_amount"], prefix=prefix, replace_hive_by_steem=replace_hive_by_steem)),
+                ]))
+        else:
+            super(Escrow_release, self).__init__(
+                OrderedDict([
+                    ('from', String(kwargs["from"])),
+                    ('to', String(kwargs["to"])),
+                    ('who', String(kwargs["who"])),
+                    ('escrow_id', Uint32(kwargs["escrow_id"])),
+                    ('hbd_amount', Amount(kwargs["hbd_amount"], prefix=prefix, replace_hive_by_steem=False)),
+                    ('hive_amount', Amount(kwargs["hive_amount"], prefix=prefix, replace_hive_by_steem=False)),
+                ]))            
 
 
 class Escrow_approve(GrapheneObject):
diff --git a/beembase/version.py b/beembase/version.py
index cc4ed752761fe3e3eba8d9fbc638ed7f3956f9c6..5d831152dcf569797b1e73f40975fd74c989f9ce 100644
--- a/beembase/version.py
+++ b/beembase/version.py
@@ -1,2 +1,2 @@
 """THIS FILE IS GENERATED FROM beem SETUP.PY."""
-version = '0.24.3'
+version = '0.24.4'
diff --git a/beemgraphenebase/version.py b/beemgraphenebase/version.py
index cc4ed752761fe3e3eba8d9fbc638ed7f3956f9c6..5d831152dcf569797b1e73f40975fd74c989f9ce 100644
--- a/beemgraphenebase/version.py
+++ b/beemgraphenebase/version.py
@@ -1,2 +1,2 @@
 """THIS FILE IS GENERATED FROM beem SETUP.PY."""
-version = '0.24.3'
+version = '0.24.4'
diff --git a/setup.py b/setup.py
index 3643e0713fb422068b014195a36f559fd83f85c1..8bbb71c6e30a0e6c596d7a553f0e5533d20e5d1a 100755
--- a/setup.py
+++ b/setup.py
@@ -16,7 +16,7 @@ except LookupError:
     ascii = codecs.lookup('ascii')
     codecs.register(lambda name, enc=ascii: {True: enc}.get(name == 'mbcs'))
 
-VERSION = '0.24.3'
+VERSION = '0.24.4'
 
 tests_require = ['mock >= 2.0.0', 'pytest', 'pytest-mock', 'parameterized']