diff --git a/silkaj/blockchain_tools.py b/silkaj/blockchain_tools.py
index c8522ba087bd60d21e339456b1056848124f363e..3c8e1ef8dbe7bde34f4f30ac90894858af8b0410 100644
--- a/silkaj/blockchain_tools.py
+++ b/silkaj/blockchain_tools.py
@@ -13,25 +13,17 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with Silkaj. If not, see <https://www.gnu.org/licenses/>.
 
+import functools
+
 from duniterpy.api.bma import blockchain
 
 from silkaj.network_tools import ClientInstance
 
 
-class BlockchainParams:
-    __instance = None
-
-    def __new__(cls):
-        if BlockchainParams.__instance is None:
-            BlockchainParams.__instance = object.__new__(cls)
-        return BlockchainParams.__instance
-
-    def __init__(self):
-        self.params = self.get_params()
-
-    def get_params(self):
-        client = ClientInstance().client
-        return client(blockchain.parameters)
+@functools.lru_cache(maxsize=1)
+def get_blockchain_parameters():
+    client = ClientInstance().client
+    return client(blockchain.parameters)
 
 
 class HeadBlock:
diff --git a/silkaj/cert.py b/silkaj/cert.py
index 01ba69c8f8bfb369b77b635c3da4e066109f5ca7..dd05c93cd1fe2d2b1f1991124bed0a11ed0d5277 100644
--- a/silkaj/cert.py
+++ b/silkaj/cert.py
@@ -24,7 +24,7 @@ from tabulate import tabulate
 from silkaj import tui, wot
 from silkaj import wot_tools as wt
 from silkaj.auth import auth_method
-from silkaj.blockchain_tools import BlockchainParams, HeadBlock
+from silkaj.blockchain_tools import HeadBlock, get_blockchain_parameters
 from silkaj.constants import ALL, DATE, SUCCESS_EXIT_STATUS
 from silkaj.crypto_tools import is_pubkey_and_check
 from silkaj.license import license_approval
@@ -89,11 +89,10 @@ def pre_checks(client, issuer_pubkey, pubkey_to_certify):
         sys.exit("You can’t certify yourself!")
 
     # Check if the certification can be renewed
-    req = client(bma.wot.requirements, pubkey_to_certify)
+    params = get_blockchain_parameters()
     req = req["identities"][0]
     for cert in req["certifications"]:
         if cert["from"] == issuer_pubkey:
-            params = BlockchainParams().params
             # Ğ1: 0<–>2y - 2y + 2m
             # ĞT: 0<–>4.8m - 4.8m + 12.5d
             renewable = cert["expiresIn"] - params["sigValidity"] + params["sigReplay"]
@@ -128,7 +127,7 @@ def certification_confirmation(
             tui.display_pubkey_and_checksum(pubkey_to_certify),
         ]
     )
-    params = BlockchainParams().params
+    params = get_blockchain_parameters()
     cert_begins = now().format(DATE)
     cert_ends = now().add(seconds=params["sigValidity"]).format(DATE)
     cert.append(["Valid", cert_begins, "—>", cert_ends])
diff --git a/silkaj/membership.py b/silkaj/membership.py
index f579e4bac504f8b3e9c675b08c00a31ed5309162..b52222bc54069f3080bfb91b2829b05672bee183 100644
--- a/silkaj/membership.py
+++ b/silkaj/membership.py
@@ -23,7 +23,7 @@ from duniterpy.documents import BlockID, Membership, get_block_id
 from tabulate import tabulate
 
 from silkaj import auth, tui, wot
-from silkaj.blockchain_tools import BlockchainParams, HeadBlock
+from silkaj.blockchain_tools import HeadBlock, get_blockchain_parameters
 from silkaj.constants import DATE, SUCCESS_EXIT_STATUS
 from silkaj.license import license_approval
 from silkaj.network_tools import ClientInstance, send_document
