diff --git a/lbrynet/core/Wallet.py b/lbrynet/core/Wallet.py
index fa512907d..d24ef9200 100644
--- a/lbrynet/core/Wallet.py
+++ b/lbrynet/core/Wallet.py
@@ -537,6 +537,10 @@ class Wallet(object):
         decoded = ClaimDict.load_dict(metadata)
         serialized = decoded.serialized
 
+        amt = yield self.get_max_usable_balance_for_claim(name)
+        if bid > amt:
+            raise InsufficientFundsError()
+
         claim = yield self._send_name_claim(name, serialized.encode('hex'),
                                             bid, certificate_id, claim_address, change_address)
 
@@ -972,6 +976,11 @@ class LBRYumWallet(Wallet):
             lambda result: Decimal(result['confirmed']) + Decimal(result.get('unconfirmed', 0.0)))
         return d
 
+    @defer.inlineCallbacks
+    def get_max_usable_balance_for_claim(self, claim_name):
+        amt = yield self._run_cmd_as_defer_to_thread('get_max_spendable_amt_for_claim', claim_name)
+        defer.returnValue(amt)
+
     # Always create and return a brand new address
     def get_new_address(self, for_change=False, account=None):
         return defer.succeed(self.wallet.create_new_address(account=account,
diff --git a/lbrynet/daemon/Daemon.py b/lbrynet/daemon/Daemon.py
index b32f958cb..4169bdf0b 100644
--- a/lbrynet/daemon/Daemon.py
+++ b/lbrynet/daemon/Daemon.py
@@ -2005,6 +2005,12 @@ class Daemon(AuthJSONRPCServer):
         if bid <= 0.0:
             raise ValueError("Bid value must be greater than 0.0")
 
+        amt = yield self.session.wallet.get_max_usable_balance_for_claim(name)
+        if bid > amt:
+            raise InsufficientFundsError(
+                "Please lower the bid value, the max amount you can specify for this claim is {}"
+                .format(amt))
+
         metadata = metadata or {}
         if fee is not None:
             metadata['fee'] = fee
diff --git a/lbrynet/tests/unit/core/test_Wallet.py b/lbrynet/tests/unit/core/test_Wallet.py
index 946472d2e..c2d19e61d 100644
--- a/lbrynet/tests/unit/core/test_Wallet.py
+++ b/lbrynet/tests/unit/core/test_Wallet.py
@@ -73,6 +73,8 @@ class MocLbryumWallet(LBRYumWallet):
     def _save_name_metadata(self, name, claim_outpoint, sd_hash):
         return defer.succeed(True)
 
+    def get_max_usable_balance_for_claim(self, name):
+        return defer.succeed(3)
 
 class WalletTest(unittest.TestCase):
     @defer.inlineCallbacks