diff --git a/silkaj/tx_history.py b/silkaj/tx_history.py
index 2dba83d8f8084b288025a2e2070202726e1b1ff2..4ad4bcbae4309eaa3c21c09e6eab98faddb5ea92 100644
--- a/silkaj/tx_history.py
+++ b/silkaj/tx_history.py
@@ -33,8 +33,9 @@ from silkaj.tools import CurrencySymbol
 @command("history", help="Display transaction history")
 @argument("pubkey")
 @option("--uids", "-u", is_flag=True, help="Display uids")
+@option("--full-pubkey", "-f", is_flag=True, help="Display full-length pubkeys")
 @coroutine
-async def transaction_history(pubkey, uids):
+async def transaction_history(pubkey, uids, full_pubkey):
     if check_pubkey_format(pubkey):
         pubkey = validate_checksum(pubkey)
 
@@ -47,7 +48,7 @@ async def transaction_history(pubkey, uids):
     await get_transactions_history(client, pubkey, received_txs, sent_txs)
     remove_duplicate_txs(received_txs, sent_txs)
     txs_list = await generate_table(
-        received_txs, sent_txs, pubkey, ud_value, currency_symbol, uids
+        received_txs, sent_txs, pubkey, ud_value, currency_symbol, uids, full_pubkey
     )
     table = Texttable(max_width=get_terminal_size()[0])
     table.add_rows(txs_list)
@@ -100,7 +101,7 @@ def remove_duplicate_txs(received_txs, sent_txs):
 
 
 async def generate_table(
-    received_txs, sent_txs, pubkey, ud_value, currency_symbol, uids
+    received_txs, sent_txs, pubkey, ud_value, currency_symbol, uids, full_pubkey
 ):
     """
     Generate information in a list of lists for texttabe
@@ -110,8 +111,10 @@ async def generate_table(
     """
 
     received_txs_table, sent_txs_table = list(), list()
-    await parse_received_tx(received_txs_table, received_txs, pubkey, ud_value, uids)
-    await parse_sent_tx(sent_txs_table, sent_txs, pubkey, ud_value, uids)
+    await parse_received_tx(
+        received_txs_table, received_txs, pubkey, ud_value, uids, full_pubkey
+    )
+    await parse_sent_tx(sent_txs_table, sent_txs, pubkey, ud_value, uids, full_pubkey)
     txs_table = received_txs_table + sent_txs_table
 
     table_titles = [
@@ -127,7 +130,9 @@ async def generate_table(
     return txs_table
 
 
-async def parse_received_tx(received_txs_table, received_txs, pubkey, ud_value, uids):
+async def parse_received_tx(
+    received_txs_table, received_txs, pubkey, ud_value, uids, full_pubkey
+):
     """
     Extract issuers’ pubkeys
     Get identities from pubkeys
@@ -147,7 +152,7 @@ async def parse_received_tx(received_txs_table, received_txs, pubkey, ud_value,
         tx_list.append(str())
         for i, issuer in enumerate(received_tx.issuers):
             tx_list[1] += prefix(None, None, i) + assign_idty_from_pubkey(
-                issuer, identities
+                issuer, identities, full_pubkey
             )
         amounts = tx_amount(received_tx, pubkey, received_func)[0]
         tx_list.append(amounts / 100)
@@ -156,7 +161,7 @@ async def parse_received_tx(received_txs_table, received_txs, pubkey, ud_value,
         received_txs_table.append(tx_list)
 
 
-async def parse_sent_tx(sent_txs_table, sent_txs, pubkey, ud_value, uids):
+async def parse_sent_tx(sent_txs_table, sent_txs, pubkey, ud_value, uids, full_pubkey):
     """
     Extract recipients’ pubkeys from outputs
     Get identities from pubkeys
@@ -196,7 +201,7 @@ async def parse_sent_tx(sent_txs_table, sent_txs, pubkey, ud_value, uids):
                     round(neg(amount_in_current_base(output)) / ud_value, 2)
                 )
                 tx_list[1] += prefix(tx_list[1], outputs, 0) + assign_idty_from_pubkey(
-                    output.condition.left.pubkey, identities
+                    output.condition.left.pubkey, identities, full_pubkey
                 )
         tx_list.append(amounts)
         tx_list.append(amounts_ud)
@@ -241,8 +246,8 @@ def output_available(condition, comparison, value):
         return False
 
 
-def assign_idty_from_pubkey(pubkey, identities):
-    idty = display_pubkey_and_checksum(pubkey, True)
+def assign_idty_from_pubkey(pubkey, identities, full_pubkey):
+    idty = display_pubkey_and_checksum(pubkey, short=not full_pubkey)
     for identity in identities:
         if pubkey == identity["pubkey"]:
             idty = "{0} - {1}".format(
diff --git a/tests/test_tx_history.py b/tests/test_tx_history.py
index 3f9e594950dc87dd40708d45c5bd6fc2a5160196..15677a12d6d2123bdd21ec9581b754de53603bd9 100644
--- a/tests/test_tx_history.py
+++ b/tests/test_tx_history.py
@@ -32,16 +32,31 @@ async def test_tx_history_generate_table():
     pubkey = "78ZwwgpgdH5uLZLbThUQH7LKwPgjMunYfLiCfUCySkM8"
 
     received_txs, sent_txs = list(), list()
-    await tx_history.get_transactions_history(client, pubkey, received_txs, sent_txs)
+    await tx_history.get_transactions_history(
+        client,
+        pubkey,
+        received_txs,
+        sent_txs,
+    )
 
     tx_history.remove_duplicate_txs(received_txs, sent_txs)
     txs_list = await tx_history.generate_table(
-        received_txs, sent_txs, pubkey, ud_value, currency, uids
+        received_txs, sent_txs, pubkey, ud_value, currency, uids, full_pubkey=False
+    )
+    txs_list_full = await tx_history.generate_table(
+        received_txs, sent_txs, pubkey, ud_value, currency, uids, full_pubkey=True
     )
     await client.close()
 
     for tx_list in txs_list:
         assert len(tx_list) == table_columns
+    assert "…:" in txs_list[1][1]
+    assert len(txs_list[1][1]) == 13
+
+    assert not "…:" in txs_list_full[1][1]
+    assert ":" in txs_list_full[1][1]
+    # this length is not true for multisig txs, which are very unlikely for now.
+    assert len(txs_list_full[1][1]) == 47 or len(txs_list_full[1][1]) == 48
 
 
 @pytest.mark.parametrize(