diff --git a/tests/patched/money.py b/tests/patched/money.py
index 03c8914cba149f45e96986c10f33fd6ba9347800..d84e5e167219d9ba0969b8d52ef974c5b62fd618 100644
--- a/tests/patched/money.py
+++ b/tests/patched/money.py
@@ -1,17 +1,6 @@
 from silkaj.money import amount_in_current_base
 from duniterpy.documents.transaction import InputSource
-
-## Mocked values
-
-mock_ud_value = 314
-
-pubkey_list = [
-    {"pubkey": "DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw", "uid": ""},
-    {"pubkey": "4szFkvQ5tzzhwcfUtZD32hdoG2ZzhvG3ZtfR61yjnxdw", "uid": ""},
-    {"pubkey": "BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh", "uid": "riri"},
-    {"pubkey": "C1oAV9FX2y9iz2sdp7kZBFu3EBNAa6UkrrRG3EwouPeH", "uid": "fifi"},
-    {"pubkey": "7Hr6oUxE6nGZxFG7gVbpMK6oUkNTh5eU686EiCXWCrBF", "uid": "loulou"},
-]
+from utils_tests import pubkey_list, mock_ud_value
 
 
 # mock UDValue
@@ -24,10 +13,10 @@ async def patched_get_sources(pubkey):
     """
     Returns transaction sources.
     This function does not cover all possibilities : no other unlock conditions than SIG(pubkey).
-    if pubkey == DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw : 3 TXsources, amount = 600
-    if pubkey == 4szFkvQ5tzzhwcfUtZD32hdoG2ZzhvG3ZtfR61yjnxdw : 53 TXsources, amount = 143100
-    if pubkey == BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh : 10 UDsources, amount = 3140
-    if pubkey == C1oAV9FX2y9iz2sdp7kZBFu3EBNAa6UkrrRG3EwouPeH : 50 UDsources and 20 TXsources, amount = 36700
+    if pubkey == CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp : 3 TXsources, amount = 600
+    if pubkey == HcRgKh4LwbQVYuAc3xAdCynYXpKoiPE6qdxCMa8JeHat : 53 TXsources, amount = 143100
+    if pubkey == 2sq4w8yYVDWNxVWZqGWWDriFf5z7dn7iLahDCvEEotuY : 10 UDsources, amount = 3140
+    if pubkey == 9cwBBgXcSVMT74xiKYygX6FM5yTdwd3NABj1CfHbbAmp : 50 UDsources and 20 TXsources, amount = 36700
     else : 0 sources, amount = 0
     For convenience, the hash is always the same. This should change for other testing purposes.
     """
@@ -65,16 +54,16 @@ async def patched_get_sources(pubkey):
 
     listinput, n = list(), 0
     amount = 0
-    if pubkey == "DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw":
+    if pubkey == "CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp":
         max_tx = 3
         max_ud = 0
-    elif pubkey == "4szFkvQ5tzzhwcfUtZD32hdoG2ZzhvG3ZtfR61yjnxdw":
+    elif pubkey == "HcRgKh4LwbQVYuAc3xAdCynYXpKoiPE6qdxCMa8JeHat":
         max_tx = 53
         max_ud = 0
-    elif pubkey == "BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh":
+    elif pubkey == "2sq4w8yYVDWNxVWZqGWWDriFf5z7dn7iLahDCvEEotuY":
         max_tx = 0
         max_ud = 10
-    elif pubkey == "C1oAV9FX2y9iz2sdp7kZBFu3EBNAa6UkrrRG3EwouPeH":
+    elif pubkey == "9cwBBgXcSVMT74xiKYygX6FM5yTdwd3NABj1CfHbbAmp":
         max_tx = 20
         max_ud = 50
     else:
