diff --git a/python/opendht.pyx b/python/opendht.pyx
index dd6425a1eaf1b8bcecc66c57e21caa1990e3a6ae..aeeb3fa123629cd157c6b1b501876fcf12ec8767 100644
--- a/python/opendht.pyx
+++ b/python/opendht.pyx
@@ -158,6 +158,9 @@ cdef class Value(object):
             return self._value.get().id
         def __set__(self, cpp.uint64_t value):
             self._value.get().id = value
+    property size:
+        def __get__(self):
+            return self._value.get().size()
 
 cdef class NodeSetIter(object):
     cdef map[cpp.InfoHash, cpp.shared_ptr[cpp.Node]]* _nodes
diff --git a/python/opendht_cpp.pxd b/python/opendht_cpp.pxd
index f89bf4ba0cfb2cb168a0c50e298753fedd4b99b8..ca3334282d1238986c30f79a8821a615233d7d4d 100644
--- a/python/opendht_cpp.pxd
+++ b/python/opendht_cpp.pxd
@@ -85,6 +85,7 @@ cdef extern from "opendht/value.h" namespace "dht":
         Value(vector[uint8_t]) except +
         Value(const uint8_t* dat_ptr, size_t dat_len) except +
         string toString() const
+        size_t size() const
         uint64_t id
         shared_ptr[PublicKey] owner
         InfoHash recipient