diff --git a/src/cutecoin/gui/views/wot.py b/src/cutecoin/gui/views/wot.py
index aa2728305247146d147a215ce8bc90eb92602370..42d684065dbe52e944beb856d3147e36631a3479 100644
--- a/src/cutecoin/gui/views/wot.py
+++ b/src/cutecoin/gui/views/wot.py
@@ -59,6 +59,7 @@ class Scene(QGraphicsScene):
     node_clicked = pyqtSignal(str, name='nodeClicked')
     node_signed = pyqtSignal(dict, name='nodeSigned')
     node_transaction = pyqtSignal(dict, name='nodeTransaction')
+    node_contact = pyqtSignal(dict, name='nodeContact')
 
     def __init__(self, parent=None):
         """
@@ -171,6 +172,7 @@ class Node(QGraphicsEllipseItem):
         self.menu = None
         self.action_sign = None
         self.action_transaction = None
+        self.action_contact = None
 
         # color around ellipse
         outline_color = QColor('grey')
@@ -244,6 +246,11 @@ class Node(QGraphicsEllipseItem):
         self.action_transaction = QAction('Send money to identity', self.scene())
         self.menu.addAction(self.action_transaction)
         self.action_transaction.triggered.connect(self.transaction_action)
+        # action add identity as contact
+        self.action_contact = QAction('Add identity as contact', self.scene())
+        self.menu.addAction(self.action_contact)
+        self.action_contact.triggered.connect(self.contact_action)
+        # run menu
         self.menu.exec(event.screenPos())
 
     def add_arc(self, arc):
@@ -268,6 +275,12 @@ class Node(QGraphicsEllipseItem):
         # trigger scene signal
         self.scene().node_transaction.emit(self.metadata)
 
+    def contact_action(self):
+        """
+        Transaction action to identity node
+        """
+        # trigger scene signal
+        self.scene().node_contact.emit(self.metadata)
 
 class Arc(QGraphicsLineItem):
     def __init__(self, source_node, destination_node, metadata):
diff --git a/src/cutecoin/gui/wot_tab.py b/src/cutecoin/gui/wot_tab.py
index ec7f4f5d817c249b4d9bc89f7273120f400edcd1..ebc4eeabe0b4cbcd339842474dbfb8ada5abb1cd 100644
--- a/src/cutecoin/gui/wot_tab.py
+++ b/src/cutecoin/gui/wot_tab.py
@@ -12,6 +12,7 @@ from .certification import CertificationDialog
 from .add_contact import AddContactDialog
 from .transfer import TransferMoneyDialog
 
+
 class WotTabWidget(QWidget, Ui_WotTabWidget):
     def __init__(self, account, community, parent=None):
         """
@@ -34,6 +35,7 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
         self.graphicsView.scene().node_clicked.connect(self.draw_graph)
         self.graphicsView.scene().node_signed.connect(self.sign_node)
         self.graphicsView.scene().node_transaction.connect(self.send_money_to_node)
+        self.graphicsView.scene().node_contact.connect(self.add_node_as_contact)
 
         self.account = account
         self.community = community
@@ -175,15 +177,18 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
         dialog.radio_pubkey.setChecked(True)
         dialog.exec_()
 
-    def add_node_as_contact(self, metadata):
-        dialog = AddContactDialog(self.account, self.window())
-        dialog.edit_name.setText(metadata['text'])
-        dialog.edit_pubkey.setText(metadata['id'])
-        dialog.exec_()
-
     def send_money_to_node(self, metadata):
         dialog = TransferMoneyDialog(self.account)
         dialog.edit_pubkey.setText(metadata['id'])
         dialog.combo_community.setCurrentText(self.community.name())
         dialog.radio_pubkey.setChecked(True)
         dialog.exec_()
+
+    def add_node_as_contact(self, metadata):
+        # check if contact already exists...
+        if metadata['id'] == self.account.pubkey or metadata['id'] in [contact.pubkey for contact in self.account.contacts]:
+            return False
+        dialog = AddContactDialog(self.account, self.window())
+        dialog.edit_name.setText(metadata['text'])
+        dialog.edit_pubkey.setText(metadata['id'])
+        dialog.exec_()