diff --git a/__init__.py b/__init__.py
index c58840059a2417ee2ff1b2bea222f08926f275a1..cef783924e076125e55c35f7a185024ab15c024e 100644
--- a/__init__.py
+++ b/__init__.py
@@ -133,4 +133,4 @@ class API(object):
         for leaf in root['leaves'][begin:end]:
             yield self.requests_get(path, leaf=leaf).json()['leaf']
 
-from . import network, blockchain, tx
+from . import network, blockchain, tx, wot
diff --git a/wot/__init__.py b/wot/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e90599d00b6b57e434ff7f2b59bda511d431453
--- /dev/null
+++ b/wot/__init__.py
@@ -0,0 +1,56 @@
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+# Authors:
+# Caner Candan <caner@candan.fr>, http://caner.candan.fr
+#
+
+from .. import API, logging
+
+logger = logging.getLogger("ucoin/wot")
+
+class WOT(API):
+    def __init__(self, connection_handler, module='wot'):
+        super(WOT, self).__init__(connection_handler, module)
+
+class Add(WOT):
+    """POST Public key data."""
+
+    def __post__(self, **kwargs):
+        assert 'pubkey' in kwargs
+        assert 'self' in kwargs
+        assert 'other' in kwargs
+
+        return self.requests_post('/add', **kwargs).json()
+
+class Lookup(WOT):
+    """GET Public key data."""
+
+    def __init__(self, connection_handler, search, module='wot'):
+        super(WOT, self).__init__(connection_handler, module)
+
+        self.search = search
+
+    def __get__(self, **kwargs):
+        assert self.search is not None
+
+        return self.requests_get('/lookup/%s' % self.search, **kwargs).json()
+
+class All(WOT):
+    """GET all the received public keys."""
+
+    def __get__(self, **kwargs):
+        """creates a generator with one public key per iteration."""
+
+        return self.merkle_easy_parser('/all')