diff --git a/duniterpy/documents/__init__.py b/duniterpy/documents/__init__.py
index b9fe552ae48b5416127da5e4473e22151ce49604..016947d6ef23dddbdd0d81543f56a0e907992241 100644
--- a/duniterpy/documents/__init__.py
+++ b/duniterpy/documents/__init__.py
@@ -14,9 +14,8 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 from .block import Block
-from .block_uid import BlockUID, block_uid
+from .block_uid import BlockUID
 from .certification import Certification
-from .crc_pubkey import CRCPubkey
 from .document import Document, MalformedDocumentError
 from .identity import Identity
 from .membership import Membership
diff --git a/duniterpy/documents/block.py b/duniterpy/documents/block.py
index d93fa412b0fb4446964a8e80a912288df146febf..4daa98b9f70d2a6c05075e383ce6a7e57bb52eef 100644
--- a/duniterpy/documents/block.py
+++ b/duniterpy/documents/block.py
@@ -18,11 +18,12 @@ import hashlib
 import re
 from typing import List, Optional, Sequence, Type, TypeVar
 
+from duniterpy.documents.block_uid import BlockUID
+
 from ..constants import BLOCK_HASH_REGEX, G1_CURRENCY_CODENAME, PUBKEY_REGEX
 
 # required to type hint cls in classmethod
 from ..key import SigningKey, VerifyingKey
-from .block_uid import BlockUID
 from .certification import Certification
 from .document import Document, MalformedDocumentError
 from .identity import Identity
diff --git a/duniterpy/documents/block_uid.py b/duniterpy/documents/block_uid.py
index 3707b27f2615cecefdb8f7553fed8ab099935e67..74d86eb93a419d457fbf8c91b6118b2ab6c26171 100644
--- a/duniterpy/documents/block_uid.py
+++ b/duniterpy/documents/block_uid.py
@@ -16,8 +16,8 @@
 import re
 from typing import Type, TypeVar, Union
 
-from ..constants import BLOCK_HASH_REGEX, BLOCK_ID_REGEX, EMPTY_HASH
-from .document import MalformedDocumentError
+from duniterpy.constants import BLOCK_HASH_REGEX, BLOCK_ID_REGEX, EMPTY_HASH
+from duniterpy.documents.document import MalformedDocumentError
 
 # required to type hint cls in classmethod
 BlockUIDType = TypeVar("BlockUIDType", bound="BlockUID")
diff --git a/duniterpy/documents/certification.py b/duniterpy/documents/certification.py
index b0c93bc57fb697453c2a1184a3cfcb48bb1a9163..09b3b8657d1edfddbb91ebeea136a6ce7ba9785c 100644
--- a/duniterpy/documents/certification.py
+++ b/duniterpy/documents/certification.py
@@ -16,6 +16,8 @@
 import re
 from typing import Optional, Type, TypeVar, Union
 
