diff --git a/duniterpy/documents/__init__.py b/duniterpy/documents/__init__.py
index a976b3a6e4f6df56b7ef4f3176c44aa57986d625..9768435173a873f4e13e63b7136f8e37628662ab 100644
--- a/duniterpy/documents/__init__.py
+++ b/duniterpy/documents/__init__.py
@@ -1,4 +1,4 @@
-from .block import Block, BlockUID
+from .block import Block, BlockUID, block_uid
 from .certification import SelfCertification, Certification, Revocation
 from .membership import Membership
 from .peer import Endpoint, BMAEndpoint, UnknownEndpoint, Peer
diff --git a/duniterpy/documents/block.py b/duniterpy/documents/block.py
index ebafdcd82e3a3294c2b7d573559c6dd0fd585888..5cf08ee69c349167c77ef1721b51fcc07e8eb549 100644
--- a/duniterpy/documents/block.py
+++ b/duniterpy/documents/block.py
@@ -7,6 +7,17 @@ from .constants import pubkey_regex, block_id_regex, block_hash_regex
 import re
 
 
+def block_uid(value):
+    if isinstance(value, BlockUID):
+        return value
+    elif isinstance(value, str):
+        return BlockUID.from_str(value)
+    elif value is None:
+        return BlockUID.empty()
+    else:
+        raise TypeError("Cannot convert {0} to BlockUID".format(type(value)))
+
+
 class BlockUID:
     """
     A simple block id
diff --git a/tests/documents/test_block.py b/tests/documents/test_block.py
index 7411ebb15df6f29a08480d4ade35365e1af28f28..015d5e2c4a322e1faf1ee20a74fff3f949701760 100644
--- a/tests/documents/test_block.py
+++ b/tests/documents/test_block.py
@@ -4,7 +4,7 @@ Created on 12 déc. 2014
 @author: inso
 '''
 import unittest
-from duniterpy.documents.block import Block, BlockUID
+from duniterpy.documents.block import Block, BlockUID, block_uid
 
 raw_block = """Version: 2
 Type: Block
@@ -518,6 +518,19 @@ class Test_Block(unittest.TestCase):
         from_rendered_raw = block.from_signed_raw(rendered_raw)
         self.assertEqual(from_rendered_raw.signed_raw(), negative_issuers_frame_var)
 
+    def test_block_uid_converter(self):
+        buid = block_uid("1345-0000338C775613399FA508A8F8B22EB60F525884730639E2A707299E373F43C0")
+        self.assertEqual(buid.number, 1345)
+        self.assertEqual(buid.sha_hash, "0000338C775613399FA508A8F8B22EB60F525884730639E2A707299E373F43C0")
+
+    def test_block_uid_converter_error(self):
+        with self.assertRaises(TypeError):
+            buid = block_uid(1235654)
+
+    def test_block_uid_no_convert(self):
+        buid = block_uid(BlockUID(1345, "0000338C775613399FA508A8F8B22EB60F525884730639E2A707299E373F43C0"))
+        self.assertEqual(buid.number, 1345)
+        self.assertEqual(buid.sha_hash, "0000338C775613399FA508A8F8B22EB60F525884730639E2A707299E373F43C0")
 
 if __name__ == '__main__':
     unittest.main()