diff --git a/contrib/devtools/import_claims_from_claimsintrie_output.py b/contrib/devtools/import_claims_from_claimsintrie_output.py
new file mode 100755
index 000000000..84acbf73f
--- /dev/null
+++ b/contrib/devtools/import_claims_from_claimsintrie_output.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python3
+
+import json
+import math
+import subprocess as sp
+import sys
+
+
+def main():
+    if len(sys.argv) < 2:  # pass in the CLI tool so that we don't have to replicate the cookie handling
+        print('Missing required argument: <path to CLI tool> [CLI tool args...]', file=sys.stderr)
+        sys.exit(1)
+
+    cli_tool = sys.argv[1:]
+    if '-regtest' not in cli_tool:
+        cli_tool.append('-regtest')
+
+    result = sp.run(cli_tool + ['getblockchaininfo'], stdout=sp.PIPE, universal_newlines=True)
+    info = json.loads(result.stdout)
+    if not info or info['chain'] != 'lbrycrdreg':
+        print('Unable to query block chain info; are you missing the RPC authentication parameters?', file=sys.stderr)
+        sys.exit(2)
+
+    claimsintrie = json.load(sys.stdin)
+    i = 0
+    total_i = len(claimsintrie)
+    print('Importing ' + str(total_i) + ' names. Progress:')
+    for node in claimsintrie:
+        if 'name' in node and 'claims' in node:
+            prev_amount = sys.float_info.max
+            for claim in node['claims']:
+                amount = claim['amount'] if claim['amount'] < prev_amount else prev_amount / 2.0
+                if amount <= 0.0:
+                    amount = 0.0000001
+                prev_amount = amount
+
+                # ensure that we have enough LBC to cover that amount:
+                result = sp.run(cli_tool + ['getbalance'], stdout=sp.PIPE, universal_newlines=True)
+                balance = float(result.stdout)
+                while balance < amount + 10.0:  # assuming no fees greater than 10
+                    needed_blocks = math.ceil(amount + 100.0 - balance)
+                    sp.run(cli_tool + ['generate', str(needed_blocks)], stdout=sp.PIPE, universal_newlines=True)
+                    result = sp.run(cli_tool + ['getbalance'], stdout=sp.PIPE, universal_newlines=True)
+                    balance = float(result.stdout)
+
+                # insert the claim:
+                name = node['name'].replace('\x00', '')  # not dealing with encodings today
+                value = claim['value'].replace('\x00', '')
+                result = sp.run(cli_tool + ['claimname', name, value, "{:17.8f}".format(amount)],
+                                stdout=sp.PIPE, universal_newlines=True)
+                txid = result.stdout
+                if not txid or 'error' in txid:
+                    print('Failed to create claim named ' + node['name'] +
+                          '. Message: ' + txid + ', Amount: ' + str(amount), file=sys.stderr)
+                    sys.exit(3)
+        i += 1
+        workdone = i / total_i
+        print('\r[{0:20s}] {1:.1f}%, {2}'.format('#' * int(workdone * 20), workdone * 100, i), end='', flush=True)
+
+    sp.run(cli_tool + ['generate', '20'], stdout=sp.PIPE, universal_newlines=True)  # far enough for activation
+    print()
+
+
+if __name__ == '__main__':
+    main()
diff --git a/contrib/devtools/import_claims_from_name_per_line.py b/contrib/devtools/import_claims_from_name_per_line.py
new file mode 100755
index 000000000..8e37194a0
--- /dev/null
+++ b/contrib/devtools/import_claims_from_name_per_line.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python3
+
+import datetime
+import json
+import math
+import subprocess as sp
+import sys
+
+
+def main():
+    if len(sys.argv) < 2:  # pass in the CLI tool so that we don't have to replicate the cookie handling
+        print('Missing required argument: <path to CLI tool> [CLI tool args...]', file=sys.stderr)
+        sys.exit(1)
+
+    cli_tool = sys.argv[1:]
+    if '-regtest' not in cli_tool:
+        cli_tool.append('-regtest')
+
+    result = sp.run(cli_tool + ['getblockchaininfo'], stdout=sp.PIPE, universal_newlines=True)
+    info = json.loads(result.stdout)
+    if not info or info['chain'] != 'lbrycrdreg':
+        print('Unable to query block chain info; are you missing the RPC authentication parameters?', file=sys.stderr)
+        sys.exit(2)
+
+    names = sys.stdin.readlines()
+    i = 0
+    total_i = len(names)
+    print('Importing ' + str(total_i) + ' names. Progress:')
+    # make sure we have neough LBC to start:
+    amount = 1 / 400
+    for name in names:
+
+        # as noted below, we roll the block forward for every 100 names
+        if i % 100 == 0:  # before adding any names ensure that we have enough mula to roll the block forward after
+            result = sp.run(cli_tool + ['getbalance'], stdout=sp.PIPE, universal_newlines=True)
+            balance = float(result.stdout)
+            while balance < amount * 100.0 + 10.0:  # assuming no fees greater than 10
+                needed_blocks = math.ceil(amount * 100.0 + 10.0 - balance)
+                sp.run(cli_tool + ['generate', str(needed_blocks)], stdout=sp.PIPE, universal_newlines=True)
+                result = sp.run(cli_tool + ['getbalance'], stdout=sp.PIPE, universal_newlines=True)
+                balance = float(result.stdout)
+
+        result = sp.run(cli_tool + ['claimname', name, str(datetime.datetime.utcnow().isoformat()),
+                                    "{:17.8f}".format(amount)], stdout=sp.PIPE, universal_newlines=True)
+        txid = result.stdout
+        if not txid or 'error' in txid:
+            print('Failed to create claim named ' + name +
+                  '. Message: ' + txid + ', Amount: ' + str(amount), file=sys.stderr)
+            sys.exit(3)
+
+        i += 1
+        if i % 100 == 0 or i == total_i:  # time to flush
+            sp.run(cli_tool + ['generate', '1'], stdout=sp.PIPE, universal_newlines=True)
+
+        workdone = i / total_i
+        print('\r[{0:20s}] {1:.1f}%, {2}'.format('#' * int(workdone * 20), workdone * 100, i), end='', flush=True)
+
+    print()
+
+
+if __name__ == '__main__':
+    main()