+from duniterpy.documents.block_uid import BlockUID
+
 from ..constants import (
     BLOCK_ID_REGEX,
     BLOCK_UID_REGEX,
@@ -26,7 +28,6 @@ from ..constants import (
 
 # required to type hint cls in classmethod
 from ..key import SigningKey
-from .block_uid import BlockUID
 from .document import Document, MalformedDocumentError
 from .identity import Identity
 
diff --git a/duniterpy/documents/identity.py b/duniterpy/documents/identity.py
index 6cf3007ccda6527af6d53efc98730f7320861477..79a8f06f4ed981c2867082ee74237e45bc50ccbd 100644
--- a/duniterpy/documents/identity.py
+++ b/duniterpy/documents/identity.py
@@ -16,6 +16,8 @@
 import re
 from typing import Type, TypeVar
 
+from duniterpy.documents.block_uid import BlockUID
+
 from ..constants import (
     BLOCK_UID_REGEX,
     G1_CURRENCY_CODENAME,
@@ -26,7 +28,6 @@ from ..constants import (
 
 # required to type hint cls in classmethod
 from ..key import SigningKey
-from .block_uid import BlockUID
 from .document import Document, MalformedDocumentError
 
 IdentityType = TypeVar("IdentityType", bound="Identity")
diff --git a/duniterpy/documents/membership.py b/duniterpy/documents/membership.py
index 3c9663578d385e9064aeb3dce48682f071dd9778..411041ed79d379fc3cefd0f151350810cce1dcb2 100644
--- a/duniterpy/documents/membership.py
+++ b/duniterpy/documents/membership.py
@@ -16,6 +16,8 @@
 import re
 from typing import Type, TypeVar
 
+from duniterpy.documents.block_uid import BlockUID
+
 from ..constants import (
     BLOCK_UID_REGEX,
     G1_CURRENCY_CODENAME,
@@ -25,7 +27,6 @@ from ..constants import (
 
 # required to type hint cls in classmethod
 from ..key import SigningKey
-from .block_uid import BlockUID
 from .document import Document, MalformedDocumentError
 
 MembershipType = TypeVar("MembershipType", bound="Membership")
diff --git a/duniterpy/documents/peer.py b/duniterpy/documents/peer.py
index 7df979ab0c0b3a592b03f048c3341fd9f93bd97e..61339a62afd496be04c7145769112a862deb3810 100644
--- a/duniterpy/documents/peer.py
+++ b/duniterpy/documents/peer.py
@@ -17,12 +17,12 @@ import re
 from typing import List, Type, TypeVar
 
 from duniterpy.api.endpoint import Endpoint, endpoint
+from duniterpy.documents.block_uid import BlockUID
 
 from ..constants import BLOCK_HASH_REGEX, G1_CURRENCY_CODENAME, PUBKEY_REGEX
 
 # required to type hint cls in classmethod
 from ..key import SigningKey
-from .block_uid import BlockUID
 from .document import Document, MalformedDocumentError
 
 PeerType = TypeVar("PeerType", bound="Peer")
diff --git a/duniterpy/documents/transaction.py b/duniterpy/documents/transaction.py
index 21e4ba106f86ff114293047007b0cd3b26097d43..00fef0687eefea7e0cd7fffd4a24687406331c04 100644
--- a/duniterpy/documents/transaction.py
+++ b/duniterpy/documents/transaction.py
@@ -19,6 +19,7 @@ from typing import Any, Dict, List, Optional, Tuple, Type, TypeVar, Union
 
 import pypeg2
 
+from duniterpy.documents.block_uid import BlockUID
 from duniterpy.grammars.output import Condition
 
 from ..constants import (
@@ -30,7 +31,6 @@ from ..constants import (
 )
 from ..grammars import output
 from ..key import SigningKey, VerifyingKey
-from .block_uid import BlockUID
 from .document import Document, MalformedDocumentError
 
 VERSION = 10
diff --git a/duniterpy/documents/ws2p/heads.py b/duniterpy/documents/ws2p/heads.py
index c2ec8b583deb5e58e1659cd400bce77d3453bb6a..e7dcc007e6db53218415897f6973dc6ae35e5a20 100644
--- a/duniterpy/documents/ws2p/heads.py
+++ b/duniterpy/documents/ws2p/heads.py
@@ -16,6 +16,8 @@ import re
 
 import attr
 
+from duniterpy.documents.block_uid import BlockUID
+
 from ...constants import (
     BLOCK_UID_REGEX,
     PUBKEY_REGEX,
@@ -26,7 +28,6 @@ from ...constants import (
     WS2PID_REGEX,
 )
 from ...key import VerifyingKey
-from ..block_uid import BlockUID
 from ..document import MalformedDocumentError
 
 
diff --git a/duniterpy/documents/crc_pubkey.py b/duniterpy/key/crc_pubkey.py
similarity index 96%
rename from duniterpy/documents/crc_pubkey.py
rename to duniterpy/key/crc_pubkey.py
index 0a5b0c503cec7ba215ebeea07b5cfe6301f333a6..498e2a1531a7c3861c1554eccdf88d613deff158 100644
--- a/duniterpy/documents/crc_pubkey.py
+++ b/duniterpy/key/crc_pubkey.py
@@ -19,8 +19,8 @@ from typing import Type, TypeVar
 
 import base58
 
-from ..constants import PUBKEY_REGEX
-from ..tools import ensure_str
+from duniterpy.constants import PUBKEY_REGEX
+from duniterpy.tools import ensure_str
 
 # required to type hint cls in classmethod
 CRCPubkeyType = TypeVar("CRCPubkeyType", bound="CRCPubkey")
diff --git a/tests/documents/test_crc_pubkey.py b/tests/documents/test_crc_pubkey.py
index 638672f31ae3297eed79479b01d93eef08f66d69..b7f54d3a9db548d3486ad2591d071591cdf034b3 100644
--- a/tests/documents/test_crc_pubkey.py
+++ b/tests/documents/test_crc_pubkey.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from duniterpy.documents.crc_pubkey import CRCPubkey
+from duniterpy.key.crc_pubkey import CRCPubkey
 
 
 class TestCRCPubkey(unittest.TestCase):