diff --git a/tests/test_unit_tx.py b/tests/test_unit_tx.py
index ff42a68bb28cca2ef80cc420327239968bdb525e..5cffc149c1102e855bd919599d945260716cb839 100644
--- a/tests/test_unit_tx.py
+++ b/tests/test_unit_tx.py
@@ -408,24 +408,24 @@ async def test_generate_transaction_document(
 @pytest.mark.parametrize(
     "pubkey, TXamount, expected",
     [
-        ("DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw", 200, (2, 300, False)),
-        ("DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw", 600, (3, 600, False)),
+        ("CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp", 200, (2, 300, False)),
+        ("CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp", 600, (3, 600, False)),
         (
-            "DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw",
+            "CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp",
             800,
             "Error: you don't have enough money",
         ),
-        ("4szFkvQ5tzzhwcfUtZD32hdoG2ZzhvG3ZtfR61yjnxdw", 143100, (40, 82000, True)),
-        ("BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh", 200, (1, 314, False)),
-        ("BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh", 3140, (10, 3140, False)),
+        ("HcRgKh4LwbQVYuAc3xAdCynYXpKoiPE6qdxCMa8JeHat", 143100, (40, 82000, True)),
+        ("2sq4w8yYVDWNxVWZqGWWDriFf5z7dn7iLahDCvEEotuY", 200, (1, 314, False)),
+        ("2sq4w8yYVDWNxVWZqGWWDriFf5z7dn7iLahDCvEEotuY", 3140, (10, 3140, False)),
         (
-            "BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh",
+            "2sq4w8yYVDWNxVWZqGWWDriFf5z7dn7iLahDCvEEotuY",
             5000,
             "Error: you don't have enough money",
         ),
-        ("C1oAV9FX2y9iz2sdp7kZBFu3EBNAa6UkrrRG3EwouPeH", 2900, (8, 3600, False)),
-        ("C1oAV9FX2y9iz2sdp7kZBFu3EBNAa6UkrrRG3EwouPeH", 22500, (25, 22570, False)),
-        ("C1oAV9FX2y9iz2sdp7kZBFu3EBNAa6UkrrRG3EwouPeH", 29000, (40, 27280, True)),
+        ("9cwBBgXcSVMT74xiKYygX6FM5yTdwd3NABj1CfHbbAmp", 2900, (8, 3600, False)),
+        ("9cwBBgXcSVMT74xiKYygX6FM5yTdwd3NABj1CfHbbAmp", 22500, (25, 22570, False)),
+        ("9cwBBgXcSVMT74xiKYygX6FM5yTdwd3NABj1CfHbbAmp", 29000, (40, 27280, True)),
     ],
 )
 @pytest.mark.asyncio
diff --git a/tests/utils_tests.py b/tests/utils_tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..f2b4d313a5ccdb6c12b4fff4ae31594ec588b857
--- /dev/null
+++ b/tests/utils_tests.py
@@ -0,0 +1,24 @@
+# This file contains helpers for testing.
+from duniterpy.key import SigningKey
+
+mock_ud_value = 314
+
+pubkey_list = [
+    {"pubkey": "9cwBBgXcSVMT74xiKYygX6FM5yTdwd3NABj1CfHbbAmp", "uid": ""},
+    {"pubkey": "BUhLyJT17bzDVXW66xxfk1F7947vytmwJVadTaWb8sJS", "uid": ""},
+    {"pubkey": "CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp", "uid": "riri"},
+    {"pubkey": "HcRgKh4LwbQVYuAc3xAdCynYXpKoiPE6qdxCMa8JeHat", "uid": "fifi"},
+    {"pubkey": "2sq4w8yYVDWNxVWZqGWWDriFf5z7dn7iLahDCvEEotuY", "uid": "loulou"},
+]
+
+
+def insecure_key(pass_salt):
+    """
+    generate unsecure keys for testing purpose.
+    pubkey(riri) = CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp
+    pubkey(fifi) = HcRgKh4LwbQVYuAc3xAdCynYXpKoiPE6qdxCMa8JeHat
+    pubkey(loulou) = 2sq4w8yYVDWNxVWZqGWWDriFf5z7dn7iLahDCvEEotuY
+    pubkey(0) = 9cwBBgXcSVMT74xiKYygX6FM5yTdwd3NABj1CfHbbAmp
+    pubkey(1) = BUhLyJT17bzDVXW66xxfk1F7947vytmwJVadTaWb8sJS
+    """
+    return SigningKey.from_credentials(pass_salt, pass_salt)