@@ -126,7 +126,7 @@ def display_confirmation_table(identity_uid, pubkey, identity_block_id):
     date_idty_pub = pendulum.from_timestamp(block["time"], tz="local").format(DATE)
     table.append(["Identity published", date_idty_pub])
 
-    params = BlockchainParams().params
+    params = get_blockchain_parameters()
     membership_validity = (
         pendulum.now().add(seconds=params["msValidity"]).diff_for_humans()
     )
diff --git a/silkaj/tools.py b/silkaj/tools.py
index 94e001ebfc3c0bc2105a066ee8ee148010342fb4..7c59b6a9b2f207a5d5fa8b1b5843766c70cd70f1 100644
--- a/silkaj/tools.py
+++ b/silkaj/tools.py
@@ -15,7 +15,7 @@
 
 from sys import exit
 
-from silkaj.blockchain_tools import BlockchainParams
+from silkaj.blockchain_tools import get_blockchain_parameters
 from silkaj.constants import FAILURE_EXIT_STATUS, G1_SYMBOL, GTEST_SYMBOL
 
 
@@ -31,7 +31,7 @@ class CurrencySymbol:
         self.symbol = self.get_symbol()
 
     def get_symbol(self):
-        params = BlockchainParams().params
+        params = get_blockchain_parameters()
         if params["currency"] == "g1":
             return G1_SYMBOL
         elif params["currency"] == "g1-test":
diff --git a/silkaj/wot.py b/silkaj/wot.py
index 2268e1459d195b2867e6de5637ed914e253b78ac..92377b42e35640100f9a21632fae49a6a7deb6b1 100644
--- a/silkaj/wot.py
+++ b/silkaj/wot.py
@@ -23,7 +23,7 @@ from pendulum import from_timestamp, now
 from tabulate import tabulate
 
 from silkaj import wot_tools as wt
-from silkaj.blockchain_tools import BlockchainParams
+from silkaj.blockchain_tools import get_blockchain_parameters
 from silkaj.constants import DATE
 from silkaj.crypto_tools import is_pubkey_and_check
 from silkaj.network_tools import ClientInstance, exit_on_http_error
@@ -66,7 +66,7 @@ def received_sent_certifications(uid_pubkey):
 
     identity, pubkey, signed = choose_identity(uid_pubkey)
     certifications = OrderedDict()
-    params = BlockchainParams().params
+    params = get_blockchain_parameters()
     requirements = client(wot.requirements, pubkey)
     for req in requirements["identities"]:
         if req["pubkey"] == pubkey:
@@ -107,7 +107,7 @@ def cert_written_in_the_blockchain(written_certs, certifieur):
 
 
 def membership_status(certifications, pubkey, req):
-    params = BlockchainParams().params
+    params = get_blockchain_parameters()
     if len(certifications["received"]) >= params["sigQty"]:
         date = certifications["received_expire"][
             len(certifications["received"]) - params["sigQty"]
diff --git a/tests/test_membership.py b/tests/test_membership.py
index 1d632ad174fc4866022244f15eef39b9b61956b1..763bf0ad3ce59b7e055501c7708c49160d81a540 100644
--- a/tests/test_membership.py
+++ b/tests/test_membership.py
@@ -36,7 +36,7 @@ from patched.wot import (
     patched_wot_requirements_one_pending,
 )
 from silkaj import auth, membership, wot
-from silkaj.blockchain_tools import BlockchainParams, HeadBlock
+from silkaj.blockchain_tools import HeadBlock, get_blockchain_parameters
 from silkaj.cli import cli
 from silkaj.constants import DATE, FAILURE_EXIT_STATUS, SUCCESS_EXIT_STATUS
 from silkaj.network_tools import ClientInstance
@@ -171,7 +171,7 @@ def test_display_confirmation_table(patched_wot_requirements, monkeypatch, capsy
         ["Identity published", date_idty_pub],
     )
 
-    params = BlockchainParams().params
+    params = get_blockchain_parameters()
     membership_validity = (
         pendulum.now().add(seconds=params["msValidity"]).diff_for_humans()
     )