diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d49a7d51c5a2ddcb3b437dc5d6feb1e0976cafb3..c3f6a88b9c17275bb1953f9adb45ba174acbfb19 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -138,6 +138,26 @@ build_deb:
     paths:
       - target/debian/duniter*.deb
 
+build_rpm:
+  stage: deploy
+  extends: .env
+  rules:
+    - if: $CI_COMMIT_REF_NAME =~ /^wip*$/
+      when: manual
+    - if: $CI_COMMIT_TAG
+      when: never
+    - <<: *is_network_branch
+      when: never
+    - if: '$CI_MERGE_REQUEST_ID || $CI_COMMIT_BRANCH == "master"'
+    - when: manual
+  script:
+    - cargo install cargo-generate-rpm
+    - cargo build -Zgit=shallow-deps --release
+    - cargo generate-rpm -p node
+  artifacts:
+    paths:
+      - target/generate-rpm/duniter*.rpm
+
 tests:
   stage: tests
   extends: .env
diff --git a/Cargo.lock b/Cargo.lock
index 38efaefaaa038de7b796acbe736e980a336f5280..22d9c30cde1b5b68f1c9b17c742b36ea8b9066fa 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -71,6 +71,17 @@ dependencies = [
  "subtle 2.6.1",
 ]
 
+[[package]]
+name = "ahash"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "version_check",
+]
+
 [[package]]
 name = "ahash"
 version = "0.8.11"
@@ -95,9 +106,68 @@ dependencies = [
 
 [[package]]
 name = "allocator-api2"
-version = "0.2.18"
+version = "0.2.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9"
+
+[[package]]
+name = "alloy-primitives"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0628ec0ba5b98b3370bb6be17b12f23bfce8ee4ad83823325a20546d9b03b78"
+dependencies = [
+ "alloy-rlp",
+ "bytes",
+ "cfg-if",
+ "const-hex",
+ "derive_more 0.99.18",
+ "hex-literal",
+ "itoa",
+ "proptest",
+ "rand",
+ "ruint",
+ "serde",
+ "tiny-keccak",
+]
+
+[[package]]
+name = "alloy-rlp"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f"
+dependencies = [
+ "arrayvec 0.7.6",
+ "bytes",
+]
+
+[[package]]
+name = "alloy-sol-macro"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a98ad1696a2e17f010ae8e43e9f2a1e930ed176a8e3ff77acfeff6dfb07b42c"
+dependencies = [
+ "const-hex",
+ "dunce",
+ "heck 0.4.1",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+ "syn-solidity",
+ "tiny-keccak",
+]
+
+[[package]]
+name = "alloy-sol-types"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
+checksum = "98d7107bed88e8f09f0ddcc3335622d87bfb6821f3e0c7473329fb1cfad5e015"
+dependencies = [
+ "alloy-primitives",
+ "alloy-sol-macro",
+ "const-hex",
+ "serde",
+]
 
 [[package]]
 name = "android-tzdata"
@@ -116,9 +186,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.15"
+version = "0.6.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
+checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -131,43 +201,43 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.8"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
+checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.5"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
+checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.1.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
+checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c"
 dependencies = [
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.4"
+version = "3.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
+checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125"
 dependencies = [
  "anstyle",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.89"
+version = "1.0.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
+checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775"
 
 [[package]]
 name = "approx"
@@ -189,7 +259,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -199,8 +269,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f"
 dependencies = [
  "ark-ec",
- "ark-ff",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-std 0.4.0",
+]
+
+[[package]]
+name = "ark-bls12-377-ext"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20c7021f180a0cbea0380eba97c2af3c57074cdaffe0eef7e840e1c9f2841e55"
+dependencies = [
+ "ark-bls12-377",
+ "ark-ec",
+ "ark-models-ext",
+ "ark-std 0.4.0",
 ]
 
 [[package]]
@@ -210,9 +292,48 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488"
 dependencies = [
  "ark-ec",
- "ark-ff",
- "ark-serialize",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
+]
+
+[[package]]
+name = "ark-bls12-381-ext"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1dc4b3d08f19e8ec06e949712f95b8361e43f1391d94f65e4234df03480631c"
+dependencies = [
+ "ark-bls12-381",
+ "ark-ec",
+ "ark-ff 0.4.2",
+ "ark-models-ext",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
+]
+
+[[package]]
+name = "ark-bw6-761"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e0605daf0cc5aa2034b78d008aaf159f56901d92a52ee4f6ecdfdac4f426700"
+dependencies = [
+ "ark-bls12-377",
+ "ark-ec",
+ "ark-ff 0.4.2",
+ "ark-std 0.4.0",
+]
+
+[[package]]
+name = "ark-bw6-761-ext"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccee5fba47266f460067588ee1bf070a9c760bf2050c1c509982c5719aadb4f2"
+dependencies = [
+ "ark-bw6-761",
+ "ark-ec",
+ "ark-ff 0.4.2",
+ "ark-models-ext",
+ "ark-std 0.4.0",
 ]
 
 [[package]]
@@ -221,14 +342,83 @@ version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba"
 dependencies = [
- "ark-ff",
+ "ark-ff 0.4.2",
  "ark-poly",
- "ark-serialize",
- "ark-std",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "derivative",
  "hashbrown 0.13.2",
  "itertools 0.10.5",
  "num-traits 0.2.19",
+ "rayon",
+ "zeroize",
+]
+
+[[package]]
+name = "ark-ed-on-bls12-377"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b10d901b9ac4b38f9c32beacedfadcdd64e46f8d7f8e88c1ae1060022cf6f6c6"
+dependencies = [
+ "ark-bls12-377",
+ "ark-ec",
+ "ark-ff 0.4.2",
+ "ark-std 0.4.0",
+]
+
+[[package]]
+name = "ark-ed-on-bls12-377-ext"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d"
+dependencies = [
+ "ark-ec",
+ "ark-ed-on-bls12-377",
+ "ark-ff 0.4.2",
+ "ark-models-ext",
+ "ark-std 0.4.0",
+]
+
+[[package]]
+name = "ark-ed-on-bls12-381-bandersnatch"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c"
+dependencies = [
+ "ark-bls12-381",
+ "ark-ec",
+ "ark-ff 0.4.2",
+ "ark-std 0.4.0",
+]
+
+[[package]]
+name = "ark-ed-on-bls12-381-bandersnatch-ext"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d15185f1acb49a07ff8cbe5f11a1adc5a93b19e211e325d826ae98e98e124346"
+dependencies = [
+ "ark-ec",
+ "ark-ed-on-bls12-381-bandersnatch",
+ "ark-ff 0.4.2",
+ "ark-models-ext",
+ "ark-std 0.4.0",
+]
+
+[[package]]
+name = "ark-ff"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6"
+dependencies = [
+ "ark-ff-asm 0.3.0",
+ "ark-ff-macros 0.3.0",
+ "ark-serialize 0.3.0",
+ "ark-std 0.3.0",
+ "derivative",
+ "num-bigint",
+ "num-traits 0.2.19",
+ "paste",
+ "rustc_version 0.3.3",
  "zeroize",
 ]
 
@@ -238,20 +428,30 @@ version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba"
 dependencies = [
- "ark-ff-asm",
- "ark-ff-macros",
- "ark-serialize",
- "ark-std",
+ "ark-ff-asm 0.4.2",
+ "ark-ff-macros 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "derivative",
  "digest 0.10.7",
  "itertools 0.10.5",
  "num-bigint",
  "num-traits 0.2.19",
  "paste",
- "rustc_version",
+ "rustc_version 0.4.1",
  "zeroize",
 ]
 
+[[package]]
+name = "ark-ff-asm"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44"
+dependencies = [
+ "quote",
+ "syn 1.0.109",
+]
+
 [[package]]
 name = "ark-ff-asm"
 version = "0.4.2"
@@ -262,6 +462,18 @@ dependencies = [
  "syn 1.0.109",
 ]
 
+[[package]]
+name = "ark-ff-macros"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20"
+dependencies = [
+ "num-bigint",
+ "num-traits 0.2.19",
+ "quote",
+ "syn 1.0.109",
+]
+
 [[package]]
 name = "ark-ff-macros"
 version = "0.4.2"
@@ -275,19 +487,56 @@ dependencies = [
  "syn 1.0.109",
 ]
 
+[[package]]
+name = "ark-models-ext"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e9eab5d4b5ff2f228b763d38442adc9b084b0a465409b059fac5c2308835ec2"
+dependencies = [
+ "ark-ec",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
+ "derivative",
+]
+
 [[package]]
 name = "ark-poly"
 version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf"
 dependencies = [
- "ark-ff",
- "ark-serialize",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "derivative",
  "hashbrown 0.13.2",
 ]
 
+[[package]]
+name = "ark-scale"
+version = "0.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179"
+dependencies = [
+ "ark-ec",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
+ "parity-scale-codec",
+ "scale-info",
+]
+
+[[package]]
+name = "ark-serialize"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671"
+dependencies = [
+ "ark-std 0.3.0",
+ "digest 0.9.0",
+]
+
 [[package]]
 name = "ark-serialize"
 version = "0.4.2"
@@ -295,7 +544,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5"
 dependencies = [
  "ark-serialize-derive",
- "ark-std",
+ "ark-std 0.4.0",
  "digest 0.10.7",
  "num-bigint",
 ]
@@ -311,6 +560,16 @@ dependencies = [
  "syn 1.0.109",
 ]
 
+[[package]]
+name = "ark-std"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c"
+dependencies = [
+ "num-traits 0.2.19",
+ "rand",
+]
+
 [[package]]
 name = "ark-std"
 version = "0.4.0"
@@ -319,6 +578,7 @@ checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185"
 dependencies = [
  "num-traits 0.2.19",
  "rand",
+ "rayon",
 ]
 
 [[package]]
@@ -366,7 +626,7 @@ dependencies = [
  "nom",
  "num-traits 0.2.19",
  "rusticata-macros",
- "thiserror",
+ "thiserror 1.0.69",
  "time",
 ]
 
@@ -382,7 +642,7 @@ dependencies = [
  "nom",
  "num-traits 0.2.19",
  "rusticata-macros",
- "thiserror",
+ "thiserror 1.0.69",
  "time",
 ]
 
@@ -406,7 +666,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
  "synstructure 0.13.1",
 ]
 
@@ -429,7 +689,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -438,6 +698,58 @@ version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
 
+[[package]]
+name = "asset-test-utils"
+version = "18.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-core",
+ "frame-support",
+ "frame-system",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-collator-selection",
+ "pallet-session",
+ "pallet-timestamp",
+ "pallet-xcm",
+ "pallet-xcm-bridge-hub-router",
+ "parachains-common",
+ "parachains-runtimes-test-utils",
+ "parity-scale-codec",
+ "sp-io",
+ "sp-runtime",
+ "staging-parachain-info",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "substrate-wasm-builder",
+]
+
+[[package]]
+name = "assets-common"
+version = "0.18.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "impl-trait-for-tuples",
+ "log",
+ "pallet-asset-conversion",
+ "pallet-assets",
+ "pallet-xcm",
+ "parachains-common",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-api",
+ "sp-runtime",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "substrate-wasm-builder",
+]
+
 [[package]]
 name = "async-channel"
 version = "1.9.0"
@@ -487,9 +799,9 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.3.4"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8"
+checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059"
 dependencies = [
  "async-lock",
  "cfg-if",
@@ -498,7 +810,7 @@ dependencies = [
  "futures-lite",
  "parking",
  "polling",
- "rustix 0.38.37",
+ "rustix 0.38.40",
  "slab",
  "tracing",
  "windows-sys 0.59.0",
@@ -541,7 +853,7 @@ dependencies = [
  "cfg-if",
  "event-listener 5.3.1",
  "futures-lite",
- "rustix 0.38.37",
+ "rustix 0.38.40",
  "tracing",
 ]
 
@@ -557,7 +869,7 @@ dependencies = [
  "cfg-if",
  "futures-core",
  "futures-io",
- "rustix 0.38.37",
+ "rustix 0.38.40",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.59.0",
@@ -577,7 +889,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -616,6 +928,17 @@ dependencies = [
  "url",
 ]
 
+[[package]]
+name = "auto_impl"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
 [[package]]
 name = "autocfg"
 version = "1.4.0"
@@ -680,12 +1003,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
-name = "beef"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1"
+name = "binary-merkle-tree"
+version = "15.0.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "serde",
+ "hash-db",
+ "log",
 ]
 
 [[package]]
@@ -757,6 +1080,7 @@ checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
 dependencies = [
  "funty",
  "radium",
+ "serde",
  "tap",
  "wyz",
 ]
@@ -860,9 +1184,9 @@ dependencies = [
 
 [[package]]
 name = "bounded-collections"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db436177db0d505b1507f03aca56a41442ae6efdf8b6eaa855d73e52c5b078dc"
+checksum = "3d077619e9c237a5d1875166f5e8033e8f6bff0c96f8caf81e1c2d7738c431bf"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -871,25 +1195,287 @@ dependencies = [
 ]
 
 [[package]]
-name = "bs58"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
-
-[[package]]
-name = "bs58"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4"
+name = "bp-header-chain"
+version = "0.18.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "tinyvec",
+ "bp-runtime",
+ "finality-grandpa",
+ "frame-support",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
-name = "bstr"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c"
+name = "bp-messages"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bp-header-chain",
+ "bp-runtime",
+ "frame-support",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-parachains"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bp-header-chain",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "frame-support",
+ "impl-trait-for-tuples",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-polkadot"
+version = "0.16.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bp-header-chain",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "frame-support",
+ "sp-api",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-polkadot-core"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bp-messages",
+ "bp-runtime",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "parity-util-mem",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-relayers"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bp-header-chain",
+ "bp-messages",
+ "bp-parachains",
+ "bp-runtime",
+ "frame-support",
+ "frame-system",
+ "pallet-utility",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-runtime"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "hash-db",
+ "impl-trait-for-tuples",
+ "log",
+ "num-traits 0.2.19",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-std",
+ "sp-trie",
+ "trie-db",
+]
+
+[[package]]
+name = "bp-test-utils"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bp-header-chain",
+ "bp-parachains",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "ed25519-dalek",
+ "finality-grandpa",
+ "parity-scale-codec",
+ "sp-application-crypto",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
+ "sp-trie",
+]
+
+[[package]]
+name = "bp-xcm-bridge-hub"
+version = "0.4.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bp-messages",
+ "bp-runtime",
+ "frame-support",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-std",
+ "staging-xcm",
+]
+
+[[package]]
+name = "bp-xcm-bridge-hub-router"
+version = "0.14.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-runtime",
+ "staging-xcm",
+]
+
+[[package]]
+name = "bridge-hub-common"
+version = "0.10.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "pallet-message-queue",
+ "parity-scale-codec",
+ "scale-info",
+ "snowbridge-core",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
+ "staging-xcm",
+]
+
+[[package]]
+name = "bridge-hub-test-utils"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "asset-test-utils",
+ "bp-header-chain",
+ "bp-messages",
+ "bp-parachains",
+ "bp-polkadot-core",
+ "bp-relayers",
+ "bp-runtime",
+ "bp-test-utils",
+ "bp-xcm-bridge-hub",
+ "bridge-runtime-common",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-xcmp-queue",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "pallet-balances",
+ "pallet-bridge-grandpa",
+ "pallet-bridge-messages",
+ "pallet-bridge-parachains",
+ "pallet-bridge-relayers",
+ "pallet-timestamp",
+ "pallet-utility",
+ "pallet-xcm",
+ "pallet-xcm-bridge-hub",
+ "parachains-common",
+ "parachains-runtimes-test-utils",
+ "parity-scale-codec",
+ "sp-core",
+ "sp-io",
+ "sp-keyring",
+ "sp-runtime",
+ "sp-tracing",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "bridge-runtime-common"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bp-header-chain",
+ "bp-messages",
+ "bp-parachains",
+ "bp-polkadot-core",
+ "bp-relayers",
+ "bp-runtime",
+ "bp-xcm-bridge-hub",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-bridge-grandpa",
+ "pallet-bridge-messages",
+ "pallet-bridge-parachains",
+ "pallet-bridge-relayers",
+ "pallet-transaction-payment",
+ "pallet-utility",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "sp-trie",
+ "staging-xcm",
+ "tuplex",
+]
+
+[[package]]
+name = "bs58"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
+
+[[package]]
+name = "bs58"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "bstr"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a68f1f47cdf0ec8ee4b941b2eee2a80cb796db73118c0dd09ac63fbe405be22"
 dependencies = [
  "memchr",
  "serde",
@@ -930,9 +1516,9 @@ checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce"
 
 [[package]]
 name = "bytemuck"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae"
+checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d"
 
 [[package]]
 name = "byteorder"
@@ -942,9 +1528,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.7.2"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3"
+checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da"
 
 [[package]]
 name = "c2-chacha"
@@ -985,14 +1571,14 @@ dependencies = [
  "semver 1.0.23",
  "serde",
  "serde_json",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "cc"
-version = "1.1.29"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58e804ac3194a48bb129643eb1d62fcc20d18c6b8c181704489353d13120bcd1"
+checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47"
 dependencies = [
  "jobserver",
  "libc",
@@ -1128,9 +1714,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.20"
+version = "4.5.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8"
+checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -1138,22 +1724,22 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.5.20"
+version = "4.5.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54"
+checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec"
 dependencies = [
  "anstream",
  "anstyle",
  "clap_lex",
- "strsim 0.11.1",
+ "strsim",
  "terminal_size",
 ]
 
 [[package]]
 name = "clap_complete"
-version = "4.5.33"
+version = "4.5.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9646e2e245bf62f45d39a0f3f36f1171ad1ea0d6967fd114bca72cb02a8fcdfb"
+checksum = "d9647a559c112175f17cf724dc72d3645680a883c58481332779192b0d8e7a01"
 dependencies = [
  "clap",
 ]
@@ -1167,14 +1753,14 @@ dependencies = [
  "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
+checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7"
 
 [[package]]
 name = "cmake"
@@ -1192,14 +1778,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
 dependencies = [
  "termcolor",
- "unicode-width",
+ "unicode-width 0.1.14",
 ]
 
 [[package]]
 name = "colorchoice"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
+checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
 
 [[package]]
 name = "combine"
@@ -1226,13 +1812,13 @@ dependencies = [
 
 [[package]]
 name = "comfy-table"
-version = "7.1.1"
+version = "7.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7"
+checksum = "e0d05af1e006a2407bedef5af410552494ce5be9090444dbbcb57258c1af3d56"
 dependencies = [
  "strum 0.26.3",
  "strum_macros 0.26.4",
- "unicode-width",
+ "unicode-width 0.2.0",
 ]
 
 [[package]]
@@ -1256,9 +1842,9 @@ dependencies = [
  "pallet-distance",
  "pallet-duniter-account",
  "pallet-duniter-wot",
- "pallet-identity",
- "pallet-membership",
- "pallet-offences",
+ "pallet-identity 1.0.0",
+ "pallet-membership 1.0.0",
+ "pallet-offences 1.0.0",
  "pallet-provide-randomness",
  "pallet-quota",
  "pallet-session",
@@ -1298,10 +1884,23 @@ dependencies = [
  "encode_unicode",
  "lazy_static",
  "libc",
- "unicode-width",
+ "unicode-width 0.1.14",
  "windows-sys 0.52.0",
 ]
 
+[[package]]
+name = "const-hex"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "hex",
+ "proptest",
+ "serde",
+]
+
 [[package]]
 name = "const-oid"
 version = "0.9.6"
@@ -1406,9 +2005,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
+checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6"
 dependencies = [
  "libc",
 ]
@@ -1658,7 +2257,7 @@ dependencies = [
  "console",
  "cucumber-codegen",
  "cucumber-expressions",
- "derive_more",
+ "derive_more 0.99.18",
  "drain_filter_polyfill",
  "either",
  "futures 0.3.31",
@@ -1688,7 +2287,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.79",
+ "syn 2.0.87",
  "synthez",
 ]
 
@@ -1698,7 +2297,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d794fed319eea24246fb5f57632f7ae38d61195817b7eb659455aa5bdd7c1810"
 dependencies = [
- "derive_more",
+ "derive_more 0.99.18",
  "either",
  "nom",
  "nom_locate",
@@ -1707,133 +2306,367 @@ dependencies = [
 ]
 
 [[package]]
-name = "curve25519-dalek"
-version = "4.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
+name = "cumulus-pallet-aura-ext"
+version = "0.17.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "cfg-if",
- "cpufeatures",
- "curve25519-dalek-derive",
- "digest 0.10.7",
- "fiat-crypto",
- "rustc_version",
- "subtle 2.6.1",
- "zeroize",
+ "cumulus-pallet-parachain-system",
+ "frame-support",
+ "frame-system",
+ "pallet-aura",
+ "pallet-timestamp",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-application-crypto",
+ "sp-consensus-aura",
+ "sp-runtime",
 ]
 
 [[package]]
-name = "curve25519-dalek-derive"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
+name = "cumulus-pallet-dmp-queue"
+version = "0.17.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.79",
+ "cumulus-primitives-core",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+ "staging-xcm",
 ]
 
 [[package]]
-name = "cxx"
-version = "1.0.128"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54ccead7d199d584d139148b04b4a368d1ec7556a1d9ea2548febb1b9d49f9a4"
+name = "cumulus-pallet-parachain-system"
+version = "0.17.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "cc",
- "cxxbridge-flags",
- "cxxbridge-macro",
- "link-cplusplus",
+ "bytes",
+ "cumulus-pallet-parachain-system-proc-macro",
+ "cumulus-primitives-core",
+ "cumulus-primitives-parachain-inherent",
+ "cumulus-primitives-proof-size-hostfunction",
+ "environmental",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "pallet-message-queue",
+ "parity-scale-codec",
+ "polkadot-parachain-primitives",
+ "polkadot-runtime-common",
+ "polkadot-runtime-parachains",
+ "scale-info",
+ "sp-core",
+ "sp-externalities",
+ "sp-inherents",
+ "sp-io",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-std",
+ "sp-trie",
+ "sp-version",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "trie-db",
 ]
 
 [[package]]
-name = "cxx-build"
-version = "1.0.128"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c77953e99f01508f89f55c494bfa867171ef3a6c8cea03d26975368f2121a5c1"
+name = "cumulus-pallet-parachain-system-proc-macro"
+version = "0.6.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "cc",
- "codespan-reporting",
- "once_cell",
+ "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "scratch",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
-name = "cxxbridge-flags"
-version = "1.0.128"
+name = "cumulus-pallet-session-benchmarking"
+version = "19.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "pallet-session",
+ "parity-scale-codec",
+ "sp-runtime",
+]
+
+[[package]]
+name = "cumulus-pallet-solo-to-para"
+version = "0.17.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "cumulus-pallet-parachain-system",
+ "frame-support",
+ "frame-system",
+ "pallet-sudo",
+ "parity-scale-codec",
+ "polkadot-primitives",
+ "scale-info",
+ "sp-runtime",
+]
+
+[[package]]
+name = "cumulus-pallet-xcm"
+version = "0.17.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+ "staging-xcm",
+]
+
+[[package]]
+name = "cumulus-pallet-xcmp-queue"
+version = "0.17.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bounded-collections",
+ "bp-xcm-bridge-hub-router",
+ "cumulus-primitives-core",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-message-queue",
+ "parity-scale-codec",
+ "polkadot-runtime-common",
+ "polkadot-runtime-parachains",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "cumulus-ping"
+version = "0.17.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "cumulus-pallet-xcm",
+ "cumulus-primitives-core",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+ "staging-xcm",
+]
+
+[[package]]
+name = "cumulus-primitives-aura"
+version = "0.15.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "sp-api",
+ "sp-consensus-aura",
+]
+
+[[package]]
+name = "cumulus-primitives-core"
+version = "0.16.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain-primitives",
+ "polkadot-primitives",
+ "scale-info",
+ "sp-api",
+ "sp-runtime",
+ "sp-trie",
+ "staging-xcm",
+]
+
+[[package]]
+name = "cumulus-primitives-parachain-inherent"
+version = "0.16.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "async-trait",
+ "cumulus-primitives-core",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-inherents",
+ "sp-trie",
+]
+
+[[package]]
+name = "cumulus-primitives-proof-size-hostfunction"
+version = "0.10.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "sp-externalities",
+ "sp-runtime-interface",
+ "sp-trie",
+]
+
+[[package]]
+name = "cumulus-primitives-storage-weight-reclaim"
+version = "8.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "cumulus-primitives-core",
+ "cumulus-primitives-proof-size-hostfunction",
+ "docify",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+]
+
+[[package]]
+name = "cumulus-primitives-timestamp"
+version = "0.16.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "cumulus-primitives-core",
+ "sp-inherents",
+ "sp-timestamp",
+]
+
+[[package]]
+name = "cumulus-primitives-utility"
+version = "0.17.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "log",
+ "pallet-asset-conversion",
+ "parity-scale-codec",
+ "polkadot-runtime-common",
+ "sp-runtime",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "cumulus-test-relay-sproof-builder"
+version = "0.16.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "cumulus-primitives-core",
+ "parity-scale-codec",
+ "polkadot-primitives",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-trie",
+]
+
+[[package]]
+name = "curve25519-dalek"
+version = "4.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65777e06cc48f0cb0152024c77d6cf9e4bdb4408e7b48bea993d42fa0f5b02b6"
+checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
+ "digest 0.10.7",
+ "fiat-crypto",
+ "rustc_version 0.4.1",
+ "subtle 2.6.1",
+ "zeroize",
+]
 
 [[package]]
-name = "cxxbridge-macro"
-version = "1.0.128"
+name = "curve25519-dalek-derive"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98532a60dedaebc4848cb2cba5023337cc9ea3af16a5b062633fabfd9f18fb60"
+checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
-name = "darling"
-version = "0.14.4"
+name = "cxx"
+version = "1.0.130"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
+checksum = "23c042a0ba58aaff55299632834d1ea53ceff73d62373f62c9ae60890ad1b942"
 dependencies = [
- "darling_core 0.14.4",
- "darling_macro 0.14.4",
+ "cc",
+ "cxxbridge-flags",
+ "cxxbridge-macro",
+ "link-cplusplus",
 ]
 
 [[package]]
-name = "darling"
-version = "0.20.10"
+name = "cxx-build"
+version = "1.0.130"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
+checksum = "45dc1c88d0fdac57518a9b1f6c4f4fb2aca8f3c30c0d03d7d8518b47ca0bcea6"
 dependencies = [
- "darling_core 0.20.10",
- "darling_macro 0.20.10",
+ "cc",
+ "codespan-reporting",
+ "proc-macro2",
+ "quote",
+ "scratch",
+ "syn 2.0.87",
 ]
 
 [[package]]
-name = "darling_core"
-version = "0.14.4"
+name = "cxxbridge-flags"
+version = "1.0.130"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa7ed7d30b289e2592cc55bc2ccd89803a63c913e008e6eb59f06cddf45bb52f"
+
+[[package]]
+name = "cxxbridge-macro"
+version = "1.0.130"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
+checksum = "0b8c465d22de46b851c04630a5fc749a26005b263632ed2e0d9cc81518ead78d"
 dependencies = [
- "fnv",
- "ident_case",
  "proc-macro2",
  "quote",
- "strsim 0.10.0",
- "syn 1.0.109",
+ "rustversion",
+ "syn 2.0.87",
 ]
 
 [[package]]
-name = "darling_core"
+name = "darling"
 version = "0.20.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
+checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
 dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim 0.11.1",
- "syn 2.0.79",
+ "darling_core",
+ "darling_macro",
 ]
 
 [[package]]
-name = "darling_macro"
-version = "0.14.4"
+name = "darling_core"
+version = "0.20.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
+checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
 dependencies = [
- "darling_core 0.14.4",
+ "fnv",
+ "ident_case",
+ "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "strsim",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -1842,9 +2675,9 @@ version = "0.20.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
 dependencies = [
- "darling_core 0.20.10",
+ "darling_core",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -1893,14 +2726,11 @@ dependencies = [
  "frame-support",
  "log",
  "pallet-distance",
- "parity-scale-codec",
  "sc-client-api",
- "scale-info",
  "sp-core",
  "sp-distance",
- "sp-keystore",
  "sp-runtime",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
@@ -1969,7 +2799,7 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -1980,7 +2810,7 @@ checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -1992,8 +2822,29 @@ dependencies = [
  "convert_case 0.4.0",
  "proc-macro2",
  "quote",
- "rustc_version",
- "syn 2.0.79",
+ "rustc_version 0.4.1",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "derive_more"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05"
+dependencies = [
+ "derive_more-impl",
+]
+
+[[package]]
+name = "derive_more-impl"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+ "unicode-xid",
 ]
 
 [[package]]
@@ -2082,7 +2933,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -2094,9 +2945,7 @@ dependencies = [
  "dubp-wot",
  "flate2",
  "fnv",
- "hex",
  "log",
- "num-traits 0.2.19",
  "parity-scale-codec",
  "rayon",
  "simple_logger",
@@ -2109,18 +2958,18 @@ dependencies = [
 
 [[package]]
 name = "docify"
-version = "0.2.8"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce"
+checksum = "a772b62b1837c8f060432ddcc10b17aae1453ef17617a99bc07789252d2a5896"
 dependencies = [
  "docify_macros",
 ]
 
 [[package]]
 name = "docify_macros"
-version = "0.2.8"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad"
+checksum = "60e6be249b0a462a14784a99b19bf35a667bb5e09de611738bb7362fa4c95ff7"
 dependencies = [
  "common-path",
  "derive-syn-parse",
@@ -2128,7 +2977,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.79",
+ "syn 2.0.87",
  "termcolor",
  "toml 0.8.19",
  "walkdir",
@@ -2171,6 +3020,12 @@ dependencies = [
  "serde",
 ]
 
+[[package]]
+name = "dunce"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
+
 [[package]]
 name = "duniter"
 version = "0.8.1"
@@ -2190,7 +3045,7 @@ dependencies = [
  "gdev-runtime",
  "gtest-runtime",
  "hex",
- "jsonrpsee 0.24.6",
+ "jsonrpsee",
  "log",
  "memmap2 0.9.5",
  "num-format",
@@ -2248,6 +3103,7 @@ dependencies = [
  "sp-trie",
  "substrate-build-script-utils",
  "substrate-frame-rpc-system",
+ "tokio",
 ]
 
 [[package]]
@@ -2425,7 +3281,38 @@ dependencies = [
  "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "enumflags2"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d"
+dependencies = [
+ "enumflags2_derive",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "enumn"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -2483,24 +3370,55 @@ dependencies = [
 ]
 
 [[package]]
-name = "event-listener"
-version = "2.5.3"
+name = "ethabi-decode"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+checksum = "09d398648d65820a727d6a81e58b962f874473396a047e4c30bafe3240953417"
+dependencies = [
+ "ethereum-types",
+ "tiny-keccak",
+]
 
 [[package]]
-name = "event-listener"
-version = "4.0.3"
+name = "ethbloom"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60"
 dependencies = [
- "concurrent-queue",
- "pin-project-lite",
+ "crunchy",
+ "fixed-hash",
+ "impl-codec 0.6.0",
+ "impl-rlp",
+ "impl-serde 0.4.0",
+ "scale-info",
+ "tiny-keccak",
 ]
 
 [[package]]
-name = "event-listener"
-version = "5.3.1"
+name = "ethereum-types"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee"
+dependencies = [
+ "ethbloom",
+ "fixed-hash",
+ "impl-codec 0.6.0",
+ "impl-rlp",
+ "impl-serde 0.4.0",
+ "primitive-types 0.12.2",
+ "scale-info",
+ "uint 0.9.5",
+]
+
+[[package]]
+name = "event-listener"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+[[package]]
+name = "event-listener"
+version = "5.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
 dependencies = [
@@ -2537,10 +3455,10 @@ dependencies = [
  "blake2 0.10.6",
  "file-guard",
  "fs-err",
- "prettyplease 0.2.22",
+ "prettyplease 0.2.25",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -2584,15 +3502,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2"
 dependencies = [
  "bit-set",
- "regex-automata 0.4.8",
+ "regex-automata 0.4.9",
  "regex-syntax 0.8.5",
 ]
 
 [[package]]
 name = "fastrand"
-version = "2.1.1"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4"
+
+[[package]]
+name = "fastrlp"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
+checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418"
+dependencies = [
+ "arrayvec 0.7.6",
+ "auto_impl",
+ "bytes",
+]
 
 [[package]]
 name = "fdlimit"
@@ -2601,7 +3530,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5"
 dependencies = [
  "libc",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
@@ -2668,16 +3597,6 @@ dependencies = [
  "scale-info",
 ]
 
-[[package]]
-name = "finito"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2384245d85162258a14b43567a9ee3598f5ae746a1581fb5d3d2cb780f0dbf95"
-dependencies = [
- "futures-timer",
- "pin-project",
-]
-
 [[package]]
 name = "fixed-hash"
 version = "0.8.0"
@@ -2698,9 +3617,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[package]]
 name = "flate2"
-version = "1.0.34"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0"
+checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c"
 dependencies = [
  "crc32fast",
  "libz-sys",
@@ -2746,7 +3665,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 [[package]]
 name = "fork-tree"
 version = "13.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "parity-scale-codec",
 ]
@@ -2767,7 +3686,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9"
 dependencies = [
  "nonempty",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
@@ -2779,7 +3698,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
 [[package]]
 name = "frame-benchmarking"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-support",
  "frame-support-procedural",
@@ -2803,7 +3722,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking-cli"
 version = "43.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "Inflector",
  "array-bytes",
@@ -2846,14 +3765,69 @@ dependencies = [
  "sp-storage",
  "sp-trie",
  "sp-wasm-interface",
- "thiserror",
+ "thiserror 1.0.69",
  "thousands",
 ]
 
+[[package]]
+name = "frame-benchmarking-pallet-pov"
+version = "28.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "frame-decode"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02d3379df61ff3dd871e2dde7d1bcdc0263e613c21c7579b149fd4f0ad9b1dc2"
+dependencies = [
+ "frame-metadata 17.0.0",
+ "parity-scale-codec",
+ "scale-decode 0.14.0",
+ "scale-info",
+ "scale-type-resolver 0.2.0",
+ "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "frame-election-provider-solution-type"
+version = "14.0.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "proc-macro-crate 3.2.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "frame-election-provider-support"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-election-provider-solution-type",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-npos-elections",
+ "sp-runtime",
+]
+
 [[package]]
 name = "frame-executive"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "aquamarine",
  "frame-support",
@@ -2891,10 +3865,37 @@ dependencies = [
  "serde",
 ]
 
+[[package]]
+name = "frame-metadata"
+version = "17.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "701bac17e9b55e0f95067c428ebcb46496587f08e8cf4ccc0fe5903bea10dbb8"
+dependencies = [
+ "cfg-if",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+]
+
+[[package]]
+name = "frame-metadata-hash-extension"
+version = "0.6.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "array-bytes",
+ "docify",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+]
+
 [[package]]
 name = "frame-support"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "aquamarine",
  "array-bytes",
@@ -2935,7 +3936,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural"
 version = "30.0.3"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "Inflector",
  "cfg-expr",
@@ -2948,36 +3949,36 @@ dependencies = [
  "proc-macro-warning 1.0.2",
  "proc-macro2",
  "quote",
- "sp-crypto-hashing",
- "syn 2.0.79",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "frame-support-procedural-tools"
 version = "13.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-support-procedural-tools-derive",
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "frame-support-procedural-tools-derive"
 version = "12.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "frame-system"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "cfg-if",
  "docify",
@@ -2997,7 +3998,7 @@ dependencies = [
 [[package]]
 name = "frame-system-benchmarking"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3011,7 +4012,7 @@ dependencies = [
 [[package]]
 name = "frame-system-rpc-runtime-api"
 version = "34.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "docify",
  "parity-scale-codec",
@@ -3021,7 +4022,7 @@ dependencies = [
 [[package]]
 name = "frame-try-runtime"
 version = "0.44.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -3130,9 +4131,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
 
 [[package]]
 name = "futures-lite"
-version = "2.3.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
+checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1"
 dependencies = [
  "fastrand",
  "futures-core",
@@ -3149,7 +4150,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -3235,11 +4236,11 @@ dependencies = [
  "pallet-duniter-account",
  "pallet-duniter-wot",
  "pallet-grandpa",
- "pallet-identity",
+ "pallet-identity 1.0.0",
  "pallet-im-online",
- "pallet-membership",
+ "pallet-membership 1.0.0",
  "pallet-multisig",
- "pallet-offences",
+ "pallet-offences 1.0.0",
  "pallet-oneshot-account",
  "pallet-preimage",
  "pallet-provide-randomness",
@@ -3247,7 +4248,7 @@ dependencies = [
  "pallet-quota",
  "pallet-scheduler",
  "pallet-session",
- "pallet-session-benchmarking",
+ "pallet-session-benchmarking 1.0.0",
  "pallet-smith-members",
  "pallet-sudo",
  "pallet-timestamp",
@@ -3310,11 +4311,11 @@ dependencies = [
  "pallet-duniter-test-parameters",
  "pallet-duniter-wot",
  "pallet-grandpa",
- "pallet-identity",
+ "pallet-identity 1.0.0",
  "pallet-im-online",
- "pallet-membership",
+ "pallet-membership 1.0.0",
  "pallet-multisig",
- "pallet-offences",
+ "pallet-offences 1.0.0",
  "pallet-oneshot-account",
  "pallet-preimage",
  "pallet-provide-randomness",
@@ -3322,7 +4323,7 @@ dependencies = [
  "pallet-quota",
  "pallet-scheduler",
  "pallet-session",
- "pallet-session-benchmarking",
+ "pallet-session-benchmarking 1.0.0",
  "pallet-smith-members",
  "pallet-sudo",
  "pallet-timestamp",
@@ -3396,8 +4397,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
+ "js-sys",
  "libc",
  "wasi",
+ "wasm-bindgen",
 ]
 
 [[package]]
@@ -3431,9 +4434,9 @@ dependencies = [
  "quote",
  "serde",
  "serde_json",
- "syn 2.0.79",
+ "syn 2.0.87",
  "textwrap",
- "thiserror",
+ "thiserror 1.0.69",
  "typed-builder",
 ]
 
@@ -3481,7 +4484,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -3499,7 +4502,7 @@ dependencies = [
  "aho-corasick",
  "bstr",
  "log",
- "regex-automata 0.4.8",
+ "regex-automata 0.4.9",
  "regex-syntax 0.8.5",
 ]
 
@@ -3561,7 +4564,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a5613c31f18676f164112732202124f373bb2103ff017b3b85ca954ea6a66ada"
 dependencies = [
  "combine 3.8.1",
- "failure",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
@@ -3641,11 +4644,11 @@ dependencies = [
  "pallet-duniter-account",
  "pallet-duniter-wot",
  "pallet-grandpa",
- "pallet-identity",
+ "pallet-identity 1.0.0",
  "pallet-im-online",
- "pallet-membership",
+ "pallet-membership 1.0.0",
  "pallet-multisig",
- "pallet-offences",
+ "pallet-offences 1.0.0",
  "pallet-oneshot-account",
  "pallet-preimage",
  "pallet-provide-randomness",
@@ -3653,7 +4656,7 @@ dependencies = [
  "pallet-quota",
  "pallet-scheduler",
  "pallet-session",
- "pallet-session-benchmarking",
+ "pallet-session-benchmarking 1.0.0",
  "pallet-smith-members",
  "pallet-sudo",
  "pallet-timestamp",
@@ -3737,7 +4740,7 @@ dependencies = [
  "pest_derive",
  "serde",
  "serde_json",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
@@ -3760,6 +4763,9 @@ name = "hashbrown"
 version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+dependencies = [
+ "ahash 0.7.8",
+]
 
 [[package]]
 name = "hashbrown"
@@ -3767,7 +4773,7 @@ version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
 dependencies = [
- "ahash",
+ "ahash 0.8.11",
 ]
 
 [[package]]
@@ -3776,16 +4782,16 @@ version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 dependencies = [
- "ahash",
+ "ahash 0.8.11",
  "allocator-api2",
  "serde",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.15.0"
+version = "0.15.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb"
+checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3"
 dependencies = [
  "allocator-api2",
  "equivalent",
@@ -3987,9 +4993,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "0.14.30"
+version = "0.14.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9"
+checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -4011,9 +5017,9 @@ dependencies = [
 
 [[package]]
 name = "hyper"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05"
+checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -4038,7 +5044,7 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
  "http 0.2.12",
- "hyper 0.14.30",
+ "hyper 0.14.31",
  "log",
  "rustls 0.21.12",
  "rustls-native-certs 0.6.3",
@@ -4054,9 +5060,9 @@ checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333"
 dependencies = [
  "futures-util",
  "http 1.1.0",
- "hyper 1.4.1",
+ "hyper 1.5.0",
  "hyper-util",
- "rustls 0.23.14",
+ "rustls 0.23.16",
  "rustls-pki-types",
  "tokio",
  "tokio-rustls 0.26.0",
@@ -4066,16 +5072,16 @@ dependencies = [
 
 [[package]]
 name = "hyper-util"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b"
+checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
  "http 1.1.0",
  "http-body 1.0.1",
- "hyper 1.4.1",
+ "hyper 1.5.0",
  "pin-project-lite",
  "socket2 0.5.7",
  "tokio",
@@ -4106,6 +5112,124 @@ dependencies = [
  "cc",
 ]
 
+[[package]]
+name = "icu_collections"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
+dependencies = [
+ "displaydoc",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
+dependencies = [
+ "displaydoc",
+ "litemap",
+ "tinystr",
+ "writeable",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid_transform"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"
+dependencies = [
+ "displaydoc",
+ "icu_locid",
+ "icu_locid_transform_data",
+ "icu_provider",
+ "tinystr",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid_transform_data"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"
+
+[[package]]
+name = "icu_normalizer"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
+dependencies = [
+ "displaydoc",
+ "icu_collections",
+ "icu_normalizer_data",
+ "icu_properties",
+ "icu_provider",
+ "smallvec",
+ "utf16_iter",
+ "utf8_iter",
+ "write16",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_normalizer_data"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"
+
+[[package]]
+name = "icu_properties"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5"
+dependencies = [
+ "displaydoc",
+ "icu_collections",
+ "icu_locid_transform",
+ "icu_properties_data",
+ "icu_provider",
+ "tinystr",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_properties_data"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"
+
+[[package]]
+name = "icu_provider"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"
+dependencies = [
+ "displaydoc",
+ "icu_locid",
+ "icu_provider_macros",
+ "stable_deref_trait",
+ "tinystr",
+ "writeable",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_provider_macros"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
 [[package]]
 name = "ident_case"
 version = "1.0.1"
@@ -4135,12 +5259,23 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.5.0"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
 dependencies = [
- "unicode-bidi",
- "unicode-normalization",
+ "idna_adapter",
+ "smallvec",
+ "utf8_iter",
+]
+
+[[package]]
+name = "idna_adapter"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71"
+dependencies = [
+ "icu_normalizer",
+ "icu_properties",
 ]
 
 [[package]]
@@ -4183,7 +5318,7 @@ dependencies = [
  "bytes",
  "futures 0.3.31",
  "http 0.2.12",
- "hyper 0.14.30",
+ "hyper 0.14.31",
  "log",
  "rand",
  "tokio",
@@ -4201,7 +5336,7 @@ dependencies = [
  "globset",
  "log",
  "memchr",
- "regex-automata 0.4.8",
+ "regex-automata 0.4.9",
  "same-file",
  "walkdir",
  "winapi-util",
@@ -4216,6 +5351,24 @@ dependencies = [
  "parity-scale-codec",
 ]
 
+[[package]]
+name = "impl-codec"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b67aa010c1e3da95bf151bd8b4c059b2ed7e75387cdb969b4f8f2723a43f9941"
+dependencies = [
+ "parity-scale-codec",
+]
+
+[[package]]
+name = "impl-rlp"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808"
+dependencies = [
+ "rlp",
+]
+
 [[package]]
 name = "impl-serde"
 version = "0.4.0"
@@ -4225,6 +5378,15 @@ dependencies = [
  "serde",
 ]
 
+[[package]]
+name = "impl-serde"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a143eada6a1ec4aefa5049037a26a6d597bfd64f8c026d07b77133e02b7dd0b"
+dependencies = [
+ "serde",
+]
+
 [[package]]
 name = "impl-trait-for-tuples"
 version = "0.2.2"
@@ -4273,7 +5435,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da"
 dependencies = [
  "equivalent",
- "hashbrown 0.15.0",
+ "hashbrown 0.15.1",
 ]
 
 [[package]]
@@ -4420,6 +5582,15 @@ dependencies = [
  "either",
 ]
 
+[[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
 [[package]]
 name = "itoa"
 version = "1.0.11"
@@ -4436,7 +5607,7 @@ dependencies = [
  "combine 4.6.7",
  "jni-sys",
  "log",
- "thiserror",
+ "thiserror 1.0.69",
  "walkdir",
 ]
 
@@ -4466,78 +5637,36 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee"
-version = "0.22.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad"
-dependencies = [
- "jsonrpsee-client-transport 0.22.5",
- "jsonrpsee-core 0.22.5",
- "jsonrpsee-http-client",
- "jsonrpsee-types 0.22.5",
-]
-
-[[package]]
-name = "jsonrpsee"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b089779ad7f80768693755a031cc14a7766aba707cbe886674e3f79e9b7e47"
-dependencies = [
- "jsonrpsee-core 0.23.2",
- "jsonrpsee-types 0.23.2",
- "jsonrpsee-ws-client",
-]
-
-[[package]]
-name = "jsonrpsee"
-version = "0.24.6"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02f01f48e04e0d7da72280ab787c9943695699c9b32b99158ece105e8ad0afea"
+checksum = "c5c71d8c1a731cc4227c2f698d377e7848ca12c8a48866fc5e6951c43a4db843"
 dependencies = [
- "jsonrpsee-core 0.24.6",
+ "jsonrpsee-client-transport",
+ "jsonrpsee-core",
  "jsonrpsee-proc-macros",
  "jsonrpsee-server",
- "jsonrpsee-types 0.24.6",
- "tokio",
- "tracing",
-]
-
-[[package]]
-name = "jsonrpsee-client-transport"
-version = "0.22.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa"
-dependencies = [
- "futures-util",
- "http 0.2.12",
- "jsonrpsee-core 0.22.5",
- "pin-project",
- "rustls-native-certs 0.7.3",
- "rustls-pki-types",
- "soketto 0.7.1",
- "thiserror",
+ "jsonrpsee-types",
+ "jsonrpsee-ws-client",
  "tokio",
- "tokio-rustls 0.25.0",
- "tokio-util",
  "tracing",
- "url",
 ]
 
 [[package]]
 name = "jsonrpsee-client-transport"
-version = "0.23.2"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08163edd8bcc466c33d79e10f695cdc98c00d1e6ddfb95cec41b6b0279dd5432"
+checksum = "548125b159ba1314104f5bb5f38519e03a41862786aa3925cf349aae9cdd546e"
 dependencies = [
  "base64 0.22.1",
  "futures-util",
  "http 1.1.0",
- "jsonrpsee-core 0.23.2",
+ "jsonrpsee-core",
  "pin-project",
- "rustls 0.23.14",
+ "rustls 0.23.16",
  "rustls-pki-types",
  "rustls-platform-verifier",
- "soketto 0.8.0",
- "thiserror",
+ "soketto",
+ "thiserror 1.0.69",
  "tokio",
  "tokio-rustls 0.26.0",
  "tokio-util",
@@ -4547,125 +5676,63 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-core"
-version = "0.22.5"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d"
+checksum = "f2882f6f8acb9fdaec7cefc4fd607119a9bd709831df7d7672a1d3b644628280"
 dependencies = [
- "anyhow",
  "async-trait",
- "beef",
+ "bytes",
  "futures-timer",
  "futures-util",
- "hyper 0.14.30",
- "jsonrpsee-types 0.22.5",
+ "http 1.1.0",
+ "http-body 1.0.1",
+ "http-body-util",
+ "jsonrpsee-types",
+ "parking_lot 0.12.3",
  "pin-project",
- "rustc-hash 1.1.0",
+ "rand",
+ "rustc-hash 2.0.0",
  "serde",
  "serde_json",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
  "tokio-stream",
  "tracing",
 ]
 
-[[package]]
-name = "jsonrpsee-core"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79712302e737d23ca0daa178e752c9334846b08321d439fd89af9a384f8c830b"
-dependencies = [
- "anyhow",
- "async-trait",
- "beef",
- "futures-timer",
- "futures-util",
- "jsonrpsee-types 0.23.2",
- "pin-project",
- "rustc-hash 1.1.0",
- "serde",
- "serde_json",
- "thiserror",
- "tokio",
- "tokio-stream",
- "tracing",
-]
-
-[[package]]
-name = "jsonrpsee-core"
-version = "0.24.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c2709a32915d816a6e8f625bf72cf74523ebe5d8829f895d6b041b1d3137818"
-dependencies = [
- "async-trait",
- "bytes",
- "futures-util",
- "http 1.1.0",
- "http-body 1.0.1",
- "http-body-util",
- "jsonrpsee-types 0.24.6",
- "parking_lot 0.12.3",
- "rand",
- "rustc-hash 2.0.0",
- "serde",
- "serde_json",
- "thiserror",
- "tokio",
- "tracing",
-]
-
-[[package]]
-name = "jsonrpsee-http-client"
-version = "0.22.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5"
-dependencies = [
- "async-trait",
- "hyper 0.14.30",
- "hyper-rustls 0.24.2",
- "jsonrpsee-core 0.22.5",
- "jsonrpsee-types 0.22.5",
- "serde",
- "serde_json",
- "thiserror",
- "tokio",
- "tower",
- "tracing",
- "url",
-]
-
 [[package]]
 name = "jsonrpsee-proc-macros"
-version = "0.24.6"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a9a4b2eaba8cc928f49c4ccf4fcfa65b690a73997682da99ed08f3393b51f07"
+checksum = "c06c01ae0007548e73412c08e2285ffe5d723195bf268bce67b1b77c3bb2a14d"
 dependencies = [
  "heck 0.5.0",
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "jsonrpsee-server"
-version = "0.24.6"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e30110d0f2d7866c8cc6c86483bdab2eb9f4d2f0e20db55518b2bca84651ba8e"
+checksum = "82ad8ddc14be1d4290cd68046e7d1d37acd408efed6d3ca08aefcc3ad6da069c"
 dependencies = [
  "futures-util",
  "http 1.1.0",
  "http-body 1.0.1",
  "http-body-util",
- "hyper 1.4.1",
+ "hyper 1.5.0",
  "hyper-util",
- "jsonrpsee-core 0.24.6",
- "jsonrpsee-types 0.24.6",
+ "jsonrpsee-core",
+ "jsonrpsee-types",
  "pin-project",
  "route-recognizer",
  "serde",
  "serde_json",
- "soketto 0.8.0",
- "thiserror",
+ "soketto",
+ "thiserror 1.0.69",
  "tokio",
  "tokio-stream",
  "tokio-util",
@@ -4675,52 +5742,26 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-types"
-version = "0.22.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d"
-dependencies = [
- "anyhow",
- "beef",
- "serde",
- "serde_json",
- "thiserror",
-]
-
-[[package]]
-name = "jsonrpsee-types"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9c465fbe385238e861fdc4d1c85e04ada6c1fd246161d26385c1b311724d2af"
-dependencies = [
- "beef",
- "http 1.1.0",
- "serde",
- "serde_json",
- "thiserror",
-]
-
-[[package]]
-name = "jsonrpsee-types"
-version = "0.24.6"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca331cd7b3fe95b33432825c2d4c9f5a43963e207fdc01ae67f9fd80ab0930f"
+checksum = "a178c60086f24cc35bb82f57c651d0d25d99c4742b4d335de04e97fa1f08a8a1"
 dependencies = [
  "http 1.1.0",
  "serde",
  "serde_json",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "jsonrpsee-ws-client"
-version = "0.23.2"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c28759775f5cb2f1ea9667672d3fe2b0e701d1f4b7b67954e60afe7fd058b5e"
+checksum = "0fe322e0896d0955a3ebdd5bf813571c53fea29edd713bc315b76620b327e86d"
 dependencies = [
  "http 1.1.0",
- "jsonrpsee-client-transport 0.23.2",
- "jsonrpsee-core 0.23.2",
- "jsonrpsee-types 0.23.2",
+ "jsonrpsee-client-transport",
+ "jsonrpsee-core",
+ "jsonrpsee-types",
  "url",
 ]
 
@@ -4747,6 +5788,16 @@ dependencies = [
  "cpufeatures",
 ]
 
+[[package]]
+name = "keccak-hash"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e1b8590eb6148af2ea2d75f38e7d29f5ca970d5a4df456b3ef19b8b415d0264"
+dependencies = [
+ "primitive-types 0.13.1",
+ "tiny-keccak",
+]
+
 [[package]]
 name = "keystream"
 version = "1.0.0"
@@ -4812,7 +5863,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -4823,15 +5874,15 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
 
 [[package]]
 name = "libc"
-version = "0.2.159"
+version = "0.2.162"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
+checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398"
 
 [[package]]
 name = "libm"
-version = "0.2.8"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa"
 
 [[package]]
 name = "libp2p"
@@ -4867,7 +5918,7 @@ dependencies = [
  "multiaddr 0.18.2",
  "pin-project",
  "rw-stream-sink",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
@@ -4908,7 +5959,7 @@ dependencies = [
  "libp2p-identity",
  "log",
  "multiaddr 0.18.2",
- "multihash 0.19.1",
+ "multihash 0.19.2",
  "multistream-select",
  "once_cell",
  "parking_lot 0.12.3",
@@ -4917,7 +5968,7 @@ dependencies = [
  "rand",
  "rw-stream-sink",
  "smallvec",
- "thiserror",
+ "thiserror 1.0.69",
  "unsigned-varint 0.7.2",
  "void",
 ]
@@ -4953,11 +6004,11 @@ dependencies = [
  "libp2p-identity",
  "libp2p-swarm",
  "log",
- "lru",
+ "lru 0.12.5",
  "quick-protobuf",
  "quick-protobuf-codec",
  "smallvec",
- "thiserror",
+ "thiserror 1.0.69",
  "void",
 ]
 
@@ -4970,11 +6021,11 @@ dependencies = [
  "bs58 0.5.1",
  "ed25519-dalek",
  "hkdf",
- "multihash 0.19.1",
+ "multihash 0.19.2",
  "quick-protobuf",
  "rand",
  "sha2 0.10.8",
- "thiserror",
+ "thiserror 1.0.69",
  "tracing",
  "zeroize",
 ]
@@ -5002,8 +6053,8 @@ dependencies = [
  "rand",
  "sha2 0.10.8",
  "smallvec",
- "thiserror",
- "uint",
+ "thiserror 1.0.69",
+ "uint 0.9.5",
  "unsigned-varint 0.7.2",
  "void",
 ]
@@ -5059,14 +6110,14 @@ dependencies = [
  "libp2p-identity",
  "log",
  "multiaddr 0.18.2",
- "multihash 0.19.1",
+ "multihash 0.19.2",
  "once_cell",
  "quick-protobuf",
  "rand",
  "sha2 0.10.8",
  "snow",
  "static_assertions",
- "thiserror",
+ "thiserror 1.0.69",
  "x25519-dalek",
  "zeroize",
 ]
@@ -5109,7 +6160,7 @@ dependencies = [
  "ring 0.16.20",
  "rustls 0.21.12",
  "socket2 0.5.7",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
 ]
 
@@ -5164,7 +6215,7 @@ dependencies = [
  "proc-macro-warning 0.4.2",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -5198,7 +6249,7 @@ dependencies = [
  "ring 0.16.20",
  "rustls 0.21.12",
  "rustls-webpki 0.101.7",
- "thiserror",
+ "thiserror 1.0.69",
  "x509-parser 0.15.1",
  "yasna",
 ]
@@ -5248,8 +6299,8 @@ dependencies = [
  "parking_lot 0.12.3",
  "pin-project-lite",
  "rw-stream-sink",
- "soketto 0.8.0",
- "thiserror",
+ "soketto",
+ "thiserror 1.0.69",
  "url",
  "webpki-roots 0.25.4",
 ]
@@ -5263,7 +6314,7 @@ dependencies = [
  "futures 0.3.31",
  "libp2p-core",
  "log",
- "thiserror",
+ "thiserror 1.0.69",
  "yamux",
 ]
 
@@ -5365,9 +6416,9 @@ dependencies = [
 
 [[package]]
 name = "linregress"
-version = "0.5.3"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4de04dcecc58d366391f9920245b85ffa684558a5ef6e7736e754347c3aea9c2"
+checksum = "a9eda9dcf4f2a99787827661f312ac3219292549c2ee992bf9a6248ffb066bf7"
 dependencies = [
  "nalgebra",
 ]
@@ -5396,6 +6447,12 @@ dependencies = [
  "keystream",
 ]
 
+[[package]]
+name = "litemap"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704"
+
 [[package]]
 name = "litep2p"
 version = "0.6.2"
@@ -5434,14 +6491,14 @@ dependencies = [
  "socket2 0.5.7",
  "static_assertions",
  "str0m",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
  "tokio-stream",
  "tokio-tungstenite",
  "tokio-util",
  "tracing",
  "trust-dns-resolver",
- "uint",
+ "uint 0.9.5",
  "unsigned-varint 0.8.0",
  "url",
  "webpki",
@@ -5467,13 +6524,22 @@ version = "0.4.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
 
+[[package]]
+name = "lru"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909"
+dependencies = [
+ "hashbrown 0.12.3",
+]
+
 [[package]]
 name = "lru"
 version = "0.12.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38"
 dependencies = [
- "hashbrown 0.15.0",
+ "hashbrown 0.15.1",
 ]
 
 [[package]]
@@ -5522,7 +6588,7 @@ dependencies = [
  "macro_magic_core",
  "macro_magic_macros",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -5536,7 +6602,7 @@ dependencies = [
  "macro_magic_core_macros",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -5547,7 +6613,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -5558,7 +6624,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869"
 dependencies = [
  "macro_magic_core",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -5610,7 +6676,7 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64"
 dependencies = [
- "rustix 0.38.37",
+ "rustix 0.38.40",
 ]
 
 [[package]]
@@ -5727,7 +6793,7 @@ dependencies = [
  "rand_chacha",
  "rand_distr",
  "subtle 2.6.1",
- "thiserror",
+ "thiserror 1.0.69",
  "zeroize",
 ]
 
@@ -5782,9 +6848,15 @@ dependencies = [
  "cfg-if",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
+[[package]]
+name = "multi-stash"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "685a9ac4b61f4e728e1d2c6a7844609c16527aeb5e6c865915c08e619c16410f"
+
 [[package]]
 name = "multiaddr"
 version = "0.17.1"
@@ -5815,7 +6887,7 @@ dependencies = [
  "data-encoding",
  "libp2p-identity",
  "multibase",
- "multihash 0.19.1",
+ "multihash 0.19.2",
  "percent-encoding",
  "serde",
  "static_assertions",
@@ -5870,12 +6942,12 @@ dependencies = [
 
 [[package]]
 name = "multihash"
-version = "0.19.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492"
+checksum = "cc41f430805af9d1cf4adae4ed2149c759b877b01d909a1f40256188d09345d2"
 dependencies = [
  "core2",
- "unsigned-varint 0.7.2",
+ "unsigned-varint 0.8.0",
 ]
 
 [[package]]
@@ -5920,13 +6992,12 @@ dependencies = [
 
 [[package]]
 name = "nalgebra"
-version = "0.32.6"
+version = "0.33.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5c17de023a86f59ed79891b2e5d5a94c705dbe904a5b5c9c952ea6221b03e4"
+checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b"
 dependencies = [
  "approx",
  "matrixmultiply",
- "nalgebra-macros",
  "num-complex",
  "num-rational",
  "num-traits 0.2.19",
@@ -5934,17 +7005,6 @@ dependencies = [
  "typenum",
 ]
 
-[[package]]
-name = "nalgebra-macros"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.79",
-]
-
 [[package]]
 name = "names"
 version = "0.14.0"
@@ -5989,7 +7049,7 @@ dependencies = [
  "anyhow",
  "byteorder",
  "paste",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
@@ -6003,7 +7063,7 @@ dependencies = [
  "log",
  "netlink-packet-core",
  "netlink-sys",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
 ]
 
@@ -6028,7 +7088,7 @@ checksum = "a4a43439bf756eed340bdf8feba761e2d50c7d47175d87545cd5cbe4a137c4d1"
 dependencies = [
  "cc",
  "libc",
- "thiserror",
+ "thiserror 1.0.69",
  "winapi",
 ]
 
@@ -6061,16 +7121,10 @@ version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
 
-[[package]]
-name = "no-std-net"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65"
-
 [[package]]
 name = "node-primitives"
 version = "2.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "sp-core",
  "sp-runtime",
@@ -6191,6 +7245,17 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
 
+[[package]]
+name = "num-derive"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
 [[package]]
 name = "num-format"
 version = "0.4.4"
@@ -6318,9 +7383,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
 
 [[package]]
 name = "openssl"
-version = "0.10.66"
+version = "0.10.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1"
+checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5"
 dependencies = [
  "bitflags 2.6.0",
  "cfg-if",
@@ -6339,7 +7404,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -6350,18 +7415,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "300.3.2+3.3.2"
+version = "300.4.0+3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b"
+checksum = "a709e02f2b4aca747929cca5ed248880847c650233cf8b8cdc48f40aaf4898a6"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.103"
+version = "0.9.104"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6"
+checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741"
 dependencies = [
  "cc",
  "libc",
@@ -6383,230 +7448,218 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
 
 [[package]]
-name = "pallet-atomic-swap"
-version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-alliance"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
+ "frame-benchmarking",
  "frame-support",
  "frame-system",
+ "log",
+ "pallet-collective",
+ "pallet-identity 38.0.0",
  "parity-scale-codec",
  "scale-info",
  "sp-core",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
  "sp-io",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-authority-discovery"
-version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-asset-conversion"
+version = "20.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
+ "frame-benchmarking",
  "frame-support",
  "frame-system",
- "pallet-session",
+ "log",
  "parity-scale-codec",
  "scale-info",
- "sp-application-crypto",
- "sp-authority-discovery",
+ "sp-api",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-authority-members"
-version = "1.0.0"
+name = "pallet-asset-conversion-ops"
+version = "0.6.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
  "frame-system",
  "log",
- "pallet-offences",
- "pallet-session",
+ "pallet-asset-conversion",
  "parity-scale-codec",
  "scale-info",
- "serde",
+ "sp-arithmetic",
  "sp-core",
  "sp-io",
  "sp-runtime",
- "sp-staking",
- "sp-state-machine",
 ]
 
 [[package]]
-name = "pallet-authorship"
-version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-asset-conversion-tx-payment"
+version = "20.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-support",
  "frame-system",
- "impl-trait-for-tuples",
+ "pallet-asset-conversion",
+ "pallet-transaction-payment",
  "parity-scale-codec",
  "scale-info",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-babe"
-version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-asset-rate"
+version = "17.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
  "frame-system",
- "log",
- "pallet-authorship",
- "pallet-session",
- "pallet-timestamp",
  "parity-scale-codec",
  "scale-info",
- "sp-application-crypto",
- "sp-consensus-babe",
  "sp-core",
- "sp-io",
  "sp-runtime",
- "sp-session",
- "sp-staking",
 ]
 
 [[package]]
-name = "pallet-balances"
-version = "39.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-asset-tx-payment"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "docify",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
- "log",
+ "pallet-transaction-payment",
  "parity-scale-codec",
  "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-certification"
-version = "1.0.0"
+name = "pallet-assets"
+version = "40.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "duniter-primitives",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
- "maplit",
+ "impl-trait-for-tuples",
+ "log",
  "parity-scale-codec",
  "scale-info",
  "sp-core",
- "sp-io",
- "sp-keystore",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-collective"
-version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-assets-freezer"
+version = "0.5.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
  "frame-system",
  "log",
+ "pallet-assets",
  "parity-scale-codec",
  "scale-info",
- "sp-core",
- "sp-io",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-distance"
-version = "1.0.0"
+name = "pallet-atomic-swap"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "frame-benchmarking",
  "frame-support",
  "frame-system",
- "pallet-authority-members",
- "pallet-authorship",
- "pallet-balances",
- "pallet-identity",
- "pallet-session",
  "parity-scale-codec",
  "scale-info",
- "sp-consensus-babe",
  "sp-core",
- "sp-distance",
- "sp-inherents",
  "sp-io",
- "sp-keystore",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-duniter-account"
-version = "1.0.0"
+name = "pallet-aura"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "frame-benchmarking",
  "frame-support",
  "frame-system",
  "log",
- "pallet-balances",
- "pallet-identity",
- "pallet-quota",
- "pallet-transaction-payment",
- "pallet-treasury",
+ "pallet-timestamp",
  "parity-scale-codec",
  "scale-info",
- "serde",
- "sp-core",
- "sp-io",
+ "sp-application-crypto",
+ "sp-consensus-aura",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-duniter-test-parameters"
-version = "1.0.0"
+name = "pallet-authority-discovery"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-support",
  "frame-system",
- "pallet-duniter-test-parameters-macro",
+ "pallet-session",
  "parity-scale-codec",
  "scale-info",
- "serde",
- "sp-core",
- "sp-io",
+ "sp-application-crypto",
+ "sp-authority-discovery",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-duniter-test-parameters-macro"
-version = "1.0.0"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.79",
-]
-
-[[package]]
-name = "pallet-duniter-wot"
+name = "pallet-authority-members"
 version = "1.0.0"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
  "frame-system",
- "pallet-certification",
- "pallet-distance",
- "pallet-identity",
- "pallet-membership",
+ "log",
+ "pallet-offences 1.0.0",
+ "pallet-session",
  "parity-scale-codec",
  "scale-info",
+ "serde",
  "sp-core",
  "sp-io",
- "sp-membership",
  "sp-runtime",
+ "sp-staking",
  "sp-state-machine",
 ]
 
 [[package]]
-name = "pallet-grandpa"
+name = "pallet-authorship"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-babe"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -6614,10 +7667,11 @@ dependencies = [
  "log",
  "pallet-authorship",
  "pallet-session",
+ "pallet-timestamp",
  "parity-scale-codec",
  "scale-info",
  "sp-application-crypto",
- "sp-consensus-grandpa",
+ "sp-consensus-babe",
  "sp-core",
  "sp-io",
  "sp-runtime",
@@ -6626,228 +7680,1776 @@ dependencies = [
 ]
 
 [[package]]
-name = "pallet-identity"
-version = "1.0.0"
+name = "pallet-bags-list"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "aquamarine",
+ "docify",
+ "frame-benchmarking",
+ "frame-election-provider-support",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-tracing",
+]
+
+[[package]]
+name = "pallet-balances"
+version = "39.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "docify",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-beefy"
+version = "39.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-authorship",
+ "pallet-session",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-consensus-beefy",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-beefy-mmr"
+version = "39.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "array-bytes",
+ "binary-merkle-tree",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-beefy",
+ "pallet-mmr",
+ "pallet-session",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-api",
+ "sp-consensus-beefy",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-state-machine",
+]
+
+[[package]]
+name = "pallet-bounties"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-treasury",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-bridge-grandpa"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bp-header-chain",
+ "bp-runtime",
+ "bp-test-utils",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-consensus-grandpa",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-bridge-messages"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bp-header-chain",
+ "bp-messages",
+ "bp-runtime",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+ "sp-std",
+ "sp-trie",
+]
+
+[[package]]
+name = "pallet-bridge-parachains"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bp-header-chain",
+ "bp-parachains",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-bridge-grandpa",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-bridge-relayers"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bp-header-chain",
+ "bp-messages",
+ "bp-relayers",
+ "bp-runtime",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-bridge-grandpa",
+ "pallet-bridge-messages",
+ "pallet-bridge-parachains",
+ "pallet-transaction-payment",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-broker"
+version = "0.17.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bitvec",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-api",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-certification"
+version = "1.0.0"
+dependencies = [
+ "duniter-primitives",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "maplit",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-keystore",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-child-bounties"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-bounties",
+ "pallet-treasury",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-collator-selection"
+version = "19.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-session",
+ "parity-scale-codec",
+ "rand",
+ "scale-info",
+ "sp-runtime",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-collective"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-collective-content"
+version = "0.16.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-contracts"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bitflags 1.3.2",
+ "environmental",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "pallet-balances",
+ "pallet-contracts-proc-macro",
+ "pallet-contracts-uapi",
+ "parity-scale-codec",
+ "paste",
+ "rand",
+ "scale-info",
+ "serde",
+ "smallvec",
+ "sp-api",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "wasm-instrument",
+ "wasmi",
+]
+
+[[package]]
+name = "pallet-contracts-mock-network"
+version = "14.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-contracts",
+ "pallet-contracts-proc-macro",
+ "pallet-contracts-uapi",
+ "pallet-insecure-randomness-collective-flip",
+ "pallet-message-queue",
+ "pallet-proxy",
+ "pallet-timestamp",
+ "pallet-utility",
+ "pallet-xcm",
+ "parity-scale-codec",
+ "polkadot-parachain-primitives",
+ "polkadot-primitives",
+ "polkadot-runtime-parachains",
+ "scale-info",
+ "sp-api",
+ "sp-core",
+ "sp-io",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-tracing",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "xcm-simulator",
+]
+
+[[package]]
+name = "pallet-contracts-proc-macro"
+version = "23.0.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "pallet-contracts-uapi"
+version = "12.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bitflags 1.3.2",
+ "parity-scale-codec",
+ "paste",
+ "polkavm-derive 0.9.1",
+ "scale-info",
+]
+
+[[package]]
+name = "pallet-conviction-voting"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "assert_matches",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-core-fellowship"
+version = "22.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-ranked-collective",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-delegated-staking"
+version = "5.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-democracy"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-dev-mode"
+version = "20.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-distance"
+version = "1.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "pallet-authority-members",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-identity 1.0.0",
+ "pallet-session",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-consensus-babe",
+ "sp-core",
+ "sp-distance",
+ "sp-inherents",
+ "sp-io",
+ "sp-keystore",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-duniter-account"
+version = "1.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-balances",
+ "pallet-identity 1.0.0",
+ "pallet-quota",
+ "pallet-transaction-payment",
+ "pallet-treasury",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-duniter-test-parameters"
+version = "1.0.0"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "pallet-duniter-test-parameters-macro",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-duniter-test-parameters-macro"
+version = "1.0.0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "pallet-duniter-wot"
+version = "1.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "pallet-certification",
+ "pallet-distance",
+ "pallet-identity 1.0.0",
+ "pallet-membership 1.0.0",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-membership",
+ "sp-runtime",
+ "sp-state-machine",
+]
+
+[[package]]
+name = "pallet-election-provider-multi-phase"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-election-provider-support",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-election-provider-support-benchmarking",
+ "parity-scale-codec",
+ "rand",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-npos-elections",
+ "sp-runtime",
+ "strum 0.26.3",
+]
+
+[[package]]
+name = "pallet-election-provider-support-benchmarking"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-election-provider-support",
+ "frame-system",
+ "parity-scale-codec",
+ "sp-npos-elections",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-elections-phragmen"
+version = "39.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-npos-elections",
+ "sp-runtime",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-fast-unstake"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "docify",
+ "frame-benchmarking",
+ "frame-election-provider-support",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-glutton"
+version = "24.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "blake2 0.10.6",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-grandpa"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-authorship",
+ "pallet-session",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-application-crypto",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-identity"
+version = "1.0.0"
+dependencies = [
+ "duniter-primitives",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-state-machine",
+]
+
+[[package]]
+name = "pallet-identity"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "enumflags2",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-im-online"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-authorship",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-indices"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-keyring",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-insecure-randomness-collective-flip"
+version = "26.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "safe-mix",
+ "scale-info",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-lottery"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-membership"
+version = "1.0.0"
+dependencies = [
+ "duniter-primitives",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "maplit",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-membership",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-membership"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-message-queue"
+version = "41.0.2"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "environmental",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-weights",
+]
+
+[[package]]
+name = "pallet-migrations"
+version = "8.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "docify",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-mixnet"
+version = "0.14.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-application-crypto",
+ "sp-arithmetic",
+ "sp-io",
+ "sp-mixnet",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-mmr"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-mmr-primitives",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-multisig"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-nft-fractionalization"
+version = "21.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-assets",
+ "pallet-nfts",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-nfts"
+version = "32.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "enumflags2",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-nfts-runtime-api"
+version = "24.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "pallet-nfts",
+ "parity-scale-codec",
+ "sp-api",
+]
+
+[[package]]
+name = "pallet-nis"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-node-authorization"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-nomination-pools"
+version = "35.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-staking",
+ "sp-tracing",
+]
+
+[[package]]
+name = "pallet-nomination-pools-benchmarking"
+version = "36.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-election-provider-support",
+ "frame-support",
+ "frame-system",
+ "pallet-bags-list",
+ "pallet-delegated-staking",
+ "pallet-nomination-pools",
+ "pallet-staking",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+ "sp-runtime-interface",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-nomination-pools-runtime-api"
+version = "33.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "pallet-nomination-pools",
+ "parity-scale-codec",
+ "sp-api",
+]
+
+[[package]]
+name = "pallet-offences"
+version = "1.0.0"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-offences"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-runtime",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-offences-benchmarking"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-election-provider-support",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-babe",
+ "pallet-balances",
+ "pallet-grandpa",
+ "pallet-im-online",
+ "pallet-offences 37.0.0",
+ "pallet-session",
+ "pallet-staking",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-oneshot-account"
+version = "1.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-balances",
+ "pallet-transaction-payment",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-paged-list"
+version = "0.16.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "docify",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-metadata-ir",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-parameters"
+version = "0.9.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "docify",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "paste",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-preimage"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-provide-randomness"
+version = "1.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-proxy"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-quota"
+version = "1.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "pallet-balances",
+ "pallet-identity 1.0.0",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-ranked-collective"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-recovery"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-referenda"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-arithmetic",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-remark"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-revive"
+version = "0.2.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bitflags 1.3.2",
+ "environmental",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "pallet-balances",
+ "pallet-revive-fixtures",
+ "pallet-revive-proc-macro",
+ "pallet-revive-uapi",
+ "parity-scale-codec",
+ "paste",
+ "polkavm 0.10.0",
+ "scale-info",
+ "serde",
+ "sp-api",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "staging-xcm",
+ "staging-xcm-builder",
+]
+
+[[package]]
+name = "pallet-revive-fixtures"
+version = "0.2.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "anyhow",
+ "frame-system",
+ "parity-wasm",
+ "polkavm-linker 0.10.0",
+ "sp-runtime",
+ "tempfile",
+ "toml 0.8.19",
+]
+
+[[package]]
+name = "pallet-revive-mock-network"
+version = "0.2.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-message-queue",
+ "pallet-proxy",
+ "pallet-revive",
+ "pallet-revive-proc-macro",
+ "pallet-revive-uapi",
+ "pallet-timestamp",
+ "pallet-utility",
+ "pallet-xcm",
+ "parity-scale-codec",
+ "polkadot-parachain-primitives",
+ "polkadot-primitives",
+ "polkadot-runtime-parachains",
+ "scale-info",
+ "sp-api",
+ "sp-core",
+ "sp-io",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-tracing",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "xcm-simulator",
+]
+
+[[package]]
+name = "pallet-revive-proc-macro"
+version = "0.1.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "pallet-revive-uapi"
+version = "0.1.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bitflags 1.3.2",
+ "parity-scale-codec",
+ "paste",
+ "polkavm-derive 0.10.0",
+ "scale-info",
+]
+
+[[package]]
+name = "pallet-root-offences"
+version = "35.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "pallet-session",
+ "pallet-staking",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-root-testing"
+version = "14.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-safe-mode"
+version = "19.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "docify",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "pallet-balances",
+ "pallet-proxy",
+ "pallet-utility",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-salary"
+version = "23.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-ranked-collective",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-scheduler"
+version = "39.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "docify",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+ "sp-weights",
+]
+
+[[package]]
+name = "pallet-scored-pool"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-session"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "pallet-timestamp",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+ "sp-state-machine",
+ "sp-trie",
+]
+
+[[package]]
+name = "pallet-session-benchmarking"
+version = "1.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-system",
+ "pallet-session",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-session-benchmarking"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "pallet-session",
+ "pallet-staking",
+ "parity-scale-codec",
+ "rand",
+ "sp-runtime",
+ "sp-session",
+]
+
+[[package]]
+name = "pallet-skip-feeless-payment"
+version = "13.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-smith-members"
+version = "1.0.0"
 dependencies = [
  "duniter-primitives",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
+ "log",
+ "maplit",
+ "pallet-authority-members",
  "parity-scale-codec",
  "scale-info",
- "serde",
  "sp-core",
  "sp-io",
- "sp-keystore",
  "sp-runtime",
- "sp-state-machine",
+ "sp-staking",
 ]
 
 [[package]]
-name = "pallet-im-online"
-version = "37.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-society"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "rand_chacha",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-staking"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-benchmarking",
+ "frame-election-provider-support",
  "frame-support",
  "frame-system",
  "log",
  "pallet-authorship",
+ "pallet-session",
  "parity-scale-codec",
  "scale-info",
+ "serde",
  "sp-application-crypto",
- "sp-core",
  "sp-io",
  "sp-runtime",
  "sp-staking",
 ]
 
 [[package]]
-name = "pallet-membership"
-version = "1.0.0"
+name = "pallet-staking-reward-fn"
+version = "22.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "log",
+ "sp-arithmetic",
+]
+
+[[package]]
+name = "pallet-staking-runtime-api"
+version = "24.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "parity-scale-codec",
+ "sp-api",
+ "sp-staking",
+]
+
+[[package]]
+name = "pallet-state-trie-migration"
+version = "40.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "duniter-primitives",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
- "maplit",
+ "log",
  "parity-scale-codec",
  "scale-info",
  "sp-core",
  "sp-io",
- "sp-membership",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-multisig"
-version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-statement"
+version = "20.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "frame-benchmarking",
  "frame-support",
  "frame-system",
  "log",
  "parity-scale-codec",
  "scale-info",
+ "sp-api",
+ "sp-core",
  "sp-io",
  "sp-runtime",
+ "sp-statement-store",
 ]
 
 [[package]]
-name = "pallet-offences"
-version = "1.0.0"
+name = "pallet-sudo"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
+ "docify",
+ "frame-benchmarking",
  "frame-support",
  "frame-system",
- "log",
  "parity-scale-codec",
  "scale-info",
- "sp-core",
  "sp-io",
  "sp-runtime",
- "sp-staking",
 ]
 
 [[package]]
-name = "pallet-oneshot-account"
-version = "1.0.0"
+name = "pallet-timestamp"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
+ "docify",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
  "log",
- "pallet-balances",
- "pallet-transaction-payment",
  "parity-scale-codec",
  "scale-info",
- "sp-core",
+ "sp-inherents",
  "sp-io",
  "sp-runtime",
+ "sp-storage",
+ "sp-timestamp",
 ]
 
 [[package]]
-name = "pallet-preimage"
-version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-tips"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
  "frame-system",
  "log",
+ "pallet-treasury",
  "parity-scale-codec",
  "scale-info",
+ "serde",
  "sp-core",
  "sp-io",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-provide-randomness"
-version = "1.0.0"
+name = "pallet-transaction-payment"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "frame-benchmarking",
  "frame-support",
  "frame-system",
- "pallet-balances",
  "parity-scale-codec",
  "scale-info",
+ "serde",
  "sp-core",
  "sp-io",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-proxy"
+name = "pallet-transaction-payment-rpc"
+version = "41.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "jsonrpsee",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "parity-scale-codec",
+ "sp-api",
+ "sp-blockchain",
+ "sp-core",
+ "sp-rpc",
+ "sp-runtime",
+ "sp-weights",
+]
+
+[[package]]
+name = "pallet-transaction-payment-rpc-runtime-api"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "pallet-transaction-payment",
+ "parity-scale-codec",
+ "sp-api",
+ "sp-runtime",
+ "sp-weights",
+]
+
+[[package]]
+name = "pallet-transaction-storage"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
  "frame-system",
+ "log",
+ "pallet-balances",
  "parity-scale-codec",
  "scale-info",
+ "serde",
+ "sp-inherents",
  "sp-io",
  "sp-runtime",
+ "sp-transaction-storage-proof",
 ]
 
 [[package]]
-name = "pallet-quota"
-version = "1.0.0"
+name = "pallet-treasury"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
+ "docify",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
+ "impl-trait-for-tuples",
  "pallet-balances",
- "pallet-identity",
  "parity-scale-codec",
  "scale-info",
+ "serde",
  "sp-core",
- "sp-io",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-scheduler"
-version = "39.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-tx-pause"
+version = "19.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "docify",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
- "log",
+ "pallet-balances",
+ "pallet-proxy",
+ "pallet-utility",
  "parity-scale-codec",
  "scale-info",
- "sp-io",
  "sp-runtime",
- "sp-weights",
 ]
 
 [[package]]
-name = "pallet-session"
+name = "pallet-uniques"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
+ "frame-benchmarking",
  "frame-support",
  "frame-system",
- "impl-trait-for-tuples",
  "log",
- "pallet-timestamp",
  "parity-scale-codec",
  "scale-info",
- "sp-core",
- "sp-io",
  "sp-runtime",
- "sp-session",
- "sp-staking",
- "sp-state-machine",
- "sp-trie",
 ]
 
 [[package]]
-name = "pallet-session-benchmarking"
+name = "pallet-universal-dividend"
 version = "1.0.0"
 dependencies = [
+ "duniter-primitives",
  "frame-benchmarking",
+ "frame-support",
  "frame-system",
- "pallet-session",
+ "pallet-balances",
+ "pallet-timestamp",
  "parity-scale-codec",
  "scale-info",
+ "serde",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-smith-members"
+name = "pallet-upgrade-origin"
 version = "1.0.0"
 dependencies = [
- "duniter-primitives",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
- "log",
- "maplit",
- "pallet-authority-members",
  "parity-scale-codec",
  "scale-info",
  "sp-core",
@@ -6857,147 +9459,189 @@ dependencies = [
 ]
 
 [[package]]
-name = "pallet-sudo"
+name = "pallet-utility"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "docify",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
  "parity-scale-codec",
  "scale-info",
+ "sp-core",
  "sp-io",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-timestamp"
-version = "37.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-vesting"
+version = "38.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "docify",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
  "log",
  "parity-scale-codec",
  "scale-info",
- "sp-inherents",
- "sp-io",
  "sp-runtime",
- "sp-storage",
- "sp-timestamp",
 ]
 
 [[package]]
-name = "pallet-transaction-payment"
-version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-whitelist"
+version = "37.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
+ "frame-benchmarking",
  "frame-support",
  "frame-system",
  "parity-scale-codec",
  "scale-info",
- "serde",
- "sp-core",
- "sp-io",
+ "sp-api",
  "sp-runtime",
 ]
 
 [[package]]
-name = "pallet-transaction-payment-rpc"
-version = "41.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-xcm"
+version = "17.0.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "jsonrpsee 0.24.6",
- "pallet-transaction-payment-rpc-runtime-api",
+ "bounded-collections",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-balances",
  "parity-scale-codec",
- "sp-api",
- "sp-blockchain",
+ "scale-info",
+ "serde",
  "sp-core",
- "sp-rpc",
+ "sp-io",
  "sp-runtime",
- "sp-weights",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "tracing",
+ "xcm-runtime-apis",
 ]
 
 [[package]]
-name = "pallet-transaction-payment-rpc-runtime-api"
-version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-xcm-benchmarks"
+version = "17.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "pallet-transaction-payment",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
  "parity-scale-codec",
- "sp-api",
+ "scale-info",
+ "sp-io",
  "sp-runtime",
- "sp-weights",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
 ]
 
 [[package]]
-name = "pallet-treasury"
-version = "37.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "pallet-xcm-bridge-hub"
+version = "0.13.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "docify",
- "frame-benchmarking",
+ "bp-messages",
+ "bp-runtime",
+ "bp-xcm-bridge-hub",
  "frame-support",
  "frame-system",
- "impl-trait-for-tuples",
- "pallet-balances",
+ "log",
+ "pallet-bridge-messages",
  "parity-scale-codec",
  "scale-info",
- "serde",
  "sp-core",
  "sp-runtime",
+ "sp-std",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
 ]
 
 [[package]]
-name = "pallet-universal-dividend"
-version = "1.0.0"
+name = "pallet-xcm-bridge-hub-router"
+version = "0.15.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "duniter-primitives",
+ "bp-xcm-bridge-hub-router",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
- "pallet-balances",
- "pallet-timestamp",
+ "log",
  "parity-scale-codec",
  "scale-info",
- "serde",
- "sp-arithmetic",
  "sp-core",
- "sp-io",
  "sp-runtime",
+ "sp-std",
+ "staging-xcm",
+ "staging-xcm-builder",
 ]
 
 [[package]]
-name = "pallet-upgrade-origin"
-version = "1.0.0"
+name = "parachains-common"
+version = "18.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "frame-benchmarking",
+ "cumulus-primitives-core",
+ "cumulus-primitives-utility",
  "frame-support",
  "frame-system",
+ "log",
+ "pallet-asset-tx-payment",
+ "pallet-assets",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-collator-selection",
+ "pallet-message-queue",
+ "pallet-xcm",
  "parity-scale-codec",
+ "polkadot-primitives",
  "scale-info",
+ "sp-consensus-aura",
  "sp-core",
  "sp-io",
  "sp-runtime",
- "sp-staking",
+ "staging-parachain-info",
+ "staging-xcm",
+ "staging-xcm-executor",
+ "substrate-wasm-builder",
 ]
 
 [[package]]
-name = "pallet-utility"
-version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+name = "parachains-runtimes-test-utils"
+version = "17.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "frame-benchmarking",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-core",
+ "cumulus-primitives-parachain-inherent",
+ "cumulus-test-relay-sproof-builder",
  "frame-support",
  "frame-system",
+ "pallet-balances",
+ "pallet-collator-selection",
+ "pallet-session",
+ "pallet-timestamp",
+ "pallet-xcm",
  "parity-scale-codec",
- "scale-info",
+ "polkadot-parachain-primitives",
+ "sp-consensus-aura",
  "sp-core",
  "sp-io",
  "sp-runtime",
+ "sp-tracing",
+ "staging-parachain-info",
+ "staging-xcm",
+ "staging-xcm-executor",
+ "substrate-wasm-builder",
 ]
 
 [[package]]
@@ -7013,6 +9657,12 @@ dependencies = [
  "unicode-normalization",
 ]
 
+[[package]]
+name = "parity-bytes"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67"
+
 [[package]]
 name = "parity-db"
 version = "0.4.13"
@@ -7061,6 +9711,35 @@ dependencies = [
  "syn 1.0.109",
 ]
 
+[[package]]
+name = "parity-util-mem"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d32c34f4f5ca7f9196001c0aba5a1f9a5a12382c8944b8b0f90233282d1e8f8"
+dependencies = [
+ "cfg-if",
+ "ethereum-types",
+ "hashbrown 0.12.3",
+ "impl-trait-for-tuples",
+ "lru 0.8.1",
+ "parity-util-mem-derive",
+ "parking_lot 0.12.3",
+ "primitive-types 0.12.2",
+ "smallvec",
+ "winapi",
+]
+
+[[package]]
+name = "parity-util-mem-derive"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2"
+dependencies = [
+ "proc-macro2",
+ "syn 1.0.109",
+ "synstructure 0.12.6",
+]
+
 [[package]]
 name = "parity-wasm"
 version = "0.45.0"
@@ -7198,20 +9877,20 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.13"
+version = "2.7.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9"
+checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442"
 dependencies = [
  "memchr",
- "thiserror",
+ "thiserror 1.0.69",
  "ucd-trie",
 ]
 
 [[package]]
 name = "pest_derive"
-version = "2.7.13"
+version = "2.7.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d3a6e3394ec80feb3b6393c725571754c6188490265c61aaf260810d6b95aa0"
+checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd"
 dependencies = [
  "pest",
  "pest_generator",
@@ -7219,22 +9898,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.13"
+version = "2.7.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94429506bde1ca69d1b5601962c73f4172ab4726571a59ea95931218cb0e930e"
+checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.13"
+version = "2.7.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac8a071862e93690b6e34e9a5fb8e33ff3734473ac0245b27232222c4906a33f"
+checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d"
 dependencies = [
  "once_cell",
  "pest",
@@ -7253,29 +9932,29 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.1.6"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec"
+checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.6"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8"
+checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"
 
 [[package]]
 name = "pin-utils"
@@ -7320,17 +9999,465 @@ dependencies = [
  "regex",
 ]
 
+[[package]]
+name = "polkadot-ckb-merkle-mountain-range"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4b44320e5f7ce2c18227537a3032ae5b2c476a7e8eddba45333e1011fc31b92"
+dependencies = [
+ "cfg-if",
+ "itertools 0.10.5",
+]
+
+[[package]]
+name = "polkadot-core-primitives"
+version = "15.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-runtime",
+]
+
+[[package]]
+name = "polkadot-parachain-primitives"
+version = "14.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bounded-collections",
+ "derive_more 0.99.18",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-runtime",
+ "sp-weights",
+]
+
+[[package]]
+name = "polkadot-primitives"
+version = "16.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bitvec",
+ "hex-literal",
+ "log",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain-primitives",
+ "scale-info",
+ "serde",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-arithmetic",
+ "sp-authority-discovery",
+ "sp-consensus-slots",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-staking",
+]
+
+[[package]]
+name = "polkadot-runtime-common"
+version = "17.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bitvec",
+ "frame-benchmarking",
+ "frame-election-provider-support",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "libsecp256k1",
+ "log",
+ "pallet-asset-rate",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-broker",
+ "pallet-election-provider-multi-phase",
+ "pallet-fast-unstake",
+ "pallet-identity 38.0.0",
+ "pallet-session",
+ "pallet-staking",
+ "pallet-staking-reward-fn",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-treasury",
+ "pallet-vesting",
+ "parity-scale-codec",
+ "polkadot-primitives",
+ "polkadot-runtime-parachains",
+ "rustc-hex",
+ "scale-info",
+ "serde",
+ "serde_derive",
+ "slot-range-helper",
+ "sp-api",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-npos-elections",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "static_assertions",
+]
+
+[[package]]
+name = "polkadot-runtime-metrics"
+version = "17.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bs58 0.5.1",
+ "frame-benchmarking",
+ "parity-scale-codec",
+ "polkadot-primitives",
+ "sp-tracing",
+]
+
+[[package]]
+name = "polkadot-runtime-parachains"
+version = "17.0.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bitflags 1.3.2",
+ "bitvec",
+ "derive_more 0.99.18",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "pallet-authority-discovery",
+ "pallet-authorship",
+ "pallet-babe",
+ "pallet-balances",
+ "pallet-broker",
+ "pallet-message-queue",
+ "pallet-mmr",
+ "pallet-session",
+ "pallet-staking",
+ "pallet-timestamp",
+ "pallet-vesting",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain-primitives",
+ "polkadot-primitives",
+ "polkadot-runtime-metrics",
+ "rand",
+ "rand_chacha",
+ "scale-info",
+ "serde",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-session",
+ "sp-staking",
+ "sp-std",
+ "staging-xcm",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "polkadot-sdk"
+version = "0.7.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "asset-test-utils",
+ "assets-common",
+ "binary-merkle-tree",
+ "bp-header-chain",
+ "bp-messages",
+ "bp-parachains",
+ "bp-polkadot",
+ "bp-polkadot-core",
+ "bp-relayers",
+ "bp-runtime",
+ "bp-test-utils",
+ "bp-xcm-bridge-hub",
+ "bp-xcm-bridge-hub-router",
+ "bridge-hub-common",
+ "bridge-hub-test-utils",
+ "bridge-runtime-common",
+ "cumulus-pallet-aura-ext",
+ "cumulus-pallet-dmp-queue",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-parachain-system-proc-macro",
+ "cumulus-pallet-session-benchmarking",
+ "cumulus-pallet-solo-to-para",
+ "cumulus-pallet-xcm",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-ping",
+ "cumulus-primitives-aura",
+ "cumulus-primitives-core",
+ "cumulus-primitives-parachain-inherent",
+ "cumulus-primitives-proof-size-hostfunction",
+ "cumulus-primitives-storage-weight-reclaim",
+ "cumulus-primitives-timestamp",
+ "cumulus-primitives-utility",
+ "cumulus-test-relay-sproof-builder",
+ "frame-benchmarking",
+ "frame-benchmarking-pallet-pov",
+ "frame-election-provider-support",
+ "frame-executive",
+ "frame-metadata-hash-extension",
+ "frame-support",
+ "frame-support-procedural",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "pallet-alliance",
+ "pallet-asset-conversion",
+ "pallet-asset-conversion-ops",
+ "pallet-asset-conversion-tx-payment",
+ "pallet-asset-rate",
+ "pallet-asset-tx-payment",
+ "pallet-assets",
+ "pallet-assets-freezer",
+ "pallet-atomic-swap",
+ "pallet-aura",
+ "pallet-authority-discovery",
+ "pallet-authorship",
+ "pallet-babe",
+ "pallet-bags-list",
+ "pallet-balances",
+ "pallet-beefy",
+ "pallet-beefy-mmr",
+ "pallet-bounties",
+ "pallet-bridge-grandpa",
+ "pallet-bridge-messages",
+ "pallet-bridge-parachains",
+ "pallet-bridge-relayers",
+ "pallet-broker",
+ "pallet-child-bounties",
+ "pallet-collator-selection",
+ "pallet-collective",
+ "pallet-collective-content",
+ "pallet-contracts",
+ "pallet-contracts-mock-network",
+ "pallet-conviction-voting",
+ "pallet-core-fellowship",
+ "pallet-delegated-staking",
+ "pallet-democracy",
+ "pallet-dev-mode",
+ "pallet-election-provider-multi-phase",
+ "pallet-election-provider-support-benchmarking",
+ "pallet-elections-phragmen",
+ "pallet-fast-unstake",
+ "pallet-glutton",
+ "pallet-grandpa",
+ "pallet-identity 38.0.0",
+ "pallet-im-online",
+ "pallet-indices",
+ "pallet-insecure-randomness-collective-flip",
+ "pallet-lottery",
+ "pallet-membership 38.0.0",
+ "pallet-message-queue",
+ "pallet-migrations",
+ "pallet-mixnet",
+ "pallet-mmr",
+ "pallet-multisig",
+ "pallet-nft-fractionalization",
+ "pallet-nfts",
+ "pallet-nfts-runtime-api",
+ "pallet-nis",
+ "pallet-node-authorization",
+ "pallet-nomination-pools",
+ "pallet-nomination-pools-benchmarking",
+ "pallet-nomination-pools-runtime-api",
+ "pallet-offences 37.0.0",
+ "pallet-offences-benchmarking",
+ "pallet-paged-list",
+ "pallet-parameters",
+ "pallet-preimage",
+ "pallet-proxy",
+ "pallet-ranked-collective",
+ "pallet-recovery",
+ "pallet-referenda",
+ "pallet-remark",
+ "pallet-revive",
+ "pallet-revive-fixtures",
+ "pallet-revive-mock-network",
+ "pallet-root-offences",
+ "pallet-root-testing",
+ "pallet-safe-mode",
+ "pallet-salary",
+ "pallet-scheduler",
+ "pallet-scored-pool",
+ "pallet-session",
+ "pallet-session-benchmarking 38.0.0",
+ "pallet-skip-feeless-payment",
+ "pallet-society",
+ "pallet-staking",
+ "pallet-staking-reward-fn",
+ "pallet-staking-runtime-api",
+ "pallet-state-trie-migration",
+ "pallet-statement",
+ "pallet-sudo",
+ "pallet-timestamp",
+ "pallet-tips",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-transaction-storage",
+ "pallet-treasury",
+ "pallet-tx-pause",
+ "pallet-uniques",
+ "pallet-utility",
+ "pallet-vesting",
+ "pallet-whitelist",
+ "pallet-xcm",
+ "pallet-xcm-benchmarks",
+ "pallet-xcm-bridge-hub",
+ "pallet-xcm-bridge-hub-router",
+ "parachains-common",
+ "parachains-runtimes-test-utils",
+ "polkadot-core-primitives",
+ "polkadot-parachain-primitives",
+ "polkadot-primitives",
+ "polkadot-runtime-common",
+ "polkadot-runtime-metrics",
+ "polkadot-runtime-parachains",
+ "polkadot-sdk-frame",
+ "sc-executor",
+ "slot-range-helper",
+ "snowbridge-beacon-primitives",
+ "snowbridge-core",
+ "snowbridge-ethereum",
+ "snowbridge-outbound-queue-merkle-tree",
+ "snowbridge-outbound-queue-runtime-api",
+ "snowbridge-pallet-ethereum-client",
+ "snowbridge-pallet-ethereum-client-fixtures",
+ "snowbridge-pallet-inbound-queue",
+ "snowbridge-pallet-inbound-queue-fixtures",
+ "snowbridge-pallet-outbound-queue",
+ "snowbridge-pallet-system",
+ "snowbridge-router-primitives",
+ "snowbridge-runtime-common",
+ "snowbridge-runtime-test-common",
+ "snowbridge-system-runtime-api",
+ "sp-api",
+ "sp-api-proc-macro",
+ "sp-application-crypto",
+ "sp-arithmetic",
+ "sp-authority-discovery",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-consensus-babe",
+ "sp-consensus-beefy",
+ "sp-consensus-grandpa",
+ "sp-consensus-pow",
+ "sp-consensus-slots",
+ "sp-core",
+ "sp-core-hashing",
+ "sp-crypto-ec-utils",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
+ "sp-debug-derive",
+ "sp-externalities",
+ "sp-genesis-builder",
+ "sp-inherents",
+ "sp-io",
+ "sp-keyring",
+ "sp-keystore",
+ "sp-metadata-ir",
+ "sp-mixnet",
+ "sp-mmr-primitives",
+ "sp-npos-elections",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-runtime-interface",
+ "sp-session",
+ "sp-staking",
+ "sp-state-machine",
+ "sp-statement-store",
+ "sp-std",
+ "sp-storage",
+ "sp-timestamp",
+ "sp-tracing",
+ "sp-transaction-pool",
+ "sp-transaction-storage-proof",
+ "sp-trie",
+ "sp-version",
+ "sp-wasm-interface",
+ "sp-weights",
+ "staging-parachain-info",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "substrate-bip39",
+ "testnet-parachains-constants",
+ "xcm-runtime-apis",
+]
+
+[[package]]
+name = "polkadot-sdk-frame"
+version = "0.7.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "docify",
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-api",
+ "sp-arithmetic",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-storage",
+ "sp-transaction-pool",
+ "sp-version",
+]
+
 [[package]]
 name = "polkavm"
 version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94"
+checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94"
+dependencies = [
+ "libc",
+ "log",
+ "polkavm-assembler 0.9.0",
+ "polkavm-common 0.9.0",
+ "polkavm-linux-raw 0.9.0",
+]
+
+[[package]]
+name = "polkavm"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7ec0c5935f2eff23cfc4653002f4f8d12b37f87a720e0631282d188c32089d6"
 dependencies = [
  "libc",
  "log",
- "polkavm-assembler",
- "polkavm-common",
- "polkavm-linux-raw",
+ "polkavm-assembler 0.10.0",
+ "polkavm-common 0.10.0",
+ "polkavm-linux-raw 0.10.0",
 ]
 
 [[package]]
@@ -7342,6 +10469,15 @@ dependencies = [
  "log",
 ]
 
+[[package]]
+name = "polkavm-assembler"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8e4fd5a43100bf1afe9727b8130d01f966f5cfc9144d5604b21e795c2bcd80e"
+dependencies = [
+ "log",
+]
+
 [[package]]
 name = "polkavm-common"
 version = "0.9.0"
@@ -7351,13 +10487,32 @@ dependencies = [
  "log",
 ]
 
+[[package]]
+name = "polkavm-common"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0097b48bc0bedf9f3f537ce8f37e8f1202d8d83f9b621bdb21ff2c59b9097c50"
+dependencies = [
+ "log",
+ "polkavm-assembler 0.10.0",
+]
+
 [[package]]
 name = "polkavm-derive"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606"
 dependencies = [
- "polkavm-derive-impl-macro",
+ "polkavm-derive-impl-macro 0.9.0",
+]
+
+[[package]]
+name = "polkavm-derive"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dcc701385c08c31bdb0569f0c51a290c580d892fa77f1dd88a7352a62679ecf"
+dependencies = [
+ "polkavm-derive-impl-macro 0.10.0",
 ]
 
 [[package]]
@@ -7366,10 +10521,22 @@ version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c"
 dependencies = [
- "polkavm-common",
+ "polkavm-common 0.9.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "polkavm-derive-impl"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7855353a5a783dd5d09e3b915474bddf66575f5a3cf45dec8d1c5e051ba320dc"
+dependencies = [
+ "polkavm-common 0.10.0",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -7378,8 +10545,18 @@ version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429"
 dependencies = [
- "polkavm-derive-impl",
- "syn 2.0.79",
+ "polkavm-derive-impl 0.9.0",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "polkavm-derive-impl-macro"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9324fe036de37c17829af233b46ef6b5562d4a0c09bb7fdb9f8378856dee30cf"
+dependencies = [
+ "polkavm-derive-impl 0.10.0",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -7392,7 +10569,22 @@ dependencies = [
  "hashbrown 0.14.5",
  "log",
  "object 0.32.2",
- "polkavm-common",
+ "polkavm-common 0.9.0",
+ "regalloc2 0.9.3",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "polkavm-linker"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d704edfe7bdcc876784f19436d53d515b65eb07bc9a0fae77085d552c2dbbb5"
+dependencies = [
+ "gimli 0.28.1",
+ "hashbrown 0.14.5",
+ "log",
+ "object 0.36.5",
+ "polkavm-common 0.10.0",
  "regalloc2 0.9.3",
  "rustc-demangle",
 ]
@@ -7403,17 +10595,23 @@ version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120"
 
+[[package]]
+name = "polkavm-linux-raw"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26e45fa59c7e1bb12ef5289080601e9ec9b31435f6e32800a5c90c132453d126"
+
 [[package]]
 name = "polling"
-version = "3.7.3"
+version = "3.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511"
+checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
  "hermit-abi 0.4.0",
  "pin-project-lite",
- "rustix 0.38.37",
+ "rustix 0.38.40",
  "tracing",
  "windows-sys 0.59.0",
 ]
@@ -7523,12 +10721,12 @@ dependencies = [
 
 [[package]]
 name = "prettyplease"
-version = "0.2.22"
+version = "0.2.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba"
+checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033"
 dependencies = [
  "proc-macro2",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -7538,10 +10736,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2"
 dependencies = [
  "fixed-hash",
- "impl-codec",
- "impl-serde",
+ "impl-codec 0.6.0",
+ "impl-rlp",
+ "impl-serde 0.4.0",
+ "scale-info",
+ "uint 0.9.5",
+]
+
+[[package]]
+name = "primitive-types"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5"
+dependencies = [
+ "fixed-hash",
+ "impl-codec 0.7.0",
+ "impl-serde 0.5.0",
  "scale-info",
- "uint",
+ "uint 0.10.0",
 ]
 
 [[package]]
@@ -7550,7 +10762,7 @@ version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
 dependencies = [
- "thiserror",
+ "thiserror 1.0.69",
  "toml 0.5.11",
 ]
 
@@ -7587,6 +10799,28 @@ dependencies = [
  "version_check",
 ]
 
+[[package]]
+name = "proc-macro-error-attr2"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "proc-macro-error2"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
+dependencies = [
+ "proc-macro-error-attr2",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
 [[package]]
 name = "proc-macro-warning"
 version = "0.4.2"
@@ -7595,7 +10829,7 @@ checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -7606,14 +10840,14 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.87"
+version = "1.0.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a"
+checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
 dependencies = [
  "unicode-ident",
 ]
@@ -7629,7 +10863,7 @@ dependencies = [
  "lazy_static",
  "memchr",
  "parking_lot 0.12.3",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
@@ -7652,7 +10886,27 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "proptest"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d"
+dependencies = [
+ "bit-set",
+ "bit-vec",
+ "bitflags 2.6.0",
+ "lazy_static",
+ "num-traits 0.2.19",
+ "rand",
+ "rand_chacha",
+ "rand_xorshift",
+ "regex-syntax 0.8.5",
+ "rusty-fork",
+ "tempfile",
+ "unarray",
 ]
 
 [[package]]
@@ -7710,11 +10964,11 @@ dependencies = [
  "multimap 0.10.0",
  "once_cell",
  "petgraph",
- "prettyplease 0.2.22",
+ "prettyplease 0.2.25",
  "prost 0.12.6",
  "prost-types 0.12.6",
  "regex",
- "syn 2.0.79",
+ "syn 2.0.87",
  "tempfile",
 ]
 
@@ -7741,7 +10995,7 @@ dependencies = [
  "itertools 0.12.1",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -7764,9 +11018,9 @@ dependencies = [
 
 [[package]]
 name = "psm"
-version = "0.1.23"
+version = "0.1.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205"
+checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810"
 dependencies = [
  "cc",
 ]
@@ -7810,7 +11064,7 @@ dependencies = [
  "asynchronous-codec",
  "bytes",
  "quick-protobuf",
- "thiserror",
+ "thiserror 1.0.69",
  "unsigned-varint 0.7.2",
 ]
 
@@ -7826,7 +11080,7 @@ dependencies = [
  "quinn-udp 0.3.2",
  "rustc-hash 1.1.0",
  "rustls 0.20.9",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
  "tracing",
  "webpki",
@@ -7845,25 +11099,25 @@ dependencies = [
  "quinn-udp 0.4.1",
  "rustc-hash 1.1.0",
  "rustls 0.21.12",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
  "tracing",
 ]
 
 [[package]]
 name = "quinn"
-version = "0.11.5"
+version = "0.11.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684"
+checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef"
 dependencies = [
  "bytes",
  "pin-project-lite",
- "quinn-proto 0.11.8",
- "quinn-udp 0.5.5",
+ "quinn-proto 0.11.9",
+ "quinn-udp 0.5.7",
  "rustc-hash 2.0.0",
- "rustls 0.23.14",
+ "rustls 0.23.16",
  "socket2 0.5.7",
- "thiserror",
+ "thiserror 2.0.3",
  "tokio",
  "tracing",
 ]
@@ -7880,7 +11134,7 @@ dependencies = [
  "rustc-hash 1.1.0",
  "rustls 0.20.9",
  "slab",
- "thiserror",
+ "thiserror 1.0.69",
  "tinyvec",
  "tracing",
  "webpki",
@@ -7898,26 +11152,29 @@ dependencies = [
  "rustc-hash 1.1.0",
  "rustls 0.21.12",
  "slab",
- "thiserror",
+ "thiserror 1.0.69",
  "tinyvec",
  "tracing",
 ]
 
 [[package]]
 name = "quinn-proto"
-version = "0.11.8"
+version = "0.11.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6"
+checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d"
 dependencies = [
  "bytes",
+ "getrandom",
  "rand",
  "ring 0.17.8",
  "rustc-hash 2.0.0",
- "rustls 0.23.14",
+ "rustls 0.23.16",
+ "rustls-pki-types",
  "slab",
- "thiserror",
+ "thiserror 2.0.3",
  "tinyvec",
  "tracing",
+ "web-time",
 ]
 
 [[package]]
@@ -7948,10 +11205,11 @@ dependencies = [
 
 [[package]]
 name = "quinn-udp"
-version = "0.5.5"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b"
+checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da"
 dependencies = [
+ "cfg_aliases 0.2.1",
  "libc",
  "once_cell",
  "socket2 0.5.7",
@@ -8023,6 +11281,15 @@ dependencies = [
  "rand_core",
 ]
 
+[[package]]
+name = "rand_xorshift"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
+dependencies = [
+ "rand_core",
+]
+
 [[package]]
 name = "raw-cpuid"
 version = "11.2.0"
@@ -8070,22 +11337,6 @@ dependencies = [
  "yasna",
 ]
 
-[[package]]
-name = "reconnecting-jsonrpsee-ws-client"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06fa4f17e09edfc3131636082faaec633c7baa269396b4004040bc6c52f49f65"
-dependencies = [
- "cfg_aliases 0.2.1",
- "finito",
- "futures 0.3.31",
- "jsonrpsee 0.23.2",
- "serde_json",
- "thiserror",
- "tokio",
- "tracing",
-]
-
 [[package]]
 name = "redox_syscall"
 version = "0.2.16"
@@ -8112,7 +11363,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
 dependencies = [
  "getrandom",
  "libredox",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
@@ -8132,7 +11383,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -8162,13 +11413,13 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.11.0"
+version = "1.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8"
+checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.8",
+ "regex-automata 0.4.9",
  "regex-syntax 0.8.5",
 ]
 
@@ -8183,9 +11434,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3"
+checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -8212,9 +11463,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
 
 [[package]]
 name = "reqwest"
-version = "0.12.8"
+version = "0.12.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b"
+checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f"
 dependencies = [
  "base64 0.22.1",
  "bytes",
@@ -8223,7 +11474,7 @@ dependencies = [
  "http 1.1.0",
  "http-body 1.0.1",
  "http-body-util",
- "hyper 1.4.1",
+ "hyper 1.5.0",
  "hyper-rustls 0.27.3",
  "hyper-util",
  "ipnet",
@@ -8233,8 +11484,8 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "quinn 0.11.5",
- "rustls 0.23.14",
+ "quinn 0.11.6",
+ "rustls 0.23.16",
  "rustls-pemfile 2.2.0",
  "rustls-pki-types",
  "serde",
@@ -8302,6 +11553,32 @@ dependencies = [
  "windows-sys 0.52.0",
 ]
 
+[[package]]
+name = "rlp"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec"
+dependencies = [
+ "bytes",
+ "rustc-hex",
+]
+
+[[package]]
+name = "rococo-runtime-constants"
+version = "17.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "polkadot-primitives",
+ "polkadot-runtime-common",
+ "smallvec",
+ "sp-core",
+ "sp-runtime",
+ "sp-weights",
+ "staging-xcm",
+ "staging-xcm-builder",
+]
+
 [[package]]
 name = "route-recognizer"
 version = "0.3.1"
@@ -8330,7 +11607,7 @@ dependencies = [
  "netlink-packet-route",
  "netlink-proto",
  "nix 0.24.3",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
 ]
 
@@ -8344,6 +11621,36 @@ dependencies = [
  "windows-sys 0.48.0",
 ]
 
+[[package]]
+name = "ruint"
+version = "1.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286"
+dependencies = [
+ "alloy-rlp",
+ "ark-ff 0.3.0",
+ "ark-ff 0.4.2",
+ "bytes",
+ "fastrlp",
+ "num-bigint",
+ "num-traits 0.2.19",
+ "parity-scale-codec",
+ "primitive-types 0.12.2",
+ "proptest",
+ "rand",
+ "rlp",
+ "ruint-macro",
+ "serde",
+ "valuable",
+ "zeroize",
+]
+
+[[package]]
+name = "ruint-macro"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18"
+
 [[package]]
 name = "rustc-demangle"
 version = "0.1.24"
@@ -8368,6 +11675,24 @@ version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6"
 
+[[package]]
+name = "rustc_version"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+dependencies = [
+ "semver 0.9.0",
+]
+
+[[package]]
+name = "rustc_version"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
+dependencies = [
+ "semver 0.11.0",
+]
+
 [[package]]
 name = "rustc_version"
 version = "0.4.1"
@@ -8402,9 +11727,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.37"
+version = "0.38.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
+checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0"
 dependencies = [
  "bitflags 2.6.0",
  "errno",
@@ -8438,23 +11763,9 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.22.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
-dependencies = [
- "log",
- "ring 0.17.8",
- "rustls-pki-types",
- "rustls-webpki 0.102.8",
- "subtle 2.6.1",
- "zeroize",
-]
-
-[[package]]
-name = "rustls"
-version = "0.23.14"
+version = "0.23.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "415d9944693cb90382053259f89fbb077ea730ad7273047ec63b19bc9b160ba8"
+checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e"
 dependencies = [
  "log",
  "once_cell",
@@ -8510,9 +11821,12 @@ dependencies = [
 
 [[package]]
 name = "rustls-pki-types"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55"
+checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b"
+dependencies = [
+ "web-time",
+]
 
 [[package]]
 name = "rustls-platform-verifier"
@@ -8525,7 +11839,7 @@ dependencies = [
  "jni",
  "log",
  "once_cell",
- "rustls 0.23.14",
+ "rustls 0.23.16",
  "rustls-native-certs 0.7.3",
  "rustls-platform-verifier-android",
  "rustls-webpki 0.102.8",
@@ -8564,19 +11878,30 @@ dependencies = [
 
 [[package]]
 name = "rustversion"
-version = "1.0.17"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248"
+
+[[package]]
+name = "rusty-fork"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
+checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f"
+dependencies = [
+ "fnv",
+ "quick-error",
+ "tempfile",
+ "wait-timeout",
+]
 
 [[package]]
 name = "ruzstd"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58c4eb8a81997cf040a091d1f7e1938aeab6749d3a0dfa73af43cdc32393483d"
+checksum = "5174a470eeb535a721ae9fdd6e291c2411a906b96592182d05217591d5c5cf7b"
 dependencies = [
  "byteorder",
- "derive_more",
- "twox-hash",
+ "derive_more 0.99.18",
 ]
 
 [[package]]
@@ -8596,6 +11921,15 @@ version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
+[[package]]
+name = "safe-mix"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d3d055a2582e6b00ed7a31c1524040aa391092bf636328350813f3a0605215c"
+dependencies = [
+ "rustc_version 0.2.3",
+]
+
 [[package]]
 name = "safe_arch"
 version = "0.7.2"
@@ -8617,18 +11951,18 @@ dependencies = [
 [[package]]
 name = "sc-allocator"
 version = "29.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "log",
  "sp-core",
  "sp-wasm-interface",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-basic-authorship"
 version = "0.45.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "futures 0.3.31",
  "futures-timer",
@@ -8650,7 +11984,7 @@ dependencies = [
 [[package]]
 name = "sc-block-builder"
 version = "0.42.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -8665,7 +11999,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "array-bytes",
  "docify",
@@ -8681,7 +12015,7 @@ dependencies = [
  "serde_json",
  "sp-blockchain",
  "sp-core",
- "sp-crypto-hashing",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
  "sp-genesis-builder",
  "sp-io",
  "sp-runtime",
@@ -8692,18 +12026,18 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec-derive"
 version = "12.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sc-cli"
 version = "0.47.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "array-bytes",
  "chrono",
@@ -8737,14 +12071,14 @@ dependencies = [
  "sp-panic-handler",
  "sp-runtime",
  "sp-version",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
 ]
 
 [[package]]
 name = "sc-client-api"
 version = "37.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "fnv",
  "futures 0.3.31",
@@ -8770,8 +12104,8 @@ dependencies = [
 
 [[package]]
 name = "sc-client-db"
-version = "0.44.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+version = "0.44.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "hash-db",
  "kvdb",
@@ -8796,7 +12130,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus"
 version = "0.44.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -8814,13 +12148,13 @@ dependencies = [
  "sp-runtime",
  "sp-state-machine",
  "substrate-prometheus-endpoint",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-consensus-aura"
 version = "0.45.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -8843,13 +12177,13 @@ dependencies = [
  "sp-keystore",
  "sp-runtime",
  "substrate-prometheus-endpoint",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-consensus-babe"
 version = "0.45.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "fork-tree",
@@ -8874,21 +12208,21 @@ dependencies = [
  "sp-consensus-babe",
  "sp-consensus-slots",
  "sp-core",
- "sp-crypto-hashing",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
  "sp-inherents",
  "sp-keystore",
  "sp-runtime",
  "substrate-prometheus-endpoint",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-consensus-babe-rpc"
 version = "0.45.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "futures 0.3.31",
- "jsonrpsee 0.24.6",
+ "jsonrpsee",
  "sc-consensus-babe",
  "sc-consensus-epochs",
  "sc-rpc-api",
@@ -8901,13 +12235,13 @@ dependencies = [
  "sp-core",
  "sp-keystore",
  "sp-runtime",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-consensus-epochs"
 version = "0.44.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "fork-tree",
  "parity-scale-codec",
@@ -8920,9 +12254,9 @@ dependencies = [
 [[package]]
 name = "sc-consensus-grandpa"
 version = "0.30.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "ahash",
+ "ahash 0.8.11",
  "array-bytes",
  "async-trait",
  "dyn-clone",
@@ -8954,21 +12288,21 @@ dependencies = [
  "sp-consensus",
  "sp-consensus-grandpa",
  "sp-core",
- "sp-crypto-hashing",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
  "sp-keystore",
  "sp-runtime",
  "substrate-prometheus-endpoint",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-consensus-grandpa-rpc"
 version = "0.30.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "finality-grandpa",
  "futures 0.3.31",
- "jsonrpsee 0.24.6",
+ "jsonrpsee",
  "log",
  "parity-scale-codec",
  "sc-client-api",
@@ -8978,19 +12312,19 @@ dependencies = [
  "sp-blockchain",
  "sp-core",
  "sp-runtime",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-consensus-manual-seal"
 version = "0.46.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "assert_matches",
  "async-trait",
  "futures 0.3.31",
  "futures-timer",
- "jsonrpsee 0.24.6",
+ "jsonrpsee",
  "log",
  "parity-scale-codec",
  "sc-client-api",
@@ -9013,13 +12347,13 @@ dependencies = [
  "sp-runtime",
  "sp-timestamp",
  "substrate-prometheus-endpoint",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-consensus-slots"
 version = "0.44.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -9042,7 +12376,7 @@ dependencies = [
 [[package]]
 name = "sc-executor"
 version = "0.40.1"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "parity-scale-codec",
  "parking_lot 0.12.3",
@@ -9065,23 +12399,23 @@ dependencies = [
 [[package]]
 name = "sc-executor-common"
 version = "0.35.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "polkavm",
+ "polkavm 0.9.3",
  "sc-allocator",
  "sp-maybe-compressed-blob",
  "sp-wasm-interface",
- "thiserror",
+ "thiserror 1.0.69",
  "wasm-instrument",
 ]
 
 [[package]]
 name = "sc-executor-polkavm"
 version = "0.32.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "log",
- "polkavm",
+ "polkavm 0.9.3",
  "sc-executor-common",
  "sp-wasm-interface",
 ]
@@ -9089,7 +12423,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmtime"
 version = "0.35.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "anyhow",
  "cfg-if",
@@ -9107,7 +12441,7 @@ dependencies = [
 [[package]]
 name = "sc-informant"
 version = "0.44.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "console",
  "futures 0.3.31",
@@ -9124,7 +12458,7 @@ dependencies = [
 [[package]]
 name = "sc-keystore"
 version = "33.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "array-bytes",
  "parking_lot 0.12.3",
@@ -9132,13 +12466,13 @@ dependencies = [
  "sp-application-crypto",
  "sp-core",
  "sp-keystore",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-mixnet"
 version = "0.15.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "array-bytes",
  "arrayvec 0.7.6",
@@ -9161,13 +12495,13 @@ dependencies = [
  "sp-keystore",
  "sp-mixnet",
  "sp-runtime",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-network"
-version = "0.45.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+version = "0.45.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "array-bytes",
  "async-channel 1.9.0",
@@ -9206,7 +12540,7 @@ dependencies = [
  "sp-core",
  "sp-runtime",
  "substrate-prometheus-endpoint",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
  "tokio-stream",
  "unsigned-varint 0.7.2",
@@ -9218,7 +12552,7 @@ dependencies = [
 [[package]]
 name = "sc-network-common"
 version = "0.44.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "bitflags 1.3.2",
@@ -9236,9 +12570,9 @@ dependencies = [
 [[package]]
 name = "sc-network-gossip"
 version = "0.45.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "ahash",
+ "ahash 0.8.11",
  "futures 0.3.31",
  "futures-timer",
  "log",
@@ -9254,8 +12588,8 @@ dependencies = [
 
 [[package]]
 name = "sc-network-light"
-version = "0.44.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+version = "0.44.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "array-bytes",
  "async-channel 1.9.0",
@@ -9270,13 +12604,13 @@ dependencies = [
  "sp-blockchain",
  "sp-core",
  "sp-runtime",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-network-sync"
-version = "0.44.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+version = "0.44.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "array-bytes",
  "async-channel 1.9.0",
@@ -9305,15 +12639,15 @@ dependencies = [
  "sp-core",
  "sp-runtime",
  "substrate-prometheus-endpoint",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
  "tokio-stream",
 ]
 
 [[package]]
 name = "sc-network-transactions"
-version = "0.44.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+version = "0.44.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "array-bytes",
  "futures 0.3.31",
@@ -9332,7 +12666,7 @@ dependencies = [
 [[package]]
 name = "sc-network-types"
 version = "0.12.1"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "bs58 0.5.1",
  "ed25519-dalek",
@@ -9340,23 +12674,23 @@ dependencies = [
  "litep2p",
  "log",
  "multiaddr 0.18.2",
- "multihash 0.19.1",
+ "multihash 0.19.2",
  "rand",
- "thiserror",
+ "thiserror 1.0.69",
  "zeroize",
 ]
 
 [[package]]
 name = "sc-offchain"
 version = "40.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "array-bytes",
  "bytes",
  "fnv",
  "futures 0.3.31",
  "futures-timer",
- "hyper 0.14.30",
+ "hyper 0.14.31",
  "hyper-rustls 0.24.2",
  "log",
  "num_cpus",
@@ -9383,7 +12717,7 @@ dependencies = [
 [[package]]
 name = "sc-proposer-metrics"
 version = "0.18.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "log",
  "substrate-prometheus-endpoint",
@@ -9392,10 +12726,10 @@ dependencies = [
 [[package]]
 name = "sc-rpc"
 version = "40.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "futures 0.3.31",
- "jsonrpsee 0.24.6",
+ "jsonrpsee",
  "log",
  "parity-scale-codec",
  "parking_lot 0.12.3",
@@ -9424,9 +12758,9 @@ dependencies = [
 [[package]]
 name = "sc-rpc-api"
 version = "0.44.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "jsonrpsee 0.24.6",
+ "jsonrpsee",
  "parity-scale-codec",
  "sc-chain-spec",
  "sc-mixnet",
@@ -9438,13 +12772,13 @@ dependencies = [
  "sp-rpc",
  "sp-runtime",
  "sp-version",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-rpc-server"
-version = "17.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+version = "17.1.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "dyn-clone",
  "forwarded-header-value",
@@ -9452,9 +12786,9 @@ dependencies = [
  "governor",
  "http 1.1.0",
  "http-body-util",
- "hyper 1.4.1",
+ "hyper 1.5.0",
  "ip_network",
- "jsonrpsee 0.24.6",
+ "jsonrpsee",
  "log",
  "sc-rpc-api",
  "serde",
@@ -9468,13 +12802,13 @@ dependencies = [
 [[package]]
 name = "sc-rpc-spec-v2"
 version = "0.45.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "array-bytes",
  "futures 0.3.31",
  "futures-util",
  "hex",
- "jsonrpsee 0.24.6",
+ "jsonrpsee",
  "log",
  "parity-scale-codec",
  "parking_lot 0.12.3",
@@ -9492,7 +12826,7 @@ dependencies = [
  "sp-rpc",
  "sp-runtime",
  "sp-version",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
  "tokio-stream",
 ]
@@ -9500,14 +12834,14 @@ dependencies = [
 [[package]]
 name = "sc-service"
 version = "0.46.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "directories",
  "exit-future",
  "futures 0.3.31",
  "futures-timer",
- "jsonrpsee 0.24.6",
+ "jsonrpsee",
  "log",
  "parity-scale-codec",
  "parking_lot 0.12.3",
@@ -9555,7 +12889,7 @@ dependencies = [
  "static_init",
  "substrate-prometheus-endpoint",
  "tempfile",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
  "tracing",
  "tracing-futures",
@@ -9564,7 +12898,7 @@ dependencies = [
 [[package]]
 name = "sc-state-db"
 version = "0.36.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -9575,9 +12909,9 @@ dependencies = [
 [[package]]
 name = "sc-sysinfo"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "derive_more",
+ "derive_more 0.99.18",
  "futures 0.3.31",
  "libc",
  "log",
@@ -9588,7 +12922,7 @@ dependencies = [
  "serde",
  "serde_json",
  "sp-core",
- "sp-crypto-hashing",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
  "sp-io",
  "sp-std",
 ]
@@ -9596,7 +12930,7 @@ dependencies = [
 [[package]]
 name = "sc-telemetry"
 version = "25.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "chrono",
  "futures 0.3.31",
@@ -9609,14 +12943,14 @@ dependencies = [
  "sc-utils",
  "serde",
  "serde_json",
- "thiserror",
+ "thiserror 1.0.69",
  "wasm-timer",
 ]
 
 [[package]]
 name = "sc-tracing"
 version = "37.0.1"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "chrono",
  "console",
@@ -9636,7 +12970,7 @@ dependencies = [
  "sp-rpc",
  "sp-runtime",
  "sp-tracing",
- "thiserror",
+ "thiserror 1.0.69",
  "tracing",
  "tracing-log",
  "tracing-subscriber",
@@ -9645,18 +12979,18 @@ dependencies = [
 [[package]]
 name = "sc-tracing-proc-macro"
 version = "11.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sc-transaction-pool"
 version = "37.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -9672,18 +13006,18 @@ dependencies = [
  "sp-api",
  "sp-blockchain",
  "sp-core",
- "sp-crypto-hashing",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
  "sp-runtime",
  "sp-tracing",
  "sp-transaction-pool",
  "substrate-prometheus-endpoint",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-transaction-pool-api"
 version = "37.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -9693,13 +13027,13 @@ dependencies = [
  "sp-blockchain",
  "sp-core",
  "sp-runtime",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sc-utils"
 version = "17.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-channel 1.9.0",
  "futures 0.3.31",
@@ -9741,7 +13075,7 @@ version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "afc79ba56a1c742f5aeeed1f1801f3edf51f7e818f0a54582cac6f131364ea7b"
 dependencies = [
- "derive_more",
+ "derive_more 0.99.18",
  "parity-scale-codec",
  "scale-bits 0.5.0",
  "scale-type-resolver 0.1.1",
@@ -9750,13 +13084,13 @@ dependencies = [
 
 [[package]]
 name = "scale-decode"
-version = "0.13.1"
+version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27"
+checksum = "f8ae9cc099ae85ff28820210732b00f019546f36f33225f509fe25d5816864a0"
 dependencies = [
- "derive_more",
+ "derive_more 1.0.0",
  "parity-scale-codec",
- "primitive-types",
+ "primitive-types 0.13.1",
  "scale-bits 0.6.0",
  "scale-decode-derive",
  "scale-type-resolver 0.2.0",
@@ -9765,14 +13099,14 @@ dependencies = [
 
 [[package]]
 name = "scale-decode-derive"
-version = "0.13.1"
+version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bb22f574168103cdd3133b19281639ca65ad985e24612728f727339dcaf4021"
+checksum = "5ed9401effa946b493f9f84dc03714cca98119b230497df6f3df6b84a2b03648"
 dependencies = [
- "darling 0.14.4",
+ "darling",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -9781,7 +13115,7 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "628800925a33794fb5387781b883b5e14d130fece9af5a63613867b8de07c5c7"
 dependencies = [
- "derive_more",
+ "derive_more 0.99.18",
  "parity-scale-codec",
  "scale-bits 0.5.0",
  "scale-type-resolver 0.1.1",
@@ -9790,13 +13124,13 @@ dependencies = [
 
 [[package]]
 name = "scale-encode"
-version = "0.7.1"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ba0b9c48dc0eb20c60b083c29447c0c4617cb7c4a4c9fef72aa5c5bc539e15e"
+checksum = "5f9271284d05d0749c40771c46180ce89905fd95aa72a2a2fddb4b7c0aa424db"
 dependencies = [
- "derive_more",
+ "derive_more 1.0.0",
  "parity-scale-codec",
- "primitive-types",
+ "primitive-types 0.13.1",
  "scale-bits 0.6.0",
  "scale-encode-derive",
  "scale-type-resolver 0.2.0",
@@ -9805,26 +13139,26 @@ dependencies = [
 
 [[package]]
 name = "scale-encode-derive"
-version = "0.7.1"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82ab7e60e2d9c8d47105f44527b26f04418e5e624ffc034f6b4a86c0ba19c5bf"
+checksum = "102fbc6236de6c53906c0b262f12c7aa69c2bdc604862c12728f5f4d370bc137"
 dependencies = [
- "darling 0.14.4",
- "proc-macro-crate 1.1.3",
+ "darling",
+ "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "scale-info"
-version = "2.11.3"
+version = "2.11.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024"
+checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b"
 dependencies = [
  "bitvec",
  "cfg-if",
- "derive_more",
+ "derive_more 1.0.0",
  "parity-scale-codec",
  "scale-info-derive",
  "serde",
@@ -9832,14 +13166,14 @@ dependencies = [
 
 [[package]]
 name = "scale-info-derive"
-version = "2.11.3"
+version = "2.11.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62"
+checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951"
 dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -9864,15 +13198,15 @@ dependencies = [
 
 [[package]]
 name = "scale-typegen"
-version = "0.8.0"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "498d1aecf2ea61325d4511787c115791639c0fd21ef4f8e11e49dd09eff2bbac"
+checksum = "0dc4c70c7fea2eef1740f0081d3fe385d8bee1eef11e9272d3bec7dc8e5438e0"
 dependencies = [
  "proc-macro2",
  "quote",
  "scale-info",
- "syn 2.0.79",
- "thiserror",
+ "syn 2.0.87",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
@@ -9881,7 +13215,7 @@ version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c07ccfee963104335c971aaf8b7b0e749be8569116322df23f1f75c4ca9e4a28"
 dependencies = [
- "derive_more",
+ "derive_more 0.99.18",
  "either",
  "frame-metadata 15.1.0",
  "parity-scale-codec",
@@ -9894,19 +13228,18 @@ dependencies = [
 
 [[package]]
 name = "scale-value"
-version = "0.16.3"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cd6ab090d823e75cfdb258aad5fe92e13f2af7d04b43a55d607d25fcc38c811"
+checksum = "f5e0ef2a0ee1e02a69ada37feb87ea1616ce9808aca072befe2d3131bf28576e"
 dependencies = [
  "base58",
  "blake2 0.10.6",
- "derive_more",
+ "derive_more 1.0.0",
  "either",
- "frame-metadata 15.1.0",
  "parity-scale-codec",
  "scale-bits 0.6.0",
- "scale-decode 0.13.1",
- "scale-encode 0.7.1",
+ "scale-decode 0.14.0",
+ "scale-encode 0.8.0",
  "scale-info",
  "scale-type-resolver 0.2.0",
  "serde",
@@ -9928,7 +13261,7 @@ version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367"
 dependencies = [
- "ahash",
+ "ahash 0.8.11",
  "cfg-if",
  "hashbrown 0.13.2",
 ]
@@ -9986,7 +13319,7 @@ dependencies = [
  "log",
  "rand",
  "slab",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
@@ -9998,7 +13331,7 @@ dependencies = [
  "heck 0.4.1",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -10058,22 +13391,40 @@ dependencies = [
 ]
 
 [[package]]
-name = "security-framework-sys"
-version = "2.12.0"
+name = "security-framework-sys"
+version = "2.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "semver"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537"
+dependencies = [
+ "semver-parser 0.7.0",
+]
+
+[[package]]
+name = "semver"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6"
+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
 dependencies = [
- "core-foundation-sys",
- "libc",
+ "semver-parser 0.7.0",
 ]
 
 [[package]]
 name = "semver"
-version = "0.6.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537"
+checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
 dependencies = [
- "semver-parser",
+ "semver-parser 0.10.2",
 ]
 
 [[package]]
@@ -10091,6 +13442,15 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
+[[package]]
+name = "semver-parser"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
+dependencies = [
+ "pest",
+]
+
 [[package]]
 name = "send_wrapper"
 version = "0.6.0"
@@ -10099,13 +13459,22 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
 
 [[package]]
 name = "serde"
-version = "1.0.210"
+version = "1.0.215"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
+checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f"
 dependencies = [
  "serde_derive",
 ]
 
+[[package]]
+name = "serde-big-array"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd31f59f6fe2b0c055371bb2f16d7f0aa7d8881676c04a55b1596d1a17cd10a4"
+dependencies = [
+ "serde",
+]
+
 [[package]]
 name = "serde_bytes"
 version = "0.11.15"
@@ -10117,20 +13486,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.210"
+version = "1.0.215"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
+checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.128"
+version = "1.0.132"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
+checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03"
 dependencies = [
  "itoa",
  "memchr",
@@ -10182,19 +13551,6 @@ dependencies = [
  "serde",
 ]
 
-[[package]]
-name = "sha-1"
-version = "0.9.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6"
-dependencies = [
- "block-buffer 0.9.0",
- "cfg-if",
- "cpufeatures",
- "digest 0.9.0",
- "opaque-debug 0.3.1",
-]
-
 [[package]]
 name = "sha-1"
 version = "0.10.1"
@@ -10297,9 +13653,9 @@ dependencies = [
 
 [[package]]
 name = "simba"
-version = "0.8.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae"
+checksum = "b3a386a501cd104797982c15ae17aafe8b9261315b5d07e3ec803f2ea26be0fa"
 dependencies = [
  "approx",
  "num-complex",
@@ -10360,6 +13716,17 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7"
 
+[[package]]
+name = "slot-range-helper"
+version = "15.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "enumn",
+ "parity-scale-codec",
+ "paste",
+ "sp-runtime",
+]
+
 [[package]]
 name = "smallvec"
 version = "1.13.2"
@@ -10374,7 +13741,7 @@ checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -10402,34 +13769,33 @@ dependencies = [
 
 [[package]]
 name = "smoldot"
-version = "0.16.0"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6d1eaa97d77be4d026a1e7ffad1bb3b78448763b357ea6f8188d3e6f736a9b9"
+checksum = "966e72d77a3b2171bb7461d0cb91f43670c63558c62d7cf42809cae6c8b6b818"
 dependencies = [
  "arrayvec 0.7.6",
  "async-lock",
  "atomic-take",
- "base64 0.21.7",
+ "base64 0.22.1",
  "bip39",
  "blake2-rfc",
  "bs58 0.5.1",
  "chacha20",
  "crossbeam-queue",
- "derive_more",
+ "derive_more 0.99.18",
  "ed25519-zebra",
  "either",
- "event-listener 4.0.3",
+ "event-listener 5.3.1",
  "fnv",
  "futures-lite",
  "futures-util",
  "hashbrown 0.14.5",
  "hex",
  "hmac 0.12.1",
- "itertools 0.12.1",
+ "itertools 0.13.0",
  "libm",
  "libsecp256k1",
  "merlin",
- "no-std-net",
  "nom",
  "num-bigint",
  "num-rational",
@@ -10448,7 +13814,7 @@ dependencies = [
  "siphasher 1.0.1",
  "slab",
  "smallvec",
- "soketto 0.7.1",
+ "soketto",
  "twox-hash",
  "wasmi",
  "x25519-dalek",
@@ -10456,62 +13822,371 @@ dependencies = [
 ]
 
 [[package]]
-name = "smoldot-light"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5496f2d116b7019a526b1039ec2247dd172b8670633b1a64a614c9ea12c9d8c7"
+name = "smoldot-light"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a33b06891f687909632ce6a4e3fd7677b24df930365af3d0bcb078310129f3f"
+dependencies = [
+ "async-channel 2.3.1",
+ "async-lock",
+ "base64 0.22.1",
+ "blake2-rfc",
+ "bs58 0.5.1",
+ "derive_more 0.99.18",
+ "either",
+ "event-listener 5.3.1",
+ "fnv",
+ "futures-channel",
+ "futures-lite",
+ "futures-util",
+ "hashbrown 0.14.5",
+ "hex",
+ "itertools 0.13.0",
+ "log",
+ "lru 0.12.5",
+ "parking_lot 0.12.3",
+ "pin-project",
+ "rand",
+ "rand_chacha",
+ "serde",
+ "serde_json",
+ "siphasher 1.0.1",
+ "slab",
+ "smol",
+ "smoldot",
+ "zeroize",
+]
+
+[[package]]
+name = "snap"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
+
+[[package]]
+name = "snow"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85"
+dependencies = [
+ "aes-gcm",
+ "blake2 0.10.6",
+ "chacha20poly1305",
+ "curve25519-dalek",
+ "rand_core",
+ "ring 0.17.8",
+ "rustc_version 0.4.1",
+ "sha2 0.10.8",
+ "subtle 2.6.1",
+]
+
+[[package]]
+name = "snowbridge-amcl"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "460a9ed63cdf03c1b9847e8a12a5f5ba19c4efd5869e4a737e05be25d7c427e5"
+dependencies = [
+ "parity-scale-codec",
+ "scale-info",
+]
+
+[[package]]
+name = "snowbridge-beacon-primitives"
+version = "0.10.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "byte-slice-cast",
+ "frame-support",
+ "hex",
+ "parity-scale-codec",
+ "rlp",
+ "scale-info",
+ "serde",
+ "snowbridge-ethereum",
+ "snowbridge-milagro-bls",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "ssz_rs",
+ "ssz_rs_derive",
+]
+
+[[package]]
+name = "snowbridge-core"
+version = "0.10.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "ethabi-decode",
+ "frame-support",
+ "frame-system",
+ "hex-literal",
+ "parity-scale-codec",
+ "polkadot-parachain-primitives",
+ "scale-info",
+ "serde",
+ "snowbridge-beacon-primitives",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "staging-xcm",
+ "staging-xcm-builder",
+]
+
+[[package]]
+name = "snowbridge-ethereum"
+version = "0.9.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "ethabi-decode",
+ "ethbloom",
+ "ethereum-types",
+ "hex-literal",
+ "parity-bytes",
+ "parity-scale-codec",
+ "rlp",
+ "scale-info",
+ "serde",
+ "serde-big-array",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "snowbridge-milagro-bls"
+version = "1.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "026aa8638f690a53e3f7676024b9e913b1cab0111d1b7b92669d40a188f9d7e6"
+dependencies = [
+ "hex",
+ "lazy_static",
+ "parity-scale-codec",
+ "rand",
+ "scale-info",
+ "snowbridge-amcl",
+ "zeroize",
+]
+
+[[package]]
+name = "snowbridge-outbound-queue-merkle-tree"
+version = "0.9.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-runtime",
+]
+
+[[package]]
+name = "snowbridge-outbound-queue-runtime-api"
+version = "0.10.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "parity-scale-codec",
+ "snowbridge-core",
+ "snowbridge-outbound-queue-merkle-tree",
+ "sp-api",
+ "sp-std",
+]
+
+[[package]]
+name = "snowbridge-pallet-ethereum-client"
+version = "0.10.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-timestamp",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "snowbridge-beacon-primitives",
+ "snowbridge-core",
+ "snowbridge-ethereum",
+ "snowbridge-pallet-ethereum-client-fixtures",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "static_assertions",
+]
+
+[[package]]
+name = "snowbridge-pallet-ethereum-client-fixtures"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "hex-literal",
+ "snowbridge-beacon-primitives",
+ "snowbridge-core",
+ "sp-core",
+ "sp-std",
+]
+
+[[package]]
+name = "snowbridge-pallet-inbound-queue"
+version = "0.10.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "alloy-primitives",
+ "alloy-sol-types",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "snowbridge-beacon-primitives",
+ "snowbridge-core",
+ "snowbridge-pallet-inbound-queue-fixtures",
+ "snowbridge-router-primitives",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "staging-xcm",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "snowbridge-pallet-inbound-queue-fixtures"
+version = "0.18.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "hex-literal",
+ "snowbridge-beacon-primitives",
+ "snowbridge-core",
+ "sp-core",
+ "sp-std",
+]
+
+[[package]]
+name = "snowbridge-pallet-outbound-queue"
+version = "0.10.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "bridge-hub-common",
+ "ethabi-decode",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "snowbridge-core",
+ "snowbridge-outbound-queue-merkle-tree",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "snowbridge-pallet-system"
+version = "0.10.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "snowbridge-core",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "staging-xcm",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "snowbridge-router-primitives"
+version = "0.16.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "async-channel 2.3.1",
- "async-lock",
- "base64 0.21.7",
- "blake2-rfc",
- "derive_more",
- "either",
- "event-listener 4.0.3",
- "fnv",
- "futures-channel",
- "futures-lite",
- "futures-util",
- "hashbrown 0.14.5",
- "hex",
- "itertools 0.12.1",
+ "frame-support",
+ "hex-literal",
  "log",
- "lru",
- "no-std-net",
- "parking_lot 0.12.3",
- "pin-project",
- "rand",
- "rand_chacha",
- "serde",
- "serde_json",
- "siphasher 1.0.1",
- "slab",
- "smol",
- "smoldot",
- "zeroize",
+ "parity-scale-codec",
+ "scale-info",
+ "snowbridge-core",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "staging-xcm",
+ "staging-xcm-executor",
 ]
 
 [[package]]
-name = "snap"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
+name = "snowbridge-runtime-common"
+version = "0.10.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "log",
+ "parity-scale-codec",
+ "snowbridge-core",
+ "sp-arithmetic",
+ "sp-std",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+]
 
 [[package]]
-name = "snow"
-version = "0.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85"
+name = "snowbridge-runtime-test-common"
+version = "0.10.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "aes-gcm",
- "blake2 0.10.6",
- "chacha20poly1305",
- "curve25519-dalek",
- "rand_core",
- "ring 0.17.8",
- "rustc_version",
- "sha2 0.10.8",
- "subtle 2.6.1",
+ "cumulus-pallet-parachain-system",
+ "frame-support",
+ "frame-system",
+ "pallet-balances",
+ "pallet-collator-selection",
+ "pallet-message-queue",
+ "pallet-session",
+ "pallet-timestamp",
+ "pallet-utility",
+ "pallet-xcm",
+ "parachains-runtimes-test-utils",
+ "parity-scale-codec",
+ "snowbridge-core",
+ "snowbridge-pallet-ethereum-client",
+ "snowbridge-pallet-ethereum-client-fixtures",
+ "snowbridge-pallet-outbound-queue",
+ "snowbridge-pallet-system",
+ "sp-core",
+ "sp-io",
+ "sp-keyring",
+ "sp-runtime",
+ "staging-parachain-info",
+ "staging-xcm",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "snowbridge-system-runtime-api"
+version = "0.10.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "parity-scale-codec",
+ "snowbridge-core",
+ "sp-api",
+ "sp-std",
+ "staging-xcm",
 ]
 
 [[package]]
@@ -10534,21 +14209,6 @@ dependencies = [
  "windows-sys 0.52.0",
 ]
 
-[[package]]
-name = "soketto"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2"
-dependencies = [
- "base64 0.13.1",
- "bytes",
- "futures 0.3.31",
- "httparse",
- "log",
- "rand",
- "sha-1 0.9.8",
-]
-
 [[package]]
 name = "soketto"
 version = "0.8.0"
@@ -10568,7 +14228,7 @@ dependencies = [
 [[package]]
 name = "sp-api"
 version = "34.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "docify",
  "hash-db",
@@ -10584,13 +14244,13 @@ dependencies = [
  "sp-state-machine",
  "sp-trie",
  "sp-version",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sp-api-proc-macro"
 version = "20.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "Inflector",
  "blake2 0.10.6",
@@ -10598,13 +14258,13 @@ dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sp-application-crypto"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10616,7 +14276,7 @@ dependencies = [
 [[package]]
 name = "sp-arithmetic"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "docify",
  "integer-sqrt",
@@ -10630,7 +14290,7 @@ dependencies = [
 [[package]]
 name = "sp-authority-discovery"
 version = "34.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10642,7 +14302,7 @@ dependencies = [
 [[package]]
 name = "sp-block-builder"
 version = "34.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "sp-api",
  "sp-inherents",
@@ -10652,7 +14312,7 @@ dependencies = [
 [[package]]
 name = "sp-blockchain"
 version = "37.0.1"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "futures 0.3.31",
  "parity-scale-codec",
@@ -10664,14 +14324,14 @@ dependencies = [
  "sp-database",
  "sp-runtime",
  "sp-state-machine",
- "thiserror",
+ "thiserror 1.0.69",
  "tracing",
 ]
 
 [[package]]
 name = "sp-consensus"
 version = "0.40.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -10680,13 +14340,13 @@ dependencies = [
  "sp-inherents",
  "sp-runtime",
  "sp-state-machine",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sp-consensus-aura"
 version = "0.40.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "parity-scale-codec",
@@ -10702,7 +14362,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-babe"
 version = "0.40.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "parity-scale-codec",
@@ -10717,10 +14377,31 @@ dependencies = [
  "sp-timestamp",
 ]
 
+[[package]]
+name = "sp-consensus-beefy"
+version = "22.1.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "lazy_static",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
+ "sp-io",
+ "sp-keystore",
+ "sp-mmr-primitives",
+ "sp-runtime",
+ "sp-weights",
+ "strum 0.26.3",
+]
+
 [[package]]
 name = "sp-consensus-grandpa"
 version = "21.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "finality-grandpa",
  "log",
@@ -10734,10 +14415,21 @@ dependencies = [
  "sp-runtime",
 ]
 
+[[package]]
+name = "sp-consensus-pow"
+version = "0.40.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "parity-scale-codec",
+ "sp-api",
+ "sp-core",
+ "sp-runtime",
+]
+
 [[package]]
 name = "sp-consensus-slots"
 version = "0.40.1"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10748,7 +14440,7 @@ dependencies = [
 [[package]]
 name = "sp-core"
 version = "34.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "array-bytes",
  "bitflags 1.3.2",
@@ -10760,7 +14452,7 @@ dependencies = [
  "futures 0.3.31",
  "hash-db",
  "hash256-std-hasher",
- "impl-serde",
+ "impl-serde 0.4.0",
  "itertools 0.11.0",
  "k256",
  "libsecp256k1",
@@ -10770,14 +14462,14 @@ dependencies = [
  "parity-scale-codec",
  "parking_lot 0.12.3",
  "paste",
- "primitive-types",
+ "primitive-types 0.12.2",
  "rand",
  "scale-info",
  "schnorrkel",
  "secp256k1",
  "secrecy",
  "serde",
- "sp-crypto-hashing",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
  "sp-debug-derive",
  "sp-externalities",
  "sp-runtime-interface",
@@ -10785,16 +14477,58 @@ dependencies = [
  "sp-storage",
  "ss58-registry",
  "substrate-bip39",
- "thiserror",
+ "thiserror 1.0.69",
  "tracing",
  "w3f-bls",
  "zeroize",
 ]
 
+[[package]]
+name = "sp-core-hashing"
+version = "16.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
+]
+
+[[package]]
+name = "sp-crypto-ec-utils"
+version = "0.14.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "ark-bls12-377",
+ "ark-bls12-377-ext",
+ "ark-bls12-381",
+ "ark-bls12-381-ext",
+ "ark-bw6-761",
+ "ark-bw6-761-ext",
+ "ark-ec",
+ "ark-ed-on-bls12-377",
+ "ark-ed-on-bls12-377-ext",
+ "ark-ed-on-bls12-381-bandersnatch",
+ "ark-ed-on-bls12-381-bandersnatch-ext",
+ "ark-scale",
+ "sp-runtime-interface",
+]
+
 [[package]]
 name = "sp-crypto-hashing"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb"
+dependencies = [
+ "blake2b_simd",
+ "byteorder",
+ "digest 0.10.7",
+ "sha2 0.10.8",
+ "sha3",
+ "twox-hash",
+]
+
+[[package]]
+name = "sp-crypto-hashing"
+version = "0.1.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "blake2b_simd",
  "byteorder",
@@ -10807,17 +14541,17 @@ dependencies = [
 [[package]]
 name = "sp-crypto-hashing-proc-macro"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "quote",
- "sp-crypto-hashing",
- "syn 2.0.79",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sp-database"
 version = "10.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "kvdb",
  "parking_lot 0.12.3",
@@ -10826,11 +14560,11 @@ dependencies = [
 [[package]]
 name = "sp-debug-derive"
 version = "14.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -10844,13 +14578,13 @@ dependencies = [
  "serde",
  "sp-inherents",
  "sp-runtime",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sp-externalities"
 version = "0.29.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -10860,7 +14594,7 @@ dependencies = [
 [[package]]
 name = "sp-genesis-builder"
 version = "0.15.1"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10872,20 +14606,20 @@ dependencies = [
 [[package]]
 name = "sp-inherents"
 version = "34.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "impl-trait-for-tuples",
  "parity-scale-codec",
  "scale-info",
  "sp-runtime",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sp-io"
 version = "38.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "bytes",
  "docify",
@@ -10893,11 +14627,11 @@ dependencies = [
  "libsecp256k1",
  "log",
  "parity-scale-codec",
- "polkavm-derive",
+ "polkavm-derive 0.9.1",
  "rustversion",
  "secp256k1",
  "sp-core",
- "sp-crypto-hashing",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
  "sp-externalities",
  "sp-keystore",
  "sp-runtime-interface",
@@ -10911,7 +14645,7 @@ dependencies = [
 [[package]]
 name = "sp-keyring"
 version = "39.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "sp-core",
  "sp-runtime",
@@ -10921,7 +14655,7 @@ dependencies = [
 [[package]]
 name = "sp-keystore"
 version = "0.40.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "parity-scale-codec",
  "parking_lot 0.12.3",
@@ -10932,9 +14666,9 @@ dependencies = [
 [[package]]
 name = "sp-maybe-compressed-blob"
 version = "11.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "thiserror",
+ "thiserror 1.0.69",
  "zstd 0.12.4",
 ]
 
@@ -10952,7 +14686,7 @@ dependencies = [
 [[package]]
 name = "sp-metadata-ir"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "frame-metadata 16.0.0",
  "parity-scale-codec",
@@ -10962,7 +14696,7 @@ dependencies = [
 [[package]]
 name = "sp-mixnet"
 version = "0.12.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10970,10 +14704,40 @@ dependencies = [
  "sp-application-crypto",
 ]
 
+[[package]]
+name = "sp-mmr-primitives"
+version = "34.1.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "log",
+ "parity-scale-codec",
+ "polkadot-ckb-merkle-mountain-range",
+ "scale-info",
+ "serde",
+ "sp-api",
+ "sp-core",
+ "sp-debug-derive",
+ "sp-runtime",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "sp-npos-elections"
+version = "34.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-runtime",
+]
+
 [[package]]
 name = "sp-offchain"
 version = "34.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "sp-api",
  "sp-core",
@@ -10983,7 +14747,7 @@ dependencies = [
 [[package]]
 name = "sp-panic-handler"
 version = "13.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "backtrace",
  "lazy_static",
@@ -10993,7 +14757,7 @@ dependencies = [
 [[package]]
 name = "sp-rpc"
 version = "32.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "rustc-hash 1.1.0",
  "serde",
@@ -11003,7 +14767,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime"
 version = "39.0.1"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "docify",
  "either",
@@ -11029,13 +14793,13 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "bytes",
  "impl-trait-for-tuples",
  "parity-scale-codec",
- "polkavm-derive",
- "primitive-types",
+ "polkavm-derive 0.9.1",
+ "primitive-types 0.12.2",
  "sp-externalities",
  "sp-runtime-interface-proc-macro",
  "sp-std",
@@ -11048,20 +14812,20 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface-proc-macro"
 version = "18.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "Inflector",
  "expander",
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sp-session"
 version = "36.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -11075,7 +14839,7 @@ dependencies = [
 [[package]]
 name = "sp-staking"
 version = "36.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -11088,7 +14852,7 @@ dependencies = [
 [[package]]
 name = "sp-state-machine"
 version = "0.43.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "hash-db",
  "log",
@@ -11100,7 +14864,7 @@ dependencies = [
  "sp-externalities",
  "sp-panic-handler",
  "sp-trie",
- "thiserror",
+ "thiserror 1.0.69",
  "tracing",
  "trie-db",
 ]
@@ -11108,7 +14872,7 @@ dependencies = [
 [[package]]
 name = "sp-statement-store"
 version = "18.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "aes-gcm",
  "curve25519-dalek",
@@ -11121,25 +14885,25 @@ dependencies = [
  "sp-api",
  "sp-application-crypto",
  "sp-core",
- "sp-crypto-hashing",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2)",
  "sp-externalities",
  "sp-runtime",
  "sp-runtime-interface",
- "thiserror",
+ "thiserror 1.0.69",
  "x25519-dalek",
 ]
 
 [[package]]
 name = "sp-std"
 version = "14.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 
 [[package]]
 name = "sp-storage"
 version = "21.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "impl-serde",
+ "impl-serde 0.4.0",
  "parity-scale-codec",
  "ref-cast",
  "serde",
@@ -11149,19 +14913,19 @@ dependencies = [
 [[package]]
 name = "sp-timestamp"
 version = "34.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "parity-scale-codec",
  "sp-inherents",
  "sp-runtime",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sp-tracing"
 version = "17.0.1"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "parity-scale-codec",
  "tracing",
@@ -11172,7 +14936,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-pool"
 version = "34.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "sp-api",
  "sp-runtime",
@@ -11181,7 +14945,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-storage-proof"
 version = "34.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "async-trait",
  "parity-scale-codec",
@@ -11195,9 +14959,9 @@ dependencies = [
 [[package]]
 name = "sp-trie"
 version = "37.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "ahash",
+ "ahash 0.8.11",
  "hash-db",
  "lazy_static",
  "memory-db",
@@ -11209,7 +14973,7 @@ dependencies = [
  "schnellru",
  "sp-core",
  "sp-externalities",
- "thiserror",
+ "thiserror 1.0.69",
  "tracing",
  "trie-db",
  "trie-root",
@@ -11218,9 +14982,9 @@ dependencies = [
 [[package]]
 name = "sp-version"
 version = "37.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "impl-serde",
+ "impl-serde 0.4.0",
  "parity-scale-codec",
  "parity-wasm",
  "scale-info",
@@ -11229,24 +14993,24 @@ dependencies = [
  "sp-runtime",
  "sp-std",
  "sp-version-proc-macro",
- "thiserror",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "sp-version-proc-macro"
 version = "14.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "parity-scale-codec",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sp-wasm-interface"
 version = "21.0.1"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "anyhow",
  "impl-trait-for-tuples",
@@ -11258,7 +15022,7 @@ dependencies = [
 [[package]]
 name = "sp-weights"
 version = "31.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "bounded-collections",
  "parity-scale-codec",
@@ -11301,26 +15065,123 @@ dependencies = [
 ]
 
 [[package]]
-name = "ss58-registry"
-version = "1.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19409f13998e55816d1c728395af0b52ec066206341d939e22e7766df9b494b8"
+name = "ss58-registry"
+version = "1.51.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19409f13998e55816d1c728395af0b52ec066206341d939e22e7766df9b494b8"
+dependencies = [
+ "Inflector",
+ "num-format",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "serde_json",
+ "unicode-xid",
+]
+
+[[package]]
+name = "ssz_rs"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "057291e5631f280978fa9c8009390663ca4613359fc1318e36a8c24c392f6d1f"
+dependencies = [
+ "bitvec",
+ "num-bigint",
+ "sha2 0.9.9",
+ "ssz_rs_derive",
+]
+
+[[package]]
+name = "ssz_rs_derive"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "staging-parachain-info"
+version = "0.17.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-runtime",
+]
+
+[[package]]
+name = "staging-xcm"
+version = "14.2.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "array-bytes",
+ "bounded-collections",
+ "derivative",
+ "environmental",
+ "impl-trait-for-tuples",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-runtime",
+ "sp-weights",
+ "xcm-procedural",
+]
+
+[[package]]
+name = "staging-xcm-builder"
+version = "17.0.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "pallet-asset-conversion",
+ "pallet-transaction-payment",
+ "parity-scale-codec",
+ "polkadot-parachain-primitives",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-io",
+ "sp-runtime",
+ "sp-weights",
+ "staging-xcm",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "staging-xcm-executor"
+version = "17.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
- "Inflector",
- "num-format",
- "proc-macro2",
- "quote",
- "serde",
- "serde_json",
- "unicode-xid",
+ "environmental",
+ "frame-benchmarking",
+ "frame-support",
+ "impl-trait-for-tuples",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-weights",
+ "staging-xcm",
+ "tracing",
 ]
 
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
 [[package]]
 name = "static_assertions"
 version = "1.1.0"
@@ -11370,16 +15231,21 @@ dependencies = [
  "openssl-sys",
  "sctp-proto",
  "serde",
- "sha-1 0.10.1",
- "thiserror",
+ "sha-1",
+ "thiserror 1.0.69",
  "tracing",
 ]
 
 [[package]]
-name = "strsim"
-version = "0.10.0"
+name = "string-interner"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+checksum = "1c6a0d765f5807e98a091107bae0a56ea3799f66a5de47b2c84c94a39c09974e"
+dependencies = [
+ "cfg-if",
+ "hashbrown 0.14.5",
+ "serde",
+]
 
 [[package]]
 name = "strsim"
@@ -11425,13 +15291,13 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "substrate-bip39"
 version = "0.6.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "hmac 0.12.1",
  "pbkdf2",
@@ -11443,17 +15309,17 @@ dependencies = [
 [[package]]
 name = "substrate-build-script-utils"
 version = "11.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 
 [[package]]
 name = "substrate-frame-rpc-system"
 version = "39.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "docify",
  "frame-system-rpc-runtime-api",
  "futures 0.3.31",
- "jsonrpsee 0.24.6",
+ "jsonrpsee",
  "log",
  "parity-scale-codec",
  "sc-rpc-api",
@@ -11468,21 +15334,21 @@ dependencies = [
 [[package]]
 name = "substrate-prometheus-endpoint"
 version = "0.17.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "http-body-util",
- "hyper 1.4.1",
+ "hyper 1.5.0",
  "hyper-util",
  "log",
  "prometheus",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
 ]
 
 [[package]]
 name = "substrate-wasm-builder"
 version = "24.0.1"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.0#90e77c4c212232c85b81fbd9e83064a3e7586db7"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
 dependencies = [
  "build-helper",
  "cargo_metadata",
@@ -11490,7 +15356,7 @@ dependencies = [
  "filetime",
  "jobserver",
  "parity-wasm",
- "polkavm-linker",
+ "polkavm-linker 0.9.2",
  "sp-maybe-compressed-blob",
  "strum 0.26.3",
  "tempfile",
@@ -11527,103 +15393,100 @@ dependencies = [
  "semver 1.0.23",
  "serde",
  "serde_json",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "subxt"
-version = "0.37.0"
-source = "git+https://github.com/duniter/subxt?branch=subxt-v0.37.0-duniter-substrate-v1.16.0#be63f133b5b90bff7ead1dae749a1b6f7c34cbc8"
+version = "0.38.0"
+source = "git+https://github.com/duniter/subxt?branch=subxt-v0.38.0-duniter-substrate-v1.16.2#7bd25b258a127627971a9c6920da8c508cf37ec0"
 dependencies = [
  "async-trait",
  "derive-where",
  "either",
- "frame-metadata 16.0.0",
+ "frame-metadata 17.0.0",
  "futures 0.3.31",
  "hex",
- "impl-serde",
- "instant",
- "jsonrpsee 0.22.5",
+ "impl-serde 0.5.0",
+ "jsonrpsee",
  "parity-scale-codec",
- "primitive-types",
- "reconnecting-jsonrpsee-ws-client",
+ "polkadot-sdk",
+ "primitive-types 0.13.1",
  "scale-bits 0.6.0",
- "scale-decode 0.13.1",
- "scale-encode 0.7.1",
+ "scale-decode 0.14.0",
+ "scale-encode 0.8.0",
  "scale-info",
- "scale-value 0.16.3",
+ "scale-value 0.17.0",
  "serde",
  "serde_json",
- "sp-crypto-hashing",
  "subxt-core",
  "subxt-lightclient",
  "subxt-macro",
  "subxt-metadata",
- "thiserror",
+ "thiserror 1.0.69",
+ "tokio",
  "tokio-util",
  "tracing",
  "url",
+ "wasm-bindgen-futures",
+ "web-time",
 ]
 
 [[package]]
 name = "subxt-codegen"
-version = "0.37.0"
-source = "git+https://github.com/duniter/subxt?branch=subxt-v0.37.0-duniter-substrate-v1.16.0#be63f133b5b90bff7ead1dae749a1b6f7c34cbc8"
+version = "0.38.0"
+source = "git+https://github.com/duniter/subxt?branch=subxt-v0.38.0-duniter-substrate-v1.16.2#7bd25b258a127627971a9c6920da8c508cf37ec0"
 dependencies = [
- "frame-metadata 16.0.0",
  "heck 0.5.0",
- "hex",
- "jsonrpsee 0.22.5",
  "parity-scale-codec",
  "proc-macro2",
  "quote",
  "scale-info",
  "scale-typegen",
  "subxt-metadata",
- "syn 2.0.79",
- "thiserror",
- "tokio",
+ "syn 2.0.87",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
 name = "subxt-core"
-version = "0.37.0"
-source = "git+https://github.com/duniter/subxt?branch=subxt-v0.37.0-duniter-substrate-v1.16.0#be63f133b5b90bff7ead1dae749a1b6f7c34cbc8"
+version = "0.38.0"
+source = "git+https://github.com/duniter/subxt?branch=subxt-v0.38.0-duniter-substrate-v1.16.2#7bd25b258a127627971a9c6920da8c508cf37ec0"
 dependencies = [
  "base58",
  "blake2 0.10.6",
  "derive-where",
- "frame-metadata 16.0.0",
+ "frame-decode",
+ "frame-metadata 17.0.0",
  "hashbrown 0.14.5",
  "hex",
- "impl-serde",
+ "impl-serde 0.5.0",
+ "keccak-hash",
  "parity-scale-codec",
- "primitive-types",
+ "polkadot-sdk",
+ "primitive-types 0.13.1",
  "scale-bits 0.6.0",
- "scale-decode 0.13.1",
- "scale-encode 0.7.1",
+ "scale-decode 0.14.0",
+ "scale-encode 0.8.0",
  "scale-info",
- "scale-value 0.16.3",
+ "scale-value 0.17.0",
  "serde",
  "serde_json",
- "sp-core",
- "sp-crypto-hashing",
- "sp-runtime",
  "subxt-metadata",
  "tracing",
 ]
 
 [[package]]
 name = "subxt-lightclient"
-version = "0.37.0"
-source = "git+https://github.com/duniter/subxt?branch=subxt-v0.37.0-duniter-substrate-v1.16.0#be63f133b5b90bff7ead1dae749a1b6f7c34cbc8"
+version = "0.38.0"
+source = "git+https://github.com/duniter/subxt?branch=subxt-v0.38.0-duniter-substrate-v1.16.2#7bd25b258a127627971a9c6920da8c508cf37ec0"
 dependencies = [
  "futures 0.3.31",
  "futures-util",
  "serde",
  "serde_json",
  "smoldot-light",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
  "tokio-stream",
  "tracing",
@@ -11631,28 +15494,40 @@ dependencies = [
 
 [[package]]
 name = "subxt-macro"
-version = "0.37.0"
-source = "git+https://github.com/duniter/subxt?branch=subxt-v0.37.0-duniter-substrate-v1.16.0#be63f133b5b90bff7ead1dae749a1b6f7c34cbc8"
+version = "0.38.0"
+source = "git+https://github.com/duniter/subxt?branch=subxt-v0.38.0-duniter-substrate-v1.16.2#7bd25b258a127627971a9c6920da8c508cf37ec0"
 dependencies = [
- "darling 0.20.10",
+ "darling",
  "parity-scale-codec",
- "proc-macro-error",
+ "proc-macro-error2",
  "quote",
  "scale-typegen",
  "subxt-codegen",
- "syn 2.0.79",
+ "subxt-utils-fetchmetadata",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "subxt-metadata"
-version = "0.37.0"
-source = "git+https://github.com/duniter/subxt?branch=subxt-v0.37.0-duniter-substrate-v1.16.0#be63f133b5b90bff7ead1dae749a1b6f7c34cbc8"
+version = "0.38.0"
+source = "git+https://github.com/duniter/subxt?branch=subxt-v0.38.0-duniter-substrate-v1.16.2#7bd25b258a127627971a9c6920da8c508cf37ec0"
 dependencies = [
- "frame-metadata 16.0.0",
+ "frame-decode",
+ "frame-metadata 17.0.0",
  "hashbrown 0.14.5",
  "parity-scale-codec",
+ "polkadot-sdk",
  "scale-info",
- "sp-crypto-hashing",
+]
+
+[[package]]
+name = "subxt-utils-fetchmetadata"
+version = "0.38.0"
+source = "git+https://github.com/duniter/subxt?branch=subxt-v0.38.0-duniter-substrate-v1.16.2#7bd25b258a127627971a9c6920da8c508cf37ec0"
+dependencies = [
+ "hex",
+ "parity-scale-codec",
+ "thiserror 1.0.69",
 ]
 
 [[package]]
@@ -11668,15 +15543,27 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.79"
+version = "2.0.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
+checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
 dependencies = [
  "proc-macro2",
  "quote",
  "unicode-ident",
 ]
 
+[[package]]
+name = "syn-solidity"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b837ef12ab88835251726eb12237655e61ec8dc8a280085d1961cdc3dfd047"
+dependencies = [
+ "paste",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
 [[package]]
 name = "sync_wrapper"
 version = "1.0.1"
@@ -11706,7 +15593,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -11715,7 +15602,7 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a3d2c2202510a1e186e63e596d9318c91a8cbe85cd1a56a7be0c333e5f59ec8d"
 dependencies = [
- "syn 2.0.79",
+ "syn 2.0.87",
  "synthez-codegen",
  "synthez-core",
 ]
@@ -11726,7 +15613,7 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f724aa6d44b7162f3158a57bccd871a77b39a4aef737e01bcdff41f4772c7746"
 dependencies = [
- "syn 2.0.79",
+ "syn 2.0.87",
  "synthez-core",
 ]
 
@@ -11739,7 +15626,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "sealed",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -11777,14 +15664,14 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
 
 [[package]]
 name = "tempfile"
-version = "3.13.0"
+version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b"
+checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c"
 dependencies = [
  "cfg-if",
  "fastrand",
  "once_cell",
- "rustix 0.38.37",
+ "rustix 0.38.40",
  "windows-sys 0.59.0",
 ]
 
@@ -11819,7 +15706,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef"
 dependencies = [
- "rustix 0.38.37",
+ "rustix 0.38.40",
  "windows-sys 0.59.0",
 ]
 
@@ -11829,6 +15716,21 @@ version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
+[[package]]
+name = "testnet-parachains-constants"
+version = "10.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "polkadot-core-primitives",
+ "rococo-runtime-constants",
+ "smallvec",
+ "sp-runtime",
+ "staging-xcm",
+ "westend-runtime-constants",
+]
+
 [[package]]
 name = "textwrap"
 version = "0.16.1"
@@ -11837,27 +15739,47 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
 dependencies = [
  "smawk",
  "unicode-linebreak",
- "unicode-width",
+ "unicode-width 0.1.14",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
+dependencies = [
+ "thiserror-impl 1.0.69",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.64"
+version = "2.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa"
+dependencies = [
+ "thiserror-impl 2.0.3",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
+checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
 dependencies = [
- "thiserror-impl",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.64"
+version = "2.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3"
+checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -11925,6 +15847,16 @@ dependencies = [
  "crunchy",
 ]
 
+[[package]]
+name = "tinystr"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"
+dependencies = [
+ "displaydoc",
+ "zerovec",
+]
+
 [[package]]
 name = "tinyvec"
 version = "1.8.0"
@@ -11942,9 +15874,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.40.0"
+version = "1.41.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
+checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33"
 dependencies = [
  "backtrace",
  "bytes",
@@ -11966,7 +15898,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -11979,24 +15911,13 @@ dependencies = [
  "tokio",
 ]
 
-[[package]]
-name = "tokio-rustls"
-version = "0.25.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
-dependencies = [
- "rustls 0.22.4",
- "rustls-pki-types",
- "tokio",
-]
-
 [[package]]
 name = "tokio-rustls"
 version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
 dependencies = [
- "rustls 0.23.14",
+ "rustls 0.23.16",
  "rustls-pki-types",
  "tokio",
 ]
@@ -12148,7 +16069,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -12242,7 +16163,7 @@ dependencies = [
  "rand",
  "smallvec",
  "socket2 0.4.10",
- "thiserror",
+ "thiserror 1.0.69",
  "tinyvec",
  "tokio",
  "tracing",
@@ -12267,7 +16188,7 @@ dependencies = [
  "once_cell",
  "rand",
  "smallvec",
- "thiserror",
+ "thiserror 1.0.69",
  "tinyvec",
  "tokio",
  "tracing",
@@ -12289,7 +16210,7 @@ dependencies = [
  "rand",
  "resolv-conf",
  "smallvec",
- "thiserror",
+ "thiserror 1.0.69",
  "tokio",
  "tracing",
  "trust-dns-proto 0.23.2",
@@ -12322,11 +16243,17 @@ dependencies = [
  "rand",
  "rustls 0.21.12",
  "sha1",
- "thiserror",
+ "thiserror 1.0.69",
  "url",
  "utf-8",
 ]
 
+[[package]]
+name = "tuplex"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "676ac81d5454c4dcf37955d34fa8626ede3490f744b86ca14a7b90168d2a08aa"
+
 [[package]]
 name = "twox-hash"
 version = "1.6.3"
@@ -12356,7 +16283,7 @@ checksum = "29a3151c41d0b13e3d011f98adc24434560ef06673a155a6c7f66b9879eecce2"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -12383,6 +16310,24 @@ dependencies = [
  "static_assertions",
 ]
 
+[[package]]
+name = "uint"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "909988d098b2f738727b161a106cfc7cab00c539c2687a8836f8e565976fb53e"
+dependencies = [
+ "byteorder",
+ "crunchy",
+ "hex",
+ "static_assertions",
+]
+
+[[package]]
+name = "unarray"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
+
 [[package]]
 name = "unic-char-property"
 version = "0.9.0"
@@ -12472,6 +16417,12 @@ version = "0.1.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
 
+[[package]]
+name = "unicode-width"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"
+
 [[package]]
 name = "unicode-xid"
 version = "0.2.6"
@@ -12539,12 +16490,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.5.2"
+version = "2.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
+checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada"
 dependencies = [
  "form_urlencoded",
- "idna 0.5.0",
+ "idna 1.0.3",
  "percent-encoding",
 ]
 
@@ -12554,6 +16505,18 @@ version = "0.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
 
+[[package]]
+name = "utf16_iter"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
+
+[[package]]
+name = "utf8_iter"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
+
 [[package]]
 name = "utf8parse"
 version = "0.2.2"
@@ -12586,15 +16549,15 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
 
 [[package]]
 name = "w3f-bls"
-version = "0.1.4"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c5da5fa2c6afa2c9158eaa7cd9aee249765eb32b5fb0c63ad8b9e79336a47ec"
+checksum = "70a3028804c8bbae2a97a15b71ffc0e308c4b01a520994aafa77d56e94e19024"
 dependencies = [
  "ark-bls12-377",
  "ark-bls12-381",
  "ark-ec",
- "ark-ff",
- "ark-serialize",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
  "ark-serialize-derive",
  "arrayref",
  "constcat",
@@ -12604,10 +16567,19 @@ dependencies = [
  "rand_core",
  "sha2 0.10.8",
  "sha3",
- "thiserror",
+ "thiserror 1.0.69",
  "zeroize",
 ]
 
+[[package]]
+name = "wait-timeout"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
+dependencies = [
+ "libc",
+]
+
 [[package]]
 name = "walkdir"
 version = "2.5.0"
@@ -12655,7 +16627,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
  "wasm-bindgen-shared",
 ]
 
@@ -12689,7 +16661,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -12720,7 +16692,7 @@ dependencies = [
  "strum 0.24.1",
  "strum_macros 0.24.3",
  "tempfile",
- "thiserror",
+ "thiserror 1.0.69",
  "wasm-opt-cxx-sys",
  "wasm-opt-sys",
 ]
@@ -12766,28 +16738,37 @@ dependencies = [
 
 [[package]]
 name = "wasmi"
-version = "0.31.2"
+version = "0.32.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7"
+checksum = "50386c99b9c32bd2ed71a55b6dd4040af2580530fae8bdb9a6576571a80d0cca"
 dependencies = [
+ "arrayvec 0.7.6",
+ "multi-stash",
+ "num-derive",
+ "num-traits 0.2.19",
  "smallvec",
  "spin 0.9.8",
- "wasmi_arena",
+ "wasmi_collections",
  "wasmi_core",
  "wasmparser-nostd",
 ]
 
 [[package]]
-name = "wasmi_arena"
-version = "0.4.1"
+name = "wasmi_collections"
+version = "0.32.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073"
+checksum = "9c128c039340ffd50d4195c3f8ce31aac357f06804cfc494c8b9508d4b30dca4"
+dependencies = [
+ "ahash 0.8.11",
+ "hashbrown 0.14.5",
+ "string-interner",
+]
 
 [[package]]
 name = "wasmi_core"
-version = "0.13.0"
+version = "0.32.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a"
+checksum = "a23b3a7f6c8c3ceeec6b83531ee61f0013c56e51cbf2b14b0f213548b23a4b41"
 dependencies = [
  "downcast-rs",
  "libm",
@@ -12887,7 +16868,7 @@ dependencies = [
  "log",
  "object 0.30.4",
  "target-lexicon",
- "thiserror",
+ "thiserror 1.0.69",
  "wasmparser",
  "wasmtime-cranelift-shared",
  "wasmtime-environ",
@@ -12922,7 +16903,7 @@ dependencies = [
  "object 0.30.4",
  "serde",
  "target-lexicon",
- "thiserror",
+ "thiserror 1.0.69",
  "wasmparser",
  "wasmtime-types",
 ]
@@ -13005,7 +16986,7 @@ checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f"
 dependencies = [
  "cranelift-entity",
  "serde",
- "thiserror",
+ "thiserror 1.0.69",
  "wasmparser",
 ]
 
@@ -13019,6 +17000,16 @@ dependencies = [
  "wasm-bindgen",
 ]
 
+[[package]]
+name = "web-time"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
 [[package]]
 name = "webpki"
 version = "0.22.4"
@@ -13054,6 +17045,22 @@ dependencies = [
  "subweight-core",
 ]
 
+[[package]]
+name = "westend-runtime-constants"
+version = "17.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "polkadot-primitives",
+ "polkadot-runtime-common",
+ "smallvec",
+ "sp-core",
+ "sp-runtime",
+ "sp-weights",
+ "staging-xcm",
+ "staging-xcm-builder",
+]
+
 [[package]]
 name = "which"
 version = "4.4.2"
@@ -13063,7 +17070,7 @@ dependencies = [
  "either",
  "home",
  "once_cell",
- "rustix 0.38.37",
+ "rustix 0.38.40",
 ]
 
 [[package]]
@@ -13419,6 +17426,18 @@ dependencies = [
  "windows-sys 0.48.0",
 ]
 
+[[package]]
+name = "write16"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
+
+[[package]]
+name = "writeable"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
+
 [[package]]
 name = "wyz"
 version = "0.5.1"
@@ -13453,7 +17472,7 @@ dependencies = [
  "nom",
  "oid-registry 0.6.1",
  "rusticata-macros",
- "thiserror",
+ "thiserror 1.0.69",
  "time",
 ]
 
@@ -13470,15 +17489,62 @@ dependencies = [
  "nom",
  "oid-registry 0.7.1",
  "rusticata-macros",
- "thiserror",
+ "thiserror 1.0.69",
  "time",
 ]
 
+[[package]]
+name = "xcm-procedural"
+version = "10.1.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "Inflector",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "xcm-runtime-apis"
+version = "0.4.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-api",
+ "sp-weights",
+ "staging-xcm",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "xcm-simulator"
+version = "17.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.16.2#21d1f7a814df383fd8007bf39750ce4cb0fd56fc"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "paste",
+ "polkadot-core-primitives",
+ "polkadot-parachain-primitives",
+ "polkadot-primitives",
+ "polkadot-runtime-parachains",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+]
+
 [[package]]
 name = "xml-rs"
-version = "0.8.22"
+version = "0.8.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26"
+checksum = "af310deaae937e48a26602b730250b4949e125f468f11e6990be3e5304ddd96f"
 
 [[package]]
 name = "xmltree"
@@ -13542,6 +17608,30 @@ dependencies = [
  "time",
 ]
 
+[[package]]
+name = "yoke"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5"
+dependencies = [
+ "serde",
+ "stable_deref_trait",
+ "yoke-derive",
+ "zerofrom",
+]
+
+[[package]]
+name = "yoke-derive"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+ "synstructure 0.13.1",
+]
+
 [[package]]
 name = "zerocopy"
 version = "0.7.35"
@@ -13560,7 +17650,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "zerofrom"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55"
+dependencies = [
+ "zerofrom-derive",
+]
+
+[[package]]
+name = "zerofrom-derive"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+ "synstructure 0.13.1",
 ]
 
 [[package]]
@@ -13580,7 +17691,29 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "zerovec"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079"
+dependencies = [
+ "yoke",
+ "zerofrom",
+ "zerovec-derive",
+]
+
+[[package]]
+name = "zerovec-derive"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
 ]
 
 [[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 08f95c2c362174222c86df2a3b1b53f086bde0f2..63fb142bf441fe2df0bb9d5d0ba9eb00554ec627 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -107,7 +107,7 @@ dubp-wot = { version = "0.11.1", default-features = false }
 flate2 = { version = "1.0.28", default-features = false }
 
 # Subxt
-subxt = { git = 'https://github.com/duniter/subxt', branch = 'subxt-v0.37.0-duniter-substrate-v1.16.0', default-features = false }
+subxt = { git = 'https://github.com/duniter/subxt', branch = 'subxt-v0.38.0-duniter-substrate-v1.16.2', default-features = false }
 
 # local dependencies
 weight-analyzer = { path = "resources/weight_analyzer", default-features = false }
@@ -139,86 +139,86 @@ sp-distance = { path = 'primitives/distance', default-features = false }
 sp-membership = { path = 'primitives/membership', default-features = false }
 
 # substrate dependencies
-pallet-transaction-payment-rpc = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-frame-benchmarking = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-frame-executive = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-frame-support = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-frame-system = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-frame-system-benchmarking = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-frame-system-rpc-runtime-api = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-frame-try-runtime = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-atomic-swap = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-authority-discovery = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-authorship = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-babe = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-balances = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-collective = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-grandpa = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-im-online = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-multisig = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-preimage = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-proxy = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-scheduler = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-session = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-sudo = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-timestamp = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-transaction-payment = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-treasury = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-pallet-utility = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-api = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-arithmetic = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-block-builder = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-client-db = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-client-api = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-consensus-grandpa = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-rpc = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-consensus-grandpa-rpc = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-consensus-babe = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-consensus-babe-rpc = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-blockchain = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-offchain = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-consensus-babe = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-consensus-grandpa = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-core = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-inherents = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-offchain = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-runtime = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-session = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-staking = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-weights = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-transaction-pool = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-version = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-cli = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-service = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-trie = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-authority-discovery = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-genesis-builder = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-keyring = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-consensus = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-core-hashing = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-keystore = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-rpc-api = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-substrate-wasm-builder = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-io = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-substrate-build-script-utils = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0' }
-node-primitives = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-frame-benchmarking-cli = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-chain-spec = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-consensus = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-consensus-manual-seal = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-executor = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-telemetry = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-transaction-pool = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-basic-authorship = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-network = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-keystore = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-storage = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-timestamp = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-transaction-storage-proof = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sc-transaction-pool-api = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-sp-state-machine = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
-substrate-frame-rpc-system = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.0', default-features = false }
+pallet-transaction-payment-rpc = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+frame-benchmarking = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+frame-executive = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+frame-support = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+frame-system = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+frame-system-benchmarking = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+frame-system-rpc-runtime-api = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+frame-try-runtime = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-atomic-swap = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-authority-discovery = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-authorship = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-babe = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-balances = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-collective = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-grandpa = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-im-online = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-multisig = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-preimage = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-proxy = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-scheduler = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-session = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-sudo = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-timestamp = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-transaction-payment = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-treasury = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+pallet-utility = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-api = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-arithmetic = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-block-builder = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-client-db = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-client-api = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-consensus-grandpa = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-rpc = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-consensus-grandpa-rpc = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-consensus-babe = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-consensus-babe-rpc = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-blockchain = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-offchain = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-consensus-babe = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-consensus-grandpa = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-core = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-inherents = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-offchain = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-runtime = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-session = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-staking = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-weights = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-transaction-pool = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-version = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-cli = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-service = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-trie = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-authority-discovery = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-genesis-builder = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-keyring = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-consensus = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-core-hashing = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-keystore = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-rpc-api = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+substrate-wasm-builder = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-io = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+substrate-build-script-utils = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2' }
+node-primitives = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+frame-benchmarking-cli = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-chain-spec = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-consensus = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-consensus-manual-seal = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-executor = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-telemetry = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-transaction-pool = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-basic-authorship = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-network = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-keystore = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-storage = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-timestamp = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-transaction-storage-proof = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sc-transaction-pool-api = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+sp-state-machine = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
+substrate-frame-rpc-system = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.16.2', default-features = false }
 
 # The list of dependencies below (which can be both direct and indirect dependencies) are crates
 # that are suspected to be CPU-intensive, and that are unlikely to require debugging (as some of
diff --git a/client/distance/Cargo.toml b/client/distance/Cargo.toml
index 96e1ea49288de9b155a5f0c196cc481e55bd6673..6d9a4ef7c158f9d3920e2ea15f200d0b0bd28cad 100644
--- a/client/distance/Cargo.toml
+++ b/client/distance/Cargo.toml
@@ -13,14 +13,10 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [features]
 std = [
-	"codec/std",
 	"frame-support/std",
-	"log/std",
 	"pallet-distance/std",
-	"scale-info/std",
 	"sp-core/std",
 	"sp-distance/std",
-	"sp-keystore/std",
 	"sp-runtime/std",
 ]
 runtime-benchmarks = [
@@ -36,14 +32,11 @@ try-runtime = [
 ]
 
 [dependencies]
-codec = { workspace = true, features = ["derive"] }
 frame-support = { workspace = true }
 log = { workspace = true }
 pallet-distance = { workspace = true }
 sc-client-api = { workspace = true }
-scale-info = { workspace = true, features = ["derive"] }
 sp-core = { workspace = true }
 sp-distance = { workspace = true }
-sp-keystore = { workspace = true }
 sp-runtime = { workspace = true }
 thiserror = { workspace = true }
diff --git a/client/distance/README.md b/client/distance/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..dff4c144c9bb3622cd38dd213165e8b1dfdbde19
--- /dev/null
+++ b/client/distance/README.md
@@ -0,0 +1,3 @@
+# Distance Oracle Inherent Data Provider
+
+You can find the autogenerated documentation at: [https://doc-duniter-org.ipns.pagu.re/dc_distance/index.html](https://doc-duniter-org.ipns.pagu.re/dc_distance/index.html).
diff --git a/client/distance/src/lib.rs b/client/distance/src/lib.rs
index 85885d33903d745f02f74ce962e485c3dbf0207c..c36091612c42bb77aca3b7a61ef62e796f4ad713 100644
--- a/client/distance/src/lib.rs
+++ b/client/distance/src/lib.rs
@@ -14,11 +14,37 @@
 // You should have received a copy of the GNU Affero General Public License
 // along with Substrate-Libre-Currency. If not, see <https://www.gnu.org/licenses/>.
 
+//! # Distance Oracle Inherent Data Provider
+//!
+//! This crate provides functionality for creating an **inherent data provider**
+//! specifically designed for the "Distance Oracle".
+//! The inherent data provider is responsible for fetching and delivering
+//! computation results required for the runtime to process distance evaluations.
+//!
+//! ## Relationship with Distance Oracle
+//!
+//! The **distance-oracle** is responsible for computing distance evaluations,
+//! storing the results to be read in the next period, and saving them to files.
+//! These files are then read by **this inherent data provider**
+//! to provide the required data to the runtime.
+//!
+//! ## Overview
+//!
+//! - Retrieves **period index** and **evaluation results** from the storage and file system.
+//! - Determines whether the computation results for the current period have already been published.
+//! - Reads and parses evaluation result files when available, providing the necessary data to the runtime.
+
 use frame_support::pallet_prelude::*;
 use sc_client_api::{ProvideUncles, StorageKey, StorageProvider};
 use sp_runtime::{generic::BlockId, traits::Block as BlockT, AccountId32};
 use std::path::PathBuf;
 
+/// The file version that should match the distance oracle one.
+/// This ensures that the smith avoids accidentally submitting invalid data
+/// in case there are changes in logic between the runtime and the oracle,
+/// thereby preventing potential penalties.
+const VERSION_PREFIX: &str = "001-";
+
 type IdtyIndex = u32;
 
 #[derive(Debug, thiserror::Error)]
@@ -40,19 +66,19 @@ where
     Backend: sc_client_api::Backend<B>,
     IdtyIndex: Decode + Encode + PartialEq + TypeInfo,
 {
-    // Retrieve the pool_index from storage. If storage is inaccessible or the data is corrupted,
+    // Retrieve the period_index from storage. If storage is inaccessible or the data is corrupted,
     // return the appropriate error.
-    let pool_index = client
+    let period_index = client
         .storage(
             parent,
             &StorageKey(
-                frame_support::storage::storage_prefix(b"Distance", b"CurrentPoolIndex").to_vec(),
+                frame_support::storage::storage_prefix(b"Distance", b"CurrentPeriodIndex").to_vec(),
             ),
         )?
         .map_or_else(
             || {
                 Err(sc_client_api::blockchain::Error::Storage(
-                    "CurrentPoolIndex value not found".to_string(),
+                    "CurrentPeriodIndex value not found".to_string(),
                 ))
             },
             |raw| {
@@ -70,7 +96,7 @@ where
             &StorageKey(
                 frame_support::storage::storage_prefix(
                     b"Distance",
-                    match pool_index {
+                    match period_index % 3 {
                         0 => b"EvaluationPool0",
                         1 => b"EvaluationPool1",
                         2 => b"EvaluationPool2",
@@ -85,14 +111,34 @@ where
         });
 
     // Have we already published a result for this period?
-    // The block author is guaranteed to be in the owner_keys.
     if let Some(results) = published_results {
-        if owner_keys
-            .iter()
-            .map(|&key| sp_runtime::AccountId32::new(key.0))
-            .any(|key| results.evaluators.contains(&key))
-        {
-            log::debug!("🧙 [distance oracle] Already published a result for this period");
+        // Find the account associated with the BABE key that is in our owner keys.
+        let mut local_account = None;
+        for key in owner_keys {
+            // Session::KeyOwner is StorageMap<_, Twox64Concat, (KeyTypeId, Vec<u8>), AccountId32, OptionQuery>
+            // Slices (variable length) and array (fixed length) are encoded differently, so the `.as_slice()` is needed
+            let item_key = (sp_runtime::KeyTypeId(*b"babe"), key.0.as_slice()).encode();
+            let mut storage_key =
+                frame_support::storage::storage_prefix(b"Session", b"KeyOwner").to_vec();
+            storage_key.extend_from_slice(&sp_core::twox_64(&item_key));
+            storage_key.extend_from_slice(&item_key);
+
+            if let Some(raw_data) = client.storage(parent, &StorageKey(storage_key))? {
+                if let Ok(key_owner) = AccountId32::decode(&mut &raw_data.0[..]) {
+                    local_account = Some(key_owner);
+                    break;
+                } else {
+                    log::warn!("🧙 [distance oracle] Cannot decode key owner value");
+                }
+            }
+        }
+        if let Some(local_account) = local_account {
+            if results.evaluators.contains(&local_account) {
+                log::debug!("🧙 [distance oracle] Already published a result for this period");
+                return Ok(sp_distance::InherentDataProvider::<IdtyIndex>::new(None));
+            }
+        } else {
+            log::error!("🧙 [distance oracle] Cannot find our BABE owner key");
             return Ok(sp_distance::InherentDataProvider::<IdtyIndex>::new(None));
         }
     }
@@ -100,14 +146,16 @@ where
     // Read evaluation result from file, if it exists
     log::debug!(
         "🧙 [distance oracle] Reading evaluation result from file {:?}",
-        distance_dir.clone().join(pool_index.to_string())
+        distance_dir.clone().join(period_index.to_string())
     );
-    let evaluation_result = match std::fs::read(distance_dir.join(pool_index.to_string())) {
+    let evaluation_result = match std::fs::read(
+        distance_dir.join(VERSION_PREFIX.to_owned() + &period_index.to_string()),
+    ) {
         Ok(data) => data,
         Err(e) => {
             match e.kind() {
                 std::io::ErrorKind::NotFound => {
-                    log::debug!("🧙 [distance oracle] Evaluation result file not found");
+                    log::debug!("🧙 [distance oracle] Evaluation result file not found. Please ensure that the oracle version matches {}", VERSION_PREFIX);
                 }
                 _ => {
                     log::error!(
diff --git a/distance-oracle/Cargo.toml b/distance-oracle/Cargo.toml
index 3f7614e3e36e6ddd85b76bf55a5df00e11bd59c1..2be78ee9c24c65a80dd54cf8668d6a04f2d56e67 100644
--- a/distance-oracle/Cargo.toml
+++ b/distance-oracle/Cargo.toml
@@ -12,27 +12,23 @@ required-features = ["standalone"]
 
 [features]
 default = ["standalone", "std"]
+# Feature standalone is for CLI executable
 standalone = ["clap", "tokio"]
+# Feature std is needed
 std = [
 	"codec/std",
 	"fnv/std",
-	"hex/std",
-	"log/std",
-	"num-traits/std",
 	"sp-core/std",
 	"sp-distance/std",
 	"sp-runtime/std",
 ]
 try-runtime = ["sp-distance/try-runtime", "sp-runtime/try-runtime"]
-runtime-benchmarks = []
 
 [dependencies]
 clap = { workspace = true, features = ["derive"], optional = true }
 codec = { workspace = true }
 fnv = { workspace = true }
-hex = { workspace = true }
 log = { workspace = true }
-num-traits = { workspace = true }
 rayon = { workspace = true }
 simple_logger = { workspace = true }
 sp-core = { workspace = true }
diff --git a/distance-oracle/README.md b/distance-oracle/README.md
index cff2d054623851b24ed9004da5209b51ae1c1441..169549017b4343608b378e72f4078cbe6e51e5d0 100644
--- a/distance-oracle/README.md
+++ b/distance-oracle/README.md
@@ -1,29 +1,3 @@
-# Distance oracle
+# Distance Oracle
 
-> for explanation about the Duniter web of trust, see https://duniter.org/wiki/web-of-trust/deep-dive-wot/
-
-Distance computation on the Duniter web of trust is an expensive operation that should not be included in the runtime for multiple reasons:
-
-- it could exceed the time available for a block computation
-- it takes a lot of resource from the host machine
-- the result is not critical to the operation of Ğ1
-
-It is then separated into an other program that the user (a duniter smith) can choose to run or not. This program publishes its result in a inherent and the network selects the median of the results given by the smith who published some.
-
-## Structure
-
-This feature is organized in multiple parts:
-
-- **/distance-oracle/** (here): binary executing the distance algorithm
-- **/primitives/distance/**: primitive types used both by client and runtime
-- **/client/distance/**: exposes the `create_distance_inherent_data_provider` which provides data to the runtime
-- **/pallets/distance/**: distance pallet exposing type, traits, storage/calls/hooks executing in the runtime
-
-## Usage (with Docker)
-
-See [docker-compose.yml](../docker-compose.yml) for an example of how to run the distance oracle with Docker.
-
-Output:
-
-    2023-12-09T14:45:05.942Z INFO [distance_oracle] Nothing to do: Pool does not exist
-    Waiting 1800 seconds before next execution...
\ No newline at end of file
+You can find the autogenerated documentation at: [https://doc-duniter-org.ipns.pagu.re/distance_oracle/index.html](https://doc-duniter-org.ipns.pagu.re/distance_oracle/index.html).
diff --git a/distance-oracle/src/api.rs b/distance-oracle/src/api.rs
index 99e6b6f518e9a2de9d3dba6f4499b8e647486905..9e507dd031907d919a5340c5c3d2a9d0e4db57c0 100644
--- a/distance-oracle/src/api.rs
+++ b/distance-oracle/src/api.rs
@@ -19,13 +19,14 @@
 use crate::runtime;
 use log::debug;
 
-use sp_core::H256;
-
 pub type Client = subxt::OnlineClient<crate::RuntimeConfig>;
 pub type AccountId = subxt::utils::AccountId32;
 pub type IdtyIndex = u32;
+pub type EvaluationPool =
+    runtime::runtime_types::pallet_distance::types::EvaluationPool<AccountId, IdtyIndex>;
+pub type H256 = subxt::utils::H256;
 
-pub async fn client(rpc_url: String) -> Client {
+pub async fn client(rpc_url: impl AsRef<str>) -> Client {
     Client::from_insecure_url(rpc_url)
         .await
         .expect("Cannot create RPC client")
@@ -40,11 +41,11 @@ pub async fn parent_hash(client: &Client) -> H256 {
         .hash()
 }
 
-pub async fn current_pool_index(client: &Client, parent_hash: H256) -> u32 {
+pub async fn current_period_index(client: &Client, parent_hash: H256) -> u32 {
     client
         .storage()
         .at(parent_hash)
-        .fetch(&runtime::storage().distance().current_pool_index())
+        .fetch(&runtime::storage().distance().current_period_index())
         .await
         .expect("Cannot fetch current pool index")
         .unwrap_or_default()
@@ -54,7 +55,7 @@ pub async fn current_pool(
     client: &Client,
     parent_hash: H256,
     current_pool_index: u32,
-) -> Option<runtime::runtime_types::pallet_distance::types::EvaluationPool<AccountId, IdtyIndex>> {
+) -> Option<EvaluationPool> {
     client
         .storage()
         .at(parent_hash)
diff --git a/distance-oracle/src/lib.rs b/distance-oracle/src/lib.rs
index 965ed8b20ee0d8f79eb261600ae948536b466559..a9808972784453a8f7bbab770eeffa2552969483 100644
--- a/distance-oracle/src/lib.rs
+++ b/distance-oracle/src/lib.rs
@@ -14,6 +14,38 @@
 // You should have received a copy of the GNU Affero General Public License
 // along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>.
 
+//! # Distance Oracle
+//!
+//! The **Distance Oracle** is a standalone program designed to calculate the distances between identities in the Duniter Web of Trust (WoT). This process is computationally intensive and is therefore decoupled from the main runtime. It allows smith users to choose whether to run the oracle and provide results to the network.
+//!
+//! The **oracle** works in conjunction with the **Inherent Data Provider** and the **Distance Pallet** in the runtime to deliver periodic computation results. The **Inherent Data Provider** fetches and supplies these results to the runtime, ensuring that the necessary data for distance evaluations is available to be processed at the appropriate time in the runtime lifecycle.
+//!
+//! ## Structure
+//!
+//! The Distance Oracle is organized into the following modules:
+//!
+//! 1. **`/distance-oracle/`**: Contains the main binary for executing the distance computation.
+//! 2. **`/primitives/distance/`**: Defines primitive types shared between the client and runtime.
+//! 3. **`/client/distance/`**: Exposes the `create_distance_inherent_data_provider`, which feeds data into the runtime through the Inherent Data Provider.
+//! 4. **`/pallets/distance/`**: A pallet that handles distance-related types, traits, storage, and hooks in the runtime, coordinating the interaction between the oracle, inherent data provider, and runtime.
+//!
+//! ## How it works
+//! - The **Distance Pallet** adds an evaluation request at period `i` in the runtime.
+//! - The **Distance Oracle** evaluates this request at period `i + 1`, computes the necessary results and stores them on disk.
+//! - The **Inherent Data Provider** reads this evaluation result from disk at period `i + 2` and provides it to the runtime to perform the required operations.
+//!
+//! ## Usage
+//!
+//! ### Docker Integration
+//!
+//! To run the Distance Oracle, use the provided Docker setup. Refer to the [docker-compose.yml](../docker-compose.yml) file for an example configuration.
+//!
+//! Example Output:
+//! ```text
+//! 2023-12-09T14:45:05.942Z INFO [distance_oracle] Nothing to do: Pool does not exist
+//! Waiting 1800 seconds before next execution...
+//! ```
+
 #[cfg(not(test))]
 pub mod api;
 #[cfg(test)]
@@ -24,15 +56,20 @@ mod tests;
 #[cfg(test)]
 pub use mock as api;
 
-use api::{AccountId, IdtyIndex};
+use api::{AccountId, EvaluationPool, IdtyIndex, H256};
 
 use codec::Encode;
 use fnv::{FnvHashMap, FnvHashSet};
-use log::{debug, error, info, warn};
+use log::{debug, info, warn};
 use rayon::iter::{IntoParallelRefIterator, ParallelIterator};
 use std::{io::Write, path::PathBuf};
 
-// TODO select metadata file using features
+/// The file version must match the version used by the inherent data provider.
+/// This ensures that the smith avoids accidentally submitting invalid data
+/// in case there are changes in logic between the runtime and the oracle,
+/// thereby preventing potential penalties.
+const VERSION_PREFIX: &str = "001-";
+
 #[subxt::subxt(runtime_metadata_path = "../resources/metadata.scale")]
 pub mod runtime {}
 
@@ -42,7 +79,7 @@ impl subxt::config::Config for RuntimeConfig {
     type Address = subxt::ext::sp_runtime::MultiAddress<Self::AccountId, u32>;
     type AssetId = ();
     type ExtrinsicParams = subxt::config::substrate::SubstrateExtrinsicParams<Self>;
-    type Hash = sp_core::H256;
+    type Hash = subxt::utils::H256;
     type Hasher = subxt::config::substrate::BlakeTwo256;
     type Header =
         subxt::config::substrate::SubstrateHeader<u32, subxt::config::substrate::BlakeTwo256>;
@@ -83,10 +120,18 @@ impl Default for Settings {
     }
 }
 
-/// Asynchronously runs a computation using the provided client and saves the result to a file.
-pub async fn run_and_save(client: &api::Client, settings: Settings) {
-    let Some((evaluation, current_pool_index, evaluation_result_path)) =
-        run(client, &settings, true).await
+/// Runs the evaluation process, saves the results, and cleans up old files.
+///
+/// This function performs the following steps:
+/// 1. Runs the evaluation task by invoking `compute_distance_evaluation`, which provides:
+///    - The evaluation results.
+///    - The current period index.
+///    - The file path where the results should be stored.
+/// 2. Saves the evaluation results to a file in the specified directory.
+/// 3. Cleans up outdated evaluation files.
+pub async fn run(client: &api::Client, settings: &Settings) {
+    let Some((evaluation, current_period_index, evaluation_result_path)) =
+        compute_distance_evaluation(client, settings).await
     else {
         return;
     };
@@ -114,83 +159,52 @@ pub async fn run_and_save(client: &api::Client, settings: Settings) {
             )
         });
 
-    // Remove old results
-    let mut files_to_remove = Vec::new();
-    for entry in settings
+    // When a new result is written, remove old results except for the current period used by the inherent logic and the next period that was just generated.
+    settings
         .evaluation_result_dir
         .read_dir()
         .unwrap_or_else(|e| {
             panic!(
-                "Cannot read distance evaluation result directory `{0:?}`: {e:?}",
-                settings.evaluation_result_dir
+                "Cannot read distance evaluation result directory `{:?}`: {:?}",
+                settings.evaluation_result_dir, e
             )
         })
         .flatten()
-    {
-        if let Ok(entry_name) = entry.file_name().into_string() {
-            if let Ok(entry_pool) = entry_name.parse::<isize>() {
-                if current_pool_index as isize - entry_pool > 3 {
-                    files_to_remove.push(entry.path());
-                }
-            }
-        }
-    }
-    files_to_remove.into_iter().for_each(|f| {
-        std::fs::remove_file(&f)
-            .unwrap_or_else(move |e| warn!("Cannot remove old result file `{f:?}`: {e:?}"));
-    });
+        .filter_map(|entry| {
+            entry
+                .file_name()
+                .to_str()
+                .and_then(|name| {
+                    name.split('-').last()?.parse::<u32>().ok().filter(|&pool| {
+                        pool != current_period_index && pool != current_period_index + 1
+                    })
+                })
+                .map(|_| entry.path())
+        })
+        .for_each(|path| {
+            std::fs::remove_file(&path)
+                .unwrap_or_else(|e| warn!("Cannot remove file `{:?}`: {:?}", path, e));
+        });
 }
 
-/// Asynchronously runs a computation based on the provided client and settings.
-/// Returns `Option<(evaluation, current_pool_index, evaluation_result_path)>`.
-pub async fn run(
+/// Evaluates distance for the current period and prepares results for storage.
+///
+/// This function performs the following steps:
+/// 1. Prepares the evaluation context using `prepare_evaluation_context`. If the context is not
+///    ready (e.g., no pending evaluations, or results already exist), it returns `None`.
+/// 2. Evaluates distances for all identities in the evaluation pool.
+/// 3. Returns the evaluation results, the current period index, and the path to store the results.
+///
+pub async fn compute_distance_evaluation(
     client: &api::Client,
     settings: &Settings,
-    handle_fs: bool,
 ) -> Option<(Vec<sp_runtime::Perbill>, u32, PathBuf)> {
-    let parent_hash = api::parent_hash(client).await;
-
-    let max_depth = api::max_referee_distance(client).await;
+    let (evaluation_block, current_period_index, evaluation_pool, evaluation_result_path) =
+        prepare_evaluation_context(client, settings).await?;
 
-    let current_pool_index = api::current_pool_index(client, parent_hash).await;
-
-    // Fetch the pending identities
-    let Some(evaluation_pool) = api::current_pool(client, parent_hash, current_pool_index).await
-    else {
-        info!("Nothing to do: Pool does not exist");
-        return None;
-    };
-
-    // Stop if nothing to evaluate
-    if evaluation_pool.evaluations.0.is_empty() {
-        info!("Nothing to do: Pool is empty");
-        return None;
-    }
-
-    let evaluation_result_path = settings
-        .evaluation_result_dir
-        .join((current_pool_index + 1).to_string());
-
-    if handle_fs {
-        // Stop if already evaluated
-        if evaluation_result_path
-            .try_exists()
-            .expect("Result path unavailable")
-        {
-            info!("Nothing to do: File already exists");
-            return None;
-        }
-
-        std::fs::create_dir_all(&settings.evaluation_result_dir).unwrap_or_else(|e| {
-            error!(
-                "Cannot create distance evaluation result directory `{0:?}`: {e:?}",
-                settings.evaluation_result_dir
-            );
-        });
-    }
+    info!("Evaluating distance for period {}", current_period_index);
 
-    info!("Evaluating distance for pool {}", current_pool_index);
-    let evaluation_block = api::evaluation_block(client, parent_hash).await;
+    let max_depth = api::max_referee_distance(client).await;
 
     // member idty -> issued certs
     let mut members = FnvHashMap::<IdtyIndex, u32>::default();
@@ -245,9 +259,75 @@ pub async fn run(
         .map(|(idty, _)| distance_rule(&received_certs, &referees, max_depth, *idty))
         .collect();
 
-    Some((evaluation, current_pool_index, evaluation_result_path))
+    Some((evaluation, current_period_index, evaluation_result_path))
+}
+
+/// Prepares the context for the next evaluation task.
+///
+/// This function performs the following steps:
+/// 1. Fetches the parent hash of the latest block from the API.
+/// 2. Determines the current period index.
+/// 3. Retrieves the evaluation pool for the current period.
+///    - If the pool does not exist or is empty, it returns `None`.
+/// 4. Checks if the evaluation result file for the next period already exists.
+///    - If it exists, the task has already been completed, so the function returns `None`.
+/// 5. Ensures the evaluation result directory is available, creating it if necessary.
+/// 6. Retrieves the block number of the evaluation.
+///
+async fn prepare_evaluation_context(
+    client: &api::Client,
+    settings: &Settings,
+) -> Option<(H256, u32, EvaluationPool, PathBuf)> {
+    let parent_hash = api::parent_hash(client).await;
+
+    let current_period_index = api::current_period_index(client, parent_hash).await;
+
+    // Fetch the pending identities
+    let Some(evaluation_pool) =
+        api::current_pool(client, parent_hash, current_period_index % 3).await
+    else {
+        info!("Nothing to do: Pool does not exist");
+        return None;
+    };
+
+    // Stop if nothing to evaluate
+    if evaluation_pool.evaluations.0.is_empty() {
+        info!("Nothing to do: Pool is empty");
+        return None;
+    }
+
+    // The result is saved in a file named `current_period_index + 1`.
+    // It will be picked up during the next period by the inherent.
+    let evaluation_result_path = settings
+        .evaluation_result_dir
+        .join(VERSION_PREFIX.to_owned() + &(current_period_index + 1).to_string());
+
+    // Stop if already evaluated
+    if evaluation_result_path
+        .try_exists()
+        .expect("Result path unavailable")
+    {
+        info!("Nothing to do: File already exists");
+        return None;
+    }
+
+    #[cfg(not(test))]
+    std::fs::create_dir_all(&settings.evaluation_result_dir).unwrap_or_else(|e| {
+        panic!(
+            "Cannot create distance evaluation result directory `{0:?}`: {e:?}",
+            settings.evaluation_result_dir
+        );
+    });
+
+    Some((
+        api::evaluation_block(client, parent_hash).await,
+        current_period_index,
+        evaluation_pool,
+        evaluation_result_path,
+    ))
 }
 
+/// Recursively explores the certification graph to identify referees accessible within a given depth.
 fn distance_rule_recursive(
     received_certs: &FnvHashMap<IdtyIndex, Vec<IdtyIndex>>,
     referees: &FnvHashMap<IdtyIndex, u32>,
@@ -293,7 +373,7 @@ fn distance_rule_recursive(
     }
 }
 
-/// Returns the fraction `nb_accessible_referees / nb_referees`
+/// Calculates the fraction of accessible referees to total referees for a given identity.
 fn distance_rule(
     received_certs: &FnvHashMap<IdtyIndex, Vec<IdtyIndex>>,
     referees: &FnvHashMap<IdtyIndex, u32>,
diff --git a/distance-oracle/src/main.rs b/distance-oracle/src/main.rs
index 9e3644a8b341397e96043162027a41677b534a59..d9158414156b1064c6c610fd1e703ba894b73bf1 100644
--- a/distance-oracle/src/main.rs
+++ b/distance-oracle/src/main.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Axiom-Team
+// Copyright 2023-2024 Axiom-Team
 //
 // This file is part of Duniter-v2S.
 //
@@ -20,6 +20,10 @@ use clap::Parser;
 struct Cli {
     #[clap(short = 'd', long, default_value = "/tmp/duniter/chains/gdev/distance")]
     evaluation_result_dir: String,
+    /// Number of seconds between two evaluations (oneshot if absent)
+    #[clap(short = 'i', long)]
+    interval: Option<u64>,
+    /// Node used for fetching state
     #[clap(short = 'u', long, default_value = "ws://127.0.0.1:9944")]
     rpc_url: String,
     /// Log level (off, error, warn, info, debug, trace)
@@ -36,12 +40,21 @@ async fn main() {
         .init()
         .unwrap();
 
-    distance_oracle::run_and_save(
-        &distance_oracle::api::client(cli.rpc_url.clone()).await,
-        distance_oracle::Settings {
-            evaluation_result_dir: cli.evaluation_result_dir.into(),
-            rpc_url: cli.rpc_url,
-        },
-    )
-    .await;
+    let client = distance_oracle::api::client(&cli.rpc_url).await;
+
+    let settings = distance_oracle::Settings {
+        evaluation_result_dir: cli.evaluation_result_dir.into(),
+        rpc_url: cli.rpc_url,
+    };
+
+    if let Some(duration) = cli.interval {
+        let mut interval = tokio::time::interval(std::time::Duration::from_secs(duration));
+        interval.set_missed_tick_behavior(tokio::time::MissedTickBehavior::Delay);
+        loop {
+            distance_oracle::run(&client, &settings).await;
+            interval.tick().await;
+        }
+    } else {
+        distance_oracle::run(&client, &settings).await;
+    }
 }
diff --git a/distance-oracle/src/mock.rs b/distance-oracle/src/mock.rs
index b21f4e796a97b054336a95753bb376dccb255f49..881022205f92e5725ad8be079a6f84d8fd2093b3 100644
--- a/distance-oracle/src/mock.rs
+++ b/distance-oracle/src/mock.rs
@@ -19,7 +19,6 @@ use crate::runtime::runtime_types::{
 };
 
 use dubp_wot::{data::rusty::RustyWebOfTrust, WebOfTrust, WotId};
-use sp_core::H256;
 use std::collections::BTreeSet;
 
 pub struct Client {
@@ -28,13 +27,14 @@ pub struct Client {
 }
 pub type AccountId = subxt::ext::sp_runtime::AccountId32;
 pub type IdtyIndex = u32;
+pub type H256 = subxt::utils::H256;
 
-pub struct EvaluationPool<AccountId: Ord, IdtyIndex> {
+pub struct EvaluationPool {
     pub evaluations: (Vec<(IdtyIndex, MedianAcc<Perbill>)>,),
     pub evaluators: BTreeSet<AccountId>,
 }
 
-pub async fn client(_rpc_url: String) -> Client {
+pub async fn client(_rpc_url: impl AsRef<str>) -> Client {
     unimplemented!()
 }
 
@@ -46,7 +46,7 @@ pub async fn parent_hash(_client: &Client) -> H256 {
     Default::default()
 }
 
-pub async fn current_pool_index(_client: &Client, _parent_hash: H256) -> u32 {
+pub async fn current_period_index(_client: &Client, _parent_hash: H256) -> u32 {
     0
 }
 
@@ -54,7 +54,7 @@ pub async fn current_pool(
     client: &Client,
     _parent_hash: H256,
     _current_session: u32,
-) -> Option<EvaluationPool<AccountId, IdtyIndex>> {
+) -> Option<EvaluationPool> {
     Some(EvaluationPool {
         evaluations: (client
             .wot
diff --git a/distance-oracle/src/tests.rs b/distance-oracle/src/tests.rs
index a1c197fa82121eb99b9e16293e85368a916404d4..23df3f2874b5f46ce9b33abb7e1152f08e338058 100644
--- a/distance-oracle/src/tests.rs
+++ b/distance-oracle/src/tests.rs
@@ -58,7 +58,7 @@ async fn test_distance_against_v1() {
     client.pool_len = n;
 
     let t_a = std::time::Instant::now();
-    let results = crate::run(&client, &Default::default(), false)
+    let results = crate::compute_distance_evaluation(&client, &Default::default())
         .await
         .unwrap();
     println!("new time: {}", t_a.elapsed().as_millis());
diff --git a/docs/dev/beginner-walkthrough.md b/docs/dev/beginner-walkthrough.md
index fc1a8bed267b29537211c52d14c77ede638c93d2..4df98d2f08fcdfcaa45c3e4d5765043bd7ee2caa 100644
--- a/docs/dev/beginner-walkthrough.md
+++ b/docs/dev/beginner-walkthrough.md
@@ -13,7 +13,7 @@ This walkthrough is based on the following video (french), don't hesitate to rec
 If you are on a debian based system, you can install the required packages with:
 
 ```bash
-sudo apt install cmake pkg-config libssl-dev git build-essential clang libclang-dev curl
+sudo apt install cmake pkg-config libssl-dev git build-essential clang libclang-dev curl protobuf-compiler
 ```
 
 Else, look at the corresponding section in the [system setup documentation](./setup.md).
diff --git a/docs/packaging/build-rpm.md b/docs/packaging/build-rpm.md
new file mode 100644
index 0000000000000000000000000000000000000000..eb461f7fd1b89cc824fb9b38e277304faabbafbd
--- /dev/null
+++ b/docs/packaging/build-rpm.md
@@ -0,0 +1,20 @@
+# How to Build the Duniter RPM Package
+
+1. Install dependencies:
+   ```sh
+   # Fedora
+   sudo dnf install clang cmake protobuf-compiler openssl-devel
+   ```
+2. Compile the project:
+   ```sh
+   cargo build --release
+   ```
+3. Install `cargo-generate-rpm`:
+   ```sh
+   cargo install cargo-generate-rpm
+   ```
+4. Build the package:
+   ```sh
+   cargo generate-rpm -p node
+   ```
+5. The `.rpm` package will be located in the `target/generate-rpm` folder.
diff --git a/docs/user/distance.md b/docs/user/distance.md
index 1f578f2501531770879b4d2023f803eb29d49b4a..015ab08241d763cf7e04612e6abf4d2d94b97b0e 100644
--- a/docs/user/distance.md
+++ b/docs/user/distance.md
@@ -8,18 +8,14 @@ Distance evaluation is operated on a voluntary basis by individual smiths. Since
 
 Any smith member authoring blocks can run a distance evaluation oracle. It is better to have a machine more powerful than the reference machine.
 
-The simplest way is to run the oracle on the same machine as Duniter.
+Create a service from this command line, run by the same user as Duniter, on the same system:
 
-Add this line to your cron with the command `crontab -e`: (add option `-u <user>` to edit another user's cron)
+    /absolute/path/to/duniter distance-oracle --interval <duration>
 
-    4,24,44 * * * * nice -n 2 /absolute/path/to/duniter distance-oracle
+The duration is the number of seconds between two evaluations. It should be less than the duration of a distance evaluation period. If it is equal, your node may not have the time to evaluate distance.
 
-The precise hours don't matter so you can pick random values, but it should run at least one time per hour, and running it more often decreases the risk of problem in case of missing blocks or temporary network failure.
-
-If the evaluation ran successfully in a session, the next runs in the same session won't re-evaluate the same data.
-
-The `nice -n 2` lowers the oracle's priority, so that Duniter has the priority even when the oracle wants to use all the cores.
+The oracle communicates with Duniter using its RPC API and using temporary files. Without additional (unsupported) configuration, both must run on the same filesystem. The node also needs to be forging blocks for the evaluations to be published.
 
 ### Additional Duniter configuration
 
-Duniter should keep states at least one session old, that is 600 blocks (while 256 is the default). Use the option `--state-pruning 600` if your node is not already an archive (`--state-pruning archive`).
+Duniter should keep states at least one distance evaluation period old. If this is more than the default 256 and your node is not already an archive (`--state-pruning archive`), use the option `--state-pruning <blocks>`.
diff --git a/end2end-tests/tests/common/distance.rs b/end2end-tests/tests/common/distance.rs
index f9f43d6707559ea0145d72ff043b0b7ecd50cc09..f7d02df5544cf80a7b8922d90296d2ae8478ad85 100644
--- a/end2end-tests/tests/common/distance.rs
+++ b/end2end-tests/tests/common/distance.rs
@@ -51,15 +51,15 @@ pub async fn run_oracle(
     let origin = PairSigner::new(origin.pair());
     let account_id: &AccountId32 = origin.account_id();
 
-    if let Some((distances, _current_session, _evaluation_result_path)) = distance_oracle::run(
-        &distance_oracle::api::client(rpc_url.clone()).await,
-        &distance_oracle::Settings {
-            evaluation_result_dir: PathBuf::default(),
-            rpc_url,
-        },
-        false,
-    )
-    .await
+    if let Some((distances, _current_session, _evaluation_result_path)) =
+        distance_oracle::compute_distance_evaluation(
+            &distance_oracle::api::client(rpc_url.clone()).await,
+            &distance_oracle::Settings {
+                evaluation_result_dir: PathBuf::default(),
+                rpc_url,
+            },
+        )
+        .await
     {
         // Distance evaluation period is 7 blocks
         for _ in 0..7 {
diff --git a/end2end-tests/tests/common/mod.rs b/end2end-tests/tests/common/mod.rs
index 6ed0e8375c02367af9262d01261c2b198474a5a2..5f8230da51565cda8d1e91b9a90e87e3119fe5c6 100644
--- a/end2end-tests/tests/common/mod.rs
+++ b/end2end-tests/tests/common/mod.rs
@@ -59,7 +59,7 @@ impl subxt::config::Config for GdevConfig {
     type Address = sp_runtime::MultiAddress<Self::AccountId, u32>;
     type AssetId = ();
     type ExtrinsicParams = SubstrateExtrinsicParams<Self>;
-    type Hash = sp_core::H256;
+    type Hash = subxt::utils::H256;
     type Hasher = subxt::config::substrate::BlakeTwo256;
     type Header =
         subxt::config::substrate::SubstrateHeader<u32, subxt::config::substrate::BlakeTwo256>;
diff --git a/live-tests/tests/sanity_gdev.rs b/live-tests/tests/sanity_gdev.rs
index ca6ded3e811b6c576b1d8f4a037474cadaf7dd47..132680dfdfa9e9524822fd0fa88360ce59a49845 100644
--- a/live-tests/tests/sanity_gdev.rs
+++ b/live-tests/tests/sanity_gdev.rs
@@ -373,7 +373,10 @@ mod verifier {
             names: &HashMap<IdtyIndex, IdtyName>,
         ) {
             for (idty_index, idty_value) in identities {
-                // Rule 1: each Status::Member should have a membership and a name.
+                // Rule 1: each Status::Member
+                // should have a membership and a name
+                // membership should be set to expire
+                // identity should have no scheduled action
                 if let IdtyStatus::Member = idty_value.status {
                     self.assert(
                         memberships.get(idty_index).is_some(),
@@ -383,9 +386,23 @@ mod verifier {
                         names.get(idty_index).is_some(),
                         format!("identity number {idty_index} should have a name"),
                     );
+                    self.assert(
+                        memberships.get(idty_index).unwrap().expire_on != 0,
+                        format!(
+                            "Member identity number {idty_index} should have a non-null expire_on value"
+                        ),
+                    );
+                    self.assert(
+                        identities.get(idty_index).unwrap().next_scheduled == 0,
+                        format!(
+                            "Member identity number {idty_index} should have a null next_scheduled value"
+                        ),
+                    );
                 }
 
-                // Rule 2: each Status::NotMember should have a name but no membership.
+                // Rule 2: each Status::NotMember
+                // should have a name but no membership
+                // should have a scheduled action (auto-revocation)
                 if let IdtyStatus::NotMember = idty_value.status {
                     self.assert(
                         memberships.get(idty_index).is_none(),
@@ -395,9 +412,16 @@ mod verifier {
                         names.get(idty_index).is_some(),
                         format!("identity number {idty_index} should have a name"),
                     );
+                    self.assert(
+                        identities.get(idty_index).unwrap().next_scheduled != 0,
+                        format!("NotMember identity number {idty_index} should have a non-null next_scheduled value"),
+                    );
                 }
 
-                // Rule 3: each Status::Revoke should should have a name but no membership.
+                // Rule 3: each Status::Revoked
+                // should should have a name
+                // no membership
+                // should be scheduled for removal
                 if let IdtyStatus::Revoked = idty_value.status {
                     self.assert(
                         memberships.get(idty_index).is_none(),
@@ -407,9 +431,15 @@ mod verifier {
                         names.get(idty_index).is_some(),
                         format!("identity number {idty_index} should have a name"),
                     );
+                    self.assert(
+                        identities.get(idty_index).unwrap().next_scheduled != 0,
+                        format!("Revoked identity number {idty_index} should have a non-null next_scheduled value"),
+                    );
                 }
 
-                // Rule 4: each Status::Unvalidaded should have a name but no membership.
+                // Rule 4: each Status::Unvalidaded
+                // should have a name but no membership.
+                // should be scheduled for removal
                 if let IdtyStatus::Unvalidated = idty_value.status {
                     self.assert(
                         memberships.get(idty_index).is_none(),
@@ -419,9 +449,15 @@ mod verifier {
                         names.get(idty_index).is_some(),
                         format!("identity number {idty_index} should have a name"),
                     );
+                    self.assert(
+                        identities.get(idty_index).unwrap().next_scheduled != 0,
+                        format!("Unvalidated identity number {idty_index} should have a non-null next_scheduled value"),
+                    );
                 }
 
-                // Rule 5: each Status::Unconfirmed should not have a name neither a membership.
+                // Rule 5: each Status::Unconfirmed
+                // should not have a name neither a membership.
+                // should be scheduled for removal soon
                 if let IdtyStatus::Unconfirmed = idty_value.status {
                     self.assert(
                         memberships.get(idty_index).is_none(),
@@ -431,6 +467,10 @@ mod verifier {
                         names.get(idty_index).is_none(),
                         format!("identity number {idty_index} should not have a name"),
                     );
+                    self.assert(
+                        identities.get(idty_index).unwrap().next_scheduled != 0,
+                        format!("Unconfirmed identity number {idty_index} should have a non-null next_scheduled value"),
+                    );
                 }
             }
         }
diff --git a/node/Cargo.toml b/node/Cargo.toml
index 4db00243bdd049a715a72f61c146767351efd28e..9189c27b995223b0dc805b8eba6e4a047f356a40 100644
--- a/node/Cargo.toml
+++ b/node/Cargo.toml
@@ -106,7 +106,7 @@ std = [
 	"sp-transaction-storage-proof/std",
 	"sp-trie/std",
 ]
-standalone = ["distance-oracle?/standalone"]
+distance-oracle = ["dep:distance-oracle"]
 
 [dependencies]
 async-io = { workspace = true }
@@ -125,6 +125,7 @@ num-format = { workspace = true }
 serde = { workspace = true }
 serde_json = { workspace = true }
 serde_yaml = { workspace = true }
+tokio = { workspace = true, features = ["rt-multi-thread"] }
 
 # Local
 common-runtime = { workspace = true }
@@ -211,3 +212,14 @@ assets = [
 		"755",
 	],
 ]
+
+[package.metadata.generate-rpm]
+assets = [
+	{ source = "../target/release/duniter", dest = "/usr/bin/duniter2", mode = "755" },
+	{ source = "../resources/debian/duniter.sysusers", dest = "/usr/lib/sysusers.d/duniter.conf", mode = "0644" },
+	{ source = "../resources/debian/env_file", dest = "/etc/duniter/env_file", config = true, mode = "0640" },
+	{ source = "../LICENSE", dest = "/usr/share/licenses/duniter/LICENSE" },
+	{ source = "../resources/debian/duniter-mirror.service", dest = "/usr/lib/systemd/system/duniter-mirror.service", mode = "0644" },
+	{ source = "../resources/debian/duniter-smith.service", dest = "/usr/lib/systemd/system/duniter-smith.service", mode = "0644" },
+	{ source = "../resources/debian/duniter-smith.service", dest = "/usr/lib/systemd/system/distance-oracle.service", mode = "0644" },
+]
diff --git a/node/README.md b/node/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..a365610b2da3efdf3b022dcead65843b57d6bcd5
--- /dev/null
+++ b/node/README.md
@@ -0,0 +1,3 @@
+# Duniter Node
+
+You can find the autogenerated documentation at: [https://doc-duniter-org.ipns.pagu.re/duniter/index.html](https://doc-duniter-org.ipns.pagu.re/duniter/index.html).
diff --git a/node/src/chain_spec/g1.rs b/node/src/chain_spec/g1.rs
index b84e42225256c6b152a5ae4b5b3c40b80176b4c4..8ad20d230ab6f271536fae861681bcc21ab576b4 100644
--- a/node/src/chain_spec/g1.rs
+++ b/node/src/chain_spec/g1.rs
@@ -18,9 +18,10 @@ use super::*;
 use crate::chain_spec::gen_genesis_data::{
     AuthorityKeys, CommonParameters, GenesisIdentity, SessionKeysProvider,
 };
-use common_runtime::{constants::*, entities::IdtyData, GenesisIdty, IdtyStatus};
+use common_runtime::{constants::*, entities::IdtyData, GenesisIdty};
 use g1_runtime::{
-    opaque::SessionKeys, pallet_universal_dividend, parameters, Runtime, WASM_BINARY,
+    opaque::SessionKeys, pallet_universal_dividend, parameters, Runtime, RuntimeGenesisConfig,
+    WASM_BINARY,
 };
 use sc_service::ChainType;
 use serde::Deserialize;
@@ -73,6 +74,7 @@ fn get_parameters(_parameters_from_file: &Option<GenesisParameters>) -> CommonPa
         identity_change_owner_key_period: parameters::ChangeOwnerKeyPeriod::get(),
         identity_idty_creation_period: parameters::IdtyCreationPeriod::get(),
         identity_autorevocation_period: parameters::AutorevocationPeriod::get(),
+        identity_deletion_period: parameters::DeletionPeriod::get(),
         membership_membership_period: parameters::MembershipPeriod::get(),
         membership_membership_renewal_period: parameters::MembershipRenewalPeriod::get(),
         cert_max_by_issuer: parameters::MaxByIssuer::get(),
@@ -191,8 +193,7 @@ fn genesis_data_to_g1_genesis_conf(
                          name,
                          owner_key,
                          status,
-                         expires_on,
-                         revokes_on,
+                         next_scheduled,
                      }| GenesisIdty {
                         index: idty_index,
                         name: common_runtime::IdtyName::from(name.as_str()),
@@ -201,16 +202,7 @@ fn genesis_data_to_g1_genesis_conf(
                             next_creatable_identity_on: 0,
                             old_owner_key: None,
                             owner_key,
-                            next_scheduled: match status {
-                                IdtyStatus::Unconfirmed | IdtyStatus::Unvalidated => {
-                                    panic!("Unconfirmed or Unvalidated identity in genesis")
-                                }
-                                IdtyStatus::Member => expires_on.expect("must have expires_on set"),
-                                IdtyStatus::Revoked => 0,
-                                IdtyStatus::NotMember => {
-                                    revokes_on.expect("must have revokes_on set")
-                                }
-                            },
+                            next_scheduled,
                             status,
                         },
                     },
diff --git a/node/src/chain_spec/gdev.rs b/node/src/chain_spec/gdev.rs
index 5b4a27c1d72bcb0d97dcf28bba5592a0b392c0c0..c78154891055aa953851add1c16ab0b668137624 100644
--- a/node/src/chain_spec/gdev.rs
+++ b/node/src/chain_spec/gdev.rs
@@ -18,7 +18,7 @@ use super::*;
 use crate::chain_spec::gen_genesis_data::{
     AuthorityKeys, CommonParameters, GenesisIdentity, SessionKeysProvider,
 };
-use common_runtime::{constants::*, entities::IdtyData, GenesisIdty, IdtyStatus};
+use common_runtime::{constants::*, entities::IdtyData, GenesisIdty};
 use gdev_runtime::{
     opaque::SessionKeys, pallet_universal_dividend, parameters, Runtime, WASM_BINARY,
 };
@@ -79,6 +79,7 @@ fn get_parameters(parameters_from_file: &Option<GenesisParameters>) -> CommonPar
         identity_change_owner_key_period: parameters::ChangeOwnerKeyPeriod::get(),
         identity_idty_creation_period: parameters_from_file.idty_creation_period,
         identity_autorevocation_period: parameters::AutorevocationPeriod::get(),
+        identity_deletion_period: parameters::DeletionPeriod::get(),
         membership_membership_period: parameters_from_file.membership_period,
         membership_membership_renewal_period: parameters_from_file.membership_renewal_period,
         cert_max_by_issuer: parameters_from_file.cert_max_by_issuer,
@@ -278,8 +279,9 @@ fn genesis_data_to_gdev_genesis_conf(
                          name,
                          owner_key,
                          status,
-                         expires_on,
-                         revokes_on,
+                        // at this point next_scheduled takes status into account
+                        // so is null for member account
+                         next_scheduled,
                      }| GenesisIdty {
                         index: idty_index,
                         name: common_runtime::IdtyName::from(name.as_str()),
@@ -288,16 +290,7 @@ fn genesis_data_to_gdev_genesis_conf(
                             next_creatable_identity_on: 0,
                             old_owner_key: None,
                             owner_key,
-                            next_scheduled: match status {
-                                IdtyStatus::Unconfirmed | IdtyStatus::Unvalidated => {
-                                    panic!("Unconfirmed or Unvalidated identity in genesis")
-                                }
-                                IdtyStatus::Member => expires_on.expect("must have expires_on set"),
-                                IdtyStatus::Revoked => 0,
-                                IdtyStatus::NotMember => {
-                                    revokes_on.expect("must have revokes_on set")
-                                }
-                            },
+                            next_scheduled,
                             status,
                         },
                     },
diff --git a/node/src/chain_spec/gen_genesis_data.rs b/node/src/chain_spec/gen_genesis_data.rs
index 72a7a0dc628f0c7cde1d23d459eb923cce2e3e45..a7c338ac60e080bc48569576b511bdd2f8b9a5a2 100644
--- a/node/src/chain_spec/gen_genesis_data.rs
+++ b/node/src/chain_spec/gen_genesis_data.rs
@@ -100,8 +100,7 @@ pub struct GenesisIdentity {
     pub name: String,
     pub owner_key: AccountId,
     pub status: IdtyStatus,
-    pub expires_on: Option<u32>,
-    pub revokes_on: Option<u32>,
+    pub next_scheduled: u32,
 }
 
 #[derive(Deserialize, Serialize)]
@@ -197,6 +196,10 @@ struct IdentityV1 {
 }
 
 /// identities
+// note: having membership_expire_on and identity_revoke_on is tricky
+// because the model of identity does not take into account the status
+// see this forum topic for a suggestion
+// https://forum.duniter.org/t/proposition-pour-supprimer-la-pallet-membership/11918
 #[derive(Clone, Deserialize, Serialize)]
 struct IdentityV2 {
     /// indentity index matching the order of appearance in the Ǧ1v1 blockchain
@@ -206,7 +209,7 @@ struct IdentityV2 {
     /// block at which the membership is set to expire (0 for expired members)
     membership_expire_on: u32,
     /// block at which the identity should be revoked (value in the past for already revoked identities)
-    identity_revokes_on: u32,
+    identity_revoke_on: u32,
     /// whether the identity is revoked (manually or automatically)
     revoked: bool,
     /// block at which the next cert can be emitted
@@ -376,6 +379,7 @@ where
         &mut inactive_identities,
         &mut memberships,
         &identities_v2,
+        &common_parameters,
     )?;
     if was_fatal {
         fatal = true;
@@ -1223,7 +1227,7 @@ fn genesis_data_to_identities_v2(
                         i.membership_expire_on,
                         genesis_timestamp,
                     ),
-                    identity_revokes_on: timestamp_to_relative_blocs(
+                    identity_revoke_on: timestamp_to_relative_blocs(
                         i.membership_revokes_on,
                         genesis_timestamp,
                     ),
@@ -1268,8 +1272,9 @@ fn make_authority_exist<SessionKeys: Encode, SKP: SessionKeysProvider<SessionKey
                 owner_key: get_account_id_from_seed::<sr25519::Public>(authority_name),
                 balance: common_parameters.balances_existential_deposit,
                 certs_received: HashMap::new(),
+                // note: in this context of generating genesis identities
                 membership_expire_on: common_parameters.membership_membership_period,
-                identity_revokes_on: common_parameters.identity_autorevocation_period,
+                identity_revoke_on: common_parameters.membership_membership_period,
                 revoked: false,
                 next_cert_issuable_on: 0,
             },
@@ -1319,6 +1324,7 @@ fn feed_identities(
     inactive_identities: &mut HashMap<u32, (String, IdtyStatus)>,
     memberships: &mut BTreeMap<u32, MembershipData>,
     identities_v2: &HashMap<String, IdentityV2>,
+    common_parameters: &CommonParameters,
 ) -> Result<(bool, Vec<GenesisIdentity>), String> {
     let mut fatal = false;
     let mut identities: Vec<GenesisIdentity> = Vec::new();
@@ -1328,25 +1334,6 @@ fn feed_identities(
             return Err(format!("Identity name '{}' is invalid", &name));
         }
 
-        // TODO: re-check this code origin and wether it should be included or not
-        // do not check existential deposit of identities
-        // // check existential deposit
-        // if identity.balance < common_parameters.existencial_deposit {
-        //     if identity.membership_expire_on == 0 {
-        //         log::warn!(
-        //             "expired identity {name} has {} cǦT which is below {}",
-        //             identity.balance, common_parameters.existencial_deposit
-        //         );
-        //         fatal = true;
-        //     } else {
-        //         member identities can still be below existential deposit thanks to sufficient
-        //         log::info!(
-        //             "identity {name} has {} cǦT which is below {}",
-        //             identity.balance, common_parameters.existencial_deposit
-        //         );
-        //     }
-        // }
-
         // Money
         // check that wallet with same owner_key does not exist
         if accounts.get(&identity.owner_key).is_some() {
@@ -1408,23 +1395,29 @@ fn feed_identities(
             owner_key: identity.owner_key.clone(),
             // but expired identities will just have their pseudonym reserved in the storage
             status,
-            expires_on: if status == IdtyStatus::Member {
-                Some(identity.membership_expire_on)
-            } else {
-                None
-            },
-            revokes_on: if status == IdtyStatus::NotMember {
-                Some(identity.identity_revokes_on)
-            } else {
-                None
+            next_scheduled: match status {
+                IdtyStatus::Unconfirmed | IdtyStatus::Unvalidated => {
+                    // these intermediary formats are disallowed in the genesis
+                    // since they correspond to offchain v1 data
+                    panic!("Unconfirmed or Unvalidated identity in genesis")
+                }
+                // Member identities schedule is managed by membership pallet
+                IdtyStatus::Member => 0,
+                // The identity will be scheduled for revocation after the auto-revocation period.
+                IdtyStatus::NotMember => common_parameters.identity_autorevocation_period,
+                // The identity will be scheduled for removal at the revoke block plus the deletion period.
+                IdtyStatus::Revoked => {
+                    identity.identity_revoke_on + common_parameters.identity_deletion_period
+                }
             },
         });
 
-        // insert the membershup data (only if not expired)
+        // insert the membership data (only if not expired)
         if !expired {
             memberships.insert(
                 identity.index,
                 MembershipData {
+                    // here we are using the correct expire block
                     expire_on: identity.membership_expire_on,
                 },
             );
@@ -1667,8 +1660,7 @@ where
             name: String::from_utf8(name.0.clone()).unwrap(),
             owner_key: owner_key.clone(),
             status: IdtyStatus::Member,
-            expires_on: Some(common_parameters.membership_membership_period),
-            revokes_on: None,
+            next_scheduled: 0,
         })
         .collect();
 
@@ -1758,8 +1750,16 @@ where
         identities,
         initial_authorities,
         initial_monetary_mass: initial_identities_len as u64 * initial_idty_balance,
+        // when generating data for local chain, we can set membersip expiration to membership period
         memberships: (1..=initial_identities.len())
-            .map(|i| (i as u32, MembershipData { expire_on: 0 }))
+            .map(|i| {
+                (
+                    i as u32,
+                    MembershipData {
+                        expire_on: common_parameters.membership_membership_period,
+                    },
+                )
+            })
             .collect(),
         parameters,
         common_parameters: None,
@@ -1935,6 +1935,7 @@ pub struct CommonParameters {
     pub identity_change_owner_key_period: u32,
     pub identity_idty_creation_period: u32,
     pub identity_autorevocation_period: u32,
+    pub identity_deletion_period: u32,
     pub membership_membership_period: u32,
     pub membership_membership_renewal_period: u32,
     pub cert_cert_period: u32,
diff --git a/node/src/chain_spec/gtest.rs b/node/src/chain_spec/gtest.rs
index 930d5ea75263a8cb3477ad3d0ff66af76d87a41b..2b4020664fa5d8cfcc4af95891538a9ac420866d 100644
--- a/node/src/chain_spec/gtest.rs
+++ b/node/src/chain_spec/gtest.rs
@@ -16,7 +16,7 @@
 
 use super::*;
 use crate::chain_spec::gen_genesis_data::{CommonParameters, GenesisIdentity, SessionKeysProvider};
-use common_runtime::{constants::*, entities::IdtyData, GenesisIdty, IdtyStatus};
+use common_runtime::{constants::*, entities::IdtyData, GenesisIdty};
 use gtest_runtime::{
     opaque::SessionKeys, pallet_universal_dividend, parameters, ImOnlineId, Runtime, WASM_BINARY,
 };
@@ -127,6 +127,7 @@ fn get_parameters(_: &Option<GenesisParameters>) -> CommonParameters {
         identity_change_owner_key_period: parameters::ChangeOwnerKeyPeriod::get(),
         identity_idty_creation_period: parameters::IdtyCreationPeriod::get(),
         identity_autorevocation_period: parameters::AutorevocationPeriod::get(),
+        identity_deletion_period: parameters::DeletionPeriod::get(),
         membership_membership_period: parameters::MembershipPeriod::get(),
         membership_membership_renewal_period: parameters::MembershipRenewalPeriod::get(),
         cert_max_by_issuer: parameters::MaxByIssuer::get(),
@@ -285,8 +286,7 @@ fn genesis_data_to_gtest_genesis_conf(
                          name,
                          owner_key,
                          status,
-                         expires_on,
-                         revokes_on,
+                         next_scheduled,
                      }| GenesisIdty {
                         index: idty_index,
                         name: common_runtime::IdtyName::from(name.as_str()),
@@ -295,16 +295,7 @@ fn genesis_data_to_gtest_genesis_conf(
                             next_creatable_identity_on: 0,
                             old_owner_key: None,
                             owner_key,
-                            next_scheduled: match status {
-                                IdtyStatus::Unconfirmed | IdtyStatus::Unvalidated => {
-                                    panic!("Unconfirmed or Unvalidated identity in genesis")
-                                }
-                                IdtyStatus::Member => expires_on.expect("must have expires_on set"),
-                                IdtyStatus::Revoked => 0,
-                                IdtyStatus::NotMember => {
-                                    revokes_on.expect("must have revokes_on set")
-                                }
-                            },
+                            next_scheduled,
                             status,
                         },
                     },
diff --git a/node/src/cli.rs b/node/src/cli.rs
index a494a87277526392ea467bd24b12c5e60f1d553c..4a29ae0c07ff17c392e48fafe8690ac4ee2e81cb 100644
--- a/node/src/cli.rs
+++ b/node/src/cli.rs
@@ -129,10 +129,19 @@ pub struct Completion {
     pub generator: clap_complete::Shell,
 }
 
-#[derive(Debug, clap::Args)]
+#[cfg(feature = "distance-oracle")]
+#[derive(Debug, clap::Parser)]
 pub struct DistanceOracle {
+    /// Saving path.
     #[clap(short = 'd', long, default_value = "/tmp/duniter/chains/gdev/distance")]
     pub evaluation_result_dir: String,
+    /// Number of seconds between two evaluations (oneshot if absent).
+    #[clap(short = 'i', long)]
+    pub interval: Option<u64>,
+    /// Node used for fetching state.
     #[clap(short = 'u', long, default_value = "ws://127.0.0.1:9944")]
     pub rpc_url: String,
+    /// Sets the logging level (e.g., debug, error, info, trace, warn).
+    #[clap(short = 'l', long, default_value = "info")]
+    pub log: String,
 }
diff --git a/node/src/command.rs b/node/src/command.rs
index 29af1944580fb2cbd3d0cef340c20c0fb9e2b70d..58eabb0144c3414f29873103599e48f952d79252 100644
--- a/node/src/command.rs
+++ b/node/src/command.rs
@@ -285,14 +285,26 @@ pub fn run() -> sc_cli::Result<()> {
         }
         #[cfg(feature = "distance-oracle")]
         Some(Subcommand::DistanceOracle(cmd)) => sc_cli::build_runtime()?.block_on(async move {
-            distance_oracle::run_and_save(
-                &distance_oracle::api::client(cmd.rpc_url.clone()).await,
-                distance_oracle::Settings {
-                    evaluation_result_dir: cmd.evaluation_result_dir.clone().into(),
-                    rpc_url: cmd.rpc_url.clone(),
-                },
-            )
-            .await;
+            let mut builder = sc_cli::LoggerBuilder::new("");
+            builder.with_profiling(sc_cli::TracingReceiver::Log.into(), cmd.log.clone());
+            builder.init()?;
+            let client = distance_oracle::api::client(&cmd.rpc_url).await;
+
+            let settings = distance_oracle::Settings {
+                evaluation_result_dir: cmd.evaluation_result_dir.clone().into(),
+                rpc_url: cmd.rpc_url.clone(),
+            };
+
+            if let Some(duration) = cmd.interval {
+                let mut interval = tokio::time::interval(std::time::Duration::from_secs(duration));
+                interval.set_missed_tick_behavior(tokio::time::MissedTickBehavior::Delay);
+                loop {
+                    distance_oracle::run(&client, &settings).await;
+                    interval.tick().await;
+                }
+            } else {
+                distance_oracle::run(&client, &settings).await;
+            }
             Ok(())
         }),
         #[cfg(feature = "runtime-benchmarks")]
diff --git a/node/src/lib.rs b/node/src/lib.rs
index caf6e6f327cfa0eda6ce001d9a153aae8f1f4401..2e557430013a21a5918a9ea56e3f4decfc38d470 100644
--- a/node/src/lib.rs
+++ b/node/src/lib.rs
@@ -14,6 +14,54 @@
 // You should have received a copy of the GNU Affero General Public License
 // along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>.
 
+//! # Duniter v2s Documentation
+//!
+//! 🆙 A rewriting of [Duniter v1](https://duniter.org) in the [Substrate](https://www.substrate.io/) framework.
+//!
+//! ⚠️ Duniter-v2s is under active development.
+//!
+//! 🚧 A test network called "ĞDev" is deployed, allowing testing of wallets and indexers.
+//!
+//! ## Crate Overview
+//!
+//! This workspace consists of multiple crates that collaboratively implement the Duniter node, enabling features such as identity management, Web of Trust (WoT) evaluation, universal dividend calculation, and more. Below is a categorized list of crates within this workspace:
+//!
+//! ### Core Components
+//! - [`client/distance`](../dc_distance/index.html): Provides an inherent data provider for distance evaluation in the Web of Trust.
+//! - [`distance-oracle`](../distance_oracle/index.html): A standalone tool for performing computationally intensive Web of Trust distance calculations.
+//! - [`node`](../duniter/index.html): The main node implementation for running the Duniter blockchain network.
+//!
+//! ### Testing Utilities
+//! - [`end2end-tests`](../duniter_end2end_tests/index.html): End-to-end tests for validating the entire Duniter workflow.
+//! - [`live-tests`](../duniter_live_tests/index.html): Live test cases for ensuring the integrity of the chain.
+//!
+//! ### Pallets (Runtime Modules)
+//! - [`pallets/authority-members`](../pallet_authority_members/index.html): Manages the authority members.
+//! - [`pallets/certification`](../pallet_certification/index.html): Handles identity certification.
+//! - [`pallets/distance`](../pallet_distance/index.html): Implements the storage and logic for WoT distance calculations.
+//! - [`pallets/duniter-test-parameters`](../pallet_duniter_test_parameters/index.html): Provides runtime testing parameters.
+//! - [`pallets/duniter-test-parameters/macro`](../pallet_duniter_test_parameters_macro/index.html): Macros to simplify testing configurations.
+//! - [`pallets/duniter-wot`](../pallet_duniter_wot/index.html): Core logic for managing the WoT.
+//! - [`pallets/identity`](../pallet_identity/index.html): Implements identity management.
+//! - [`pallets/membership`](../pallet_membership/index.html): Manages memberships.
+//! - [`pallets/oneshot-account`](../pallet_oneshot_account/index.html): Manages one-shot accounts.
+//! - [`pallets/quota`](../pallet_quota/index.html): Manages users quotas.
+//! - [`pallets/smith-members`](../pallet_smith_members/index.html): Manages smiths.
+//! - [`pallets/universal-dividend`](../pallet_universal_dividend/index.html): Handles the logic for distributing universal dividends.
+//! - [`pallets/upgrade-origin`](../pallet_upgrade_origin/index.html): Ensures secure origins for runtime upgrades.
+//!
+//! ### Shared Primitives
+//! - [`primitives/distance`](../sp_distance/index.html): Shared types and logic for distance evaluations.
+//! - [`primitives/membership`](../sp_membership/index.html): Shared primitives for membership-related operations.
+//!
+//! ### Tooling and Utilities
+//! - [`resources/weight_analyzer`](../weightanalyzer/index.html): Provides tools for analyzing runtime weights.
+//! - [`runtime/common`](../common_runtime/index.html): Shared components and utilities used across multiple runtimes.
+//! - [`runtime/gdev`](../gdev_runtime/index.html): The runtime implementation for the GDEV test network.
+//! - [`runtime/g1`](../g1_runtime/index.html): The runtime implementation for the G1 test network.
+//! - [`runtime/gtest`](../gtest_runtime/index.html): The runtime implementation for the GTEST test network.
+//! - [`xtask`](../xtask/index.html): A custom xtask runner to automate release and testing.
+
 pub mod chain_spec;
 pub mod cli;
 pub mod command;
diff --git a/pallets/README.md b/pallets/README.md
index e25c7907f787bcd0919f56e8379242874624bd07..1c7abcfbbaa5390bd0aa2e25376bb87df9b15346 100644
--- a/pallets/README.md
+++ b/pallets/README.md
@@ -6,20 +6,20 @@ Duniter uses some [parity pallets](https://github.com/duniter/substrate/tree/mas
 
 These pallets are at the core of Duniter/Ğ1 currency
 
-- **`authority-members`** Duniter authorities are not selected with staking but through a smith web of trust.
-- **`certification`** Certifications are the "edges" of Duniter's dynamic directed graph. They mean the acceptation of a Licence.
-- **`duniter-account`** Duniter customized the `AccountData` defined in the `Balances` pallet to introduce a `linked_idty`.
-- **`duniter-wot`** Merges identities, membership, certifications and distance pallets to implement Duniter Web of Trust.
-- **`distance`** Publishes median of distance computation results provided by inherents coming from `distance-oracle` workers.
-- **`identity`** Identities are the "nodes" of Duniter's dynamic directed graph. They are one-to-one mapping to human being.
-- **`membership`** Membership defines the state of identities. They can be member or not of the different WoTs.
-- **`universal-dividend`** UD is at the basis of Ğ1 "libre currency". It is both a kind of "basic income" and a measure unit.
+- **[`authority-members`](https://doc-duniter-org.ipns.pagu.re/pallet_authority_members/index.html)** Duniter authorities are not selected with staking but through a smith web of trust.
+- **[`certification`](https://doc-duniter-org.ipns.pagu.re/pallet_certification/index.html)** Certifications are the "edges" of Duniter's dynamic directed graph. They mean the acceptation of a Licence.
+- **[`duniter-account`](https://doc-duniter-org.ipns.pagu.re/pallet_duniter_account/index.html)** Duniter customized the `AccountData` defined in the `Balances` pallet to introduce a `linked_idty`.
+- **[`duniter-wot`](https://doc-duniter-org.ipns.pagu.re/pallet_duniter_wot/index.html)** Merges identities, membership, certifications and distance pallets to implement Duniter Web of Trust.
+- **[`distance`](https://doc-duniter-org.ipns.pagu.re/pallet_distance/index.html)** Publishes median of distance computation results provided by inherents coming from `distance-oracle` workers.
+- **[`identity`](https://doc-duniter-org.ipns.pagu.re/pallet_identity/index.html)** Identities are the "nodes" of Duniter's dynamic directed graph. They are one-to-one mapping to human being.
+- **[`membership`](https://doc-duniter-org.ipns.pagu.re/pallet_membership/index.html)** Membership defines the state of identities. They can be member or not of the different WoTs.
+- **[`universal-dividend`](https://doc-duniter-org.ipns.pagu.re/pallet_universal_dividend/index.html)** UD is at the basis of Ğ1 "libre currency". It is both a kind of "basic income" and a measure unit.
 
 ## Functional pallets
 
-- **`duniter-test-parameters`** Test parameters only used in ĞDev to allow tweaking parameters more easily.
-- **`offences`** Sorts offences that will be executed by the `authority-members` pallet.
-- **`oneshot-account`** Oneshot accounts are light accounts only used once for anonimity or convenience use case.
-- **`provide-randomness`** Lets blockchain users ask for a verifiable random number.
-- **`session-benchmarking`** Benchmarks the session pallet.
-- **`upgrade-origin`** Allows some origins to dispatch a call as root.
\ No newline at end of file
+- **[`duniter-test-parameters`](https://doc-duniter-org.ipns.pagu.re/pallet_duniter_test_parameters/index.html)** Test parameters only used in ĞDev to allow tweaking parameters more easily.
+- **[`offences`](https://doc-duniter-org.ipns.pagu.re/pallet_offences/index.html)** Sorts offences that will be executed by the `authority-members` pallet.
+- **[`oneshot-account`](https://doc-duniter-org.ipns.pagu.re/pallet_oneshot_account/index.html)** Oneshot accounts are light accounts only used once for anonymity or convenience use case.
+- **[`provide-randomness`](https://doc-duniter-org.ipns.pagu.re/pallet_provide_randomness/index.html)** Lets blockchain users ask for a verifiable random number.
+- **[`session-benchmarking`](https://doc-duniter-org.ipns.pagu.re/pallet_session_benchmarking/index.html)** Benchmarks the session pallet.
+- **[`upgrade-origin`](https://doc-duniter-org.ipns.pagu.re/pallet_upgrade_origin/index.html)** Allows some origins to dispatch a call as root.
diff --git a/pallets/distance/src/benchmarking.rs b/pallets/distance/src/benchmarking.rs
index bd44e676948414b4c674baa3e09b2bd87b33b196..e88e8ec92068a3bfb8420ee06335b5d1fc0e5f8a 100644
--- a/pallets/distance/src/benchmarking.rs
+++ b/pallets/distance/src/benchmarking.rs
@@ -21,7 +21,7 @@ use super::*;
 
 use codec::Encode;
 use frame_benchmarking::v2::*;
-use frame_support::traits::{Get, OnFinalize, OnInitialize};
+use frame_support::traits::{fungible::Mutate, Get, OnFinalize, OnInitialize};
 use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin};
 use scale_info::prelude::vec;
 use sp_runtime::Perbill;
@@ -186,7 +186,7 @@ mod benchmarks {
     #[benchmark]
     fn do_evaluation_success() -> Result<(), BenchmarkError> {
         // Benchmarking do_evaluation in case of a single success.
-        CurrentPoolIndex::<T>::put(0);
+        CurrentPeriodIndex::<T>::put(0);
         // More than membership renewal to avoid antispam
         frame_system::pallet::Pallet::<T>::set_block_number(500_000_000u32.into());
         let idty = T::IdtyIndex::one();
@@ -203,7 +203,7 @@ mod benchmarks {
             .into(),
         );
 
-        CurrentPoolIndex::<T>::put(2);
+        CurrentPeriodIndex::<T>::put(2);
         Pallet::<T>::force_update_evaluation(
             RawOrigin::Root.into(),
             caller,
@@ -230,7 +230,7 @@ mod benchmarks {
     #[benchmark]
     fn do_evaluation_failure() -> Result<(), BenchmarkError> {
         // Benchmarking do_evaluation in case of a single failure.
-        CurrentPoolIndex::<T>::put(0);
+        CurrentPeriodIndex::<T>::put(0);
         // More than membership renewal to avoid antispam
         frame_system::pallet::Pallet::<T>::set_block_number(500_000_000u32.into());
         let idty = T::IdtyIndex::one();
@@ -247,7 +247,7 @@ mod benchmarks {
             .into(),
         );
 
-        CurrentPoolIndex::<T>::put(2);
+        CurrentPeriodIndex::<T>::put(2);
         Pallet::<T>::force_update_evaluation(
             RawOrigin::Root.into(),
             caller,
diff --git a/pallets/distance/src/lib.rs b/pallets/distance/src/lib.rs
index f1866bf17e584a6e5f52a68be25825beb2d0a650..738ee59099fe5be6207f839093888f244d316760 100644
--- a/pallets/distance/src/lib.rs
+++ b/pallets/distance/src/lib.rs
@@ -234,10 +234,10 @@ pub mod pallet {
     #[pallet::storage]
     pub(super) type DidUpdate<T: Config> = StorageValue<_, bool, ValueQuery>;
 
-    /// The current evaluation pool index.
+    /// The current evaluation period index.
     #[pallet::storage]
-    #[pallet::getter(fn current_pool_index)]
-    pub(super) type CurrentPoolIndex<T: Config> = StorageValue<_, u32, ValueQuery>;
+    #[pallet::getter(fn current_period_index)]
+    pub(super) type CurrentPeriodIndex<T: Config> = StorageValue<_, u32, ValueQuery>;
 
     #[pallet::event]
     #[pallet::generate_deposit(pub(super) fn deposit_event)]
@@ -300,7 +300,7 @@ pub mod pallet {
     #[pallet::genesis_build]
     impl<T: Config> BuildGenesisConfig for GenesisConfig<T> {
         fn build(&self) {
-            CurrentPoolIndex::<T>::put(0u32);
+            CurrentPeriodIndex::<T>::put(0u32);
         }
     }
 
@@ -314,10 +314,10 @@ pub mod pallet {
             if block % BlockNumberFor::<T>::one().saturating_mul(T::EvaluationPeriod::get().into())
                 == BlockNumberFor::<T>::zero()
             {
-                let index = (CurrentPoolIndex::<T>::get() + 1) % 3;
-                CurrentPoolIndex::<T>::put(index);
+                let index = CurrentPeriodIndex::<T>::get() + 1;
+                CurrentPeriodIndex::<T>::put(index);
                 weight = weight
-                    .saturating_add(Self::do_evaluation(index))
+                    .saturating_add(Self::do_evaluation(index % 3))
                     .saturating_add(T::DbWeight::get().reads_writes(1, 1));
             }
             weight.saturating_add(<T as pallet::Config>::WeightInfo::on_finalize())
@@ -557,7 +557,7 @@ pub mod pallet {
             who: &T::AccountId,
             idty_index: <T as pallet_identity::Config>::IdtyIndex,
         ) -> Result<(), DispatchError> {
-            Pallet::<T>::mutate_current_pool(CurrentPoolIndex::<T>::get(), |current_pool| {
+            Pallet::<T>::mutate_current_pool(CurrentPeriodIndex::<T>::get() % 3, |current_pool| {
                 // extrinsics are transactional by default, this check might not be needed
                 ensure!(
                     current_pool.evaluations.len() < (MAX_EVALUATIONS_PER_SESSION as usize),
@@ -590,7 +590,7 @@ pub mod pallet {
             evaluator: <T as frame_system::Config>::AccountId,
             computation_result: ComputationResult,
         ) -> DispatchResult {
-            Pallet::<T>::mutate_next_pool(CurrentPoolIndex::<T>::get(), |result_pool| {
+            Pallet::<T>::mutate_next_pool(CurrentPeriodIndex::<T>::get() % 3, |result_pool| {
                 // evaluation must be provided for all identities (no more, no less)
                 ensure!(
                     computation_result.distances.len() == result_pool.evaluations.len(),
diff --git a/pallets/distance/src/tests.rs b/pallets/distance/src/tests.rs
index 4ec3087cbc36f1f10c13e24bfdacbfc40a08c835..ab6c19eaf3033bee047d55bbb53b1a82d144965c 100644
--- a/pallets/distance/src/tests.rs
+++ b/pallets/distance/src/tests.rs
@@ -15,7 +15,7 @@
 // along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>.
 
 use crate::{mock::*, *};
-use frame_support::{assert_noop, assert_ok, traits::Currency};
+use frame_support::{assert_noop, assert_ok, traits::fungible::Mutate};
 
 // allow request distance evaluation for oneself
 #[test]
@@ -23,7 +23,7 @@ fn test_request_distance_evaluation() {
     new_test_ext().execute_with(|| {
         run_to_block(1);
         // give enough for reserve
-        Balances::make_free_balance_be(&1, 10_000);
+        Balances::set_balance(&1, 10_000);
 
         // call request
         assert_ok!(Distance::request_distance_evaluation(
@@ -45,7 +45,7 @@ fn test_request_distance_evaluation_for() {
     new_test_ext().execute_with(|| {
         run_to_block(1);
         // give enough for reserve
-        Balances::make_free_balance_be(&1, 10_000);
+        Balances::set_balance(&1, 10_000);
         assert_ok!(Identity::create_identity(RuntimeOrigin::signed(1), 5));
         assert_ok!(Identity::confirm_identity(
             RuntimeOrigin::signed(5),
@@ -73,7 +73,7 @@ fn test_request_distance_evaluation_non_member() {
     new_test_ext().execute_with(|| {
         run_to_block(1);
         // give enough for reserve
-        Balances::make_free_balance_be(&5, 10_000);
+        Balances::set_balance(&5, 10_000);
 
         assert_noop!(
             Distance::request_distance_evaluation_for(RuntimeOrigin::signed(5), 1),
@@ -93,7 +93,7 @@ fn test_request_distance_evaluation_twice() {
     new_test_ext().execute_with(|| {
         run_to_block(1);
         // give enough for reserve
-        Balances::make_free_balance_be(&1, 10_000);
+        Balances::set_balance(&1, 10_000);
 
         assert_ok!(Distance::request_distance_evaluation(
             RuntimeOrigin::signed(1)
diff --git a/pallets/quota/src/benchmarking.rs b/pallets/quota/src/benchmarking.rs
index 24dcd895e3065766c64472b68d960538e3c44dfe..b34678f80d2b8762fcb7c3a3ba71313413b971de 100644
--- a/pallets/quota/src/benchmarking.rs
+++ b/pallets/quota/src/benchmarking.rs
@@ -18,6 +18,7 @@
 
 use super::*;
 use frame_benchmarking::{account, v2::*};
+use frame_support::traits::fungible::Mutate;
 use sp_runtime::traits::One;
 
 fn assert_has_event<T: Config>(generic_event: <T as Config>::RuntimeEvent) {
@@ -98,7 +99,7 @@ mod benchmarks {
                 amount: 10u64.into(),
             },
         );
-        let _ = CurrencyOf::<T>::make_free_balance_be(&T::RefundAccount::get(), u32::MAX.into());
+        let _ = CurrencyOf::<T>::set_balance(&T::RefundAccount::get(), u32::MAX.into());
         // The worst-case scenario is when the refund fails
         // and can only be triggered if the account is dead,
         // in this case by having no balance in the account.
@@ -119,7 +120,7 @@ mod benchmarks {
     #[benchmark]
     fn do_refund() {
         let account: T::AccountId = account("Alice", 1, 1);
-        let _ = CurrencyOf::<T>::make_free_balance_be(&T::RefundAccount::get(), u32::MAX.into());
+        let _ = CurrencyOf::<T>::set_balance(&T::RefundAccount::get(), u32::MAX.into());
         // The worst-case scenario is when the refund fails
         // and can only be triggered if the account is dead,
         // in this case by having no balance in the account.
@@ -161,7 +162,7 @@ mod benchmarks {
                 amount: 10u64.into(),
             },
         );
-        let _ = CurrencyOf::<T>::make_free_balance_be(&T::RefundAccount::get(), u32::MAX.into());
+        let _ = CurrencyOf::<T>::set_balance(&T::RefundAccount::get(), u32::MAX.into());
         // The worst-case scenario is when the refund fails
         // and can only be triggered if the account is dead,
         // in this case by having no balance in the account.
diff --git a/pallets/quota/src/tests.rs b/pallets/quota/src/tests.rs
index 40f7469286abeda7cad25e159294f1b132f18f84..e5e080e4355a1c90051efe440e2700e8f969f0f4 100644
--- a/pallets/quota/src/tests.rs
+++ b/pallets/quota/src/tests.rs
@@ -15,7 +15,7 @@
 // along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>.
 
 use crate::{mock::*, Weight};
-use frame_support::traits::Currency;
+use frame_support::traits::fungible::Mutate;
 use sp_core::Get;
 
 // Note: values for reload rate and max quota defined in mock file
@@ -150,10 +150,10 @@ fn test_process_refund_queue() {
     .execute_with(|| {
         run_to_block(5);
         // give enough currency to accounts and treasury and double check
-        Balances::make_free_balance_be(&account(1), 1000);
-        Balances::make_free_balance_be(&account(2), 1000);
-        Balances::make_free_balance_be(&account(3), 1000);
-        Balances::make_free_balance_be(
+        Balances::set_balance(&account(1), 1000);
+        Balances::set_balance(&account(2), 1000);
+        Balances::set_balance(&account(3), 1000);
+        Balances::set_balance(
             &<Test as pallet_quota::Config>::RefundAccount::get(),
             10_000,
         );
@@ -208,8 +208,8 @@ fn test_not_enough_treasury() {
     })
     .execute_with(|| {
         run_to_block(5);
-        Balances::make_free_balance_be(&account(1), 1000);
-        Balances::make_free_balance_be(&<Test as pallet_quota::Config>::RefundAccount::get(), 1200);
+        Balances::set_balance(&account(1), 1000);
+        Balances::set_balance(&<Test as pallet_quota::Config>::RefundAccount::get(), 1200);
         Quota::queue_refund(pallet_quota::Refund {
             account: account(1),
             identity: 1,
@@ -246,10 +246,10 @@ fn test_process_refund_queue_weight_with_quotas() {
     .execute_with(|| {
         run_to_block(15);
         // give enough currency to accounts and treasury and double check
-        Balances::make_free_balance_be(&account(1), 1000);
-        Balances::make_free_balance_be(&account(2), 1000);
-        Balances::make_free_balance_be(&account(3), 1000);
-        Balances::make_free_balance_be(
+        Balances::set_balance(&account(1), 1000);
+        Balances::set_balance(&account(2), 1000);
+        Balances::set_balance(&account(3), 1000);
+        Balances::set_balance(
             &<Test as pallet_quota::Config>::RefundAccount::get(),
             10_000,
         );
@@ -314,10 +314,10 @@ fn test_process_refund_queue_weight_no_quotas() {
     .execute_with(|| {
         run_to_block(15);
         // give enough currency to accounts and treasury and double check
-        Balances::make_free_balance_be(&account(1), 1000);
-        Balances::make_free_balance_be(&account(2), 1000);
-        Balances::make_free_balance_be(&account(3), 1000);
-        Balances::make_free_balance_be(
+        Balances::set_balance(&account(1), 1000);
+        Balances::set_balance(&account(2), 1000);
+        Balances::set_balance(&account(3), 1000);
+        Balances::set_balance(
             &<Test as pallet_quota::Config>::RefundAccount::get(),
             10_000,
         );
diff --git a/resources/debian/duniter.sysusers b/resources/debian/duniter.sysusers
new file mode 100644
index 0000000000000000000000000000000000000000..53040c301ea7c9bdb8d7ed67d981a83344386f2a
--- /dev/null
+++ b/resources/debian/duniter.sysusers
@@ -0,0 +1,2 @@
+#Type	Name	ID	GECOS			Home directory		Shell
+u		duniter	-	"Duniter user"	/var/lib/duniter	/sbin/nologin
diff --git a/resources/metadata.scale b/resources/metadata.scale
index 945a23e9cc05e24d7f4eced0da1216cf5843b4db..db221c7f4528732b3c91dd29a07b5d5d748e2599 100644
Binary files a/resources/metadata.scale and b/resources/metadata.scale differ
diff --git a/runtime/README.md b/runtime/README.md
index 4f74e8beafea64b015299da196c4d23e0941dc20..88b4bdda55ccd9c30b96a8f1fe12853a08621106 100644
--- a/runtime/README.md
+++ b/runtime/README.md
@@ -2,7 +2,7 @@
 
 Duniter client can run several runtimes.
 
-- ĞDev is for development purpose
-- ĞTest is to prepare Ğ1 migration and test features before deploying on Ǧ1
-- Ğ1 is the production currency
+- [ĞDev](https://doc-duniter-org.ipns.pagu.re/gdev_runtime/index.html) is for development purpose
+- [ĞTest](https://doc-duniter-org.ipns.pagu.re/gtest_runtime/index.html) is to prepare Ğ1 migration and test features before deploying on Ǧ1
+- [Ğ1](https://doc-duniter-org.ipns.pagu.re/g1_runtime/index.html) is the production currency
 
diff --git a/runtime/common/src/handlers.rs b/runtime/common/src/handlers.rs
index 197e3574378589bc969d502d1d81976033de72d8..ff9aba8518717b9418d79b400f8baf7436c15219 100644
--- a/runtime/common/src/handlers.rs
+++ b/runtime/common/src/handlers.rs
@@ -15,7 +15,10 @@
 // along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>.
 
 use super::{entities::*, AccountId, IdtyIndex};
-use frame_support::{pallet_prelude::Weight, traits::UnfilteredDispatchable};
+use frame_support::{
+    pallet_prelude::Weight,
+    traits::{Imbalance, UnfilteredDispatchable},
+};
 use pallet_smith_members::SmithRemovalReason;
 use sp_core::Get;
 
@@ -97,7 +100,7 @@ impl<
 /// done at the handler level.
 pub struct OnRemoveMembershipHandler<Runtime>(core::marker::PhantomData<Runtime>);
 impl<
-        Runtime: frame_system::Config<AccountId = AccountId>
+        Runtime: frame_system::Config
             + pallet_identity::Config<IdtyData = IdtyData, IdtyIndex = IdtyIndex>
             + pallet_smith_members::Config<IdtyIndex = IdtyIndex>
             + pallet_duniter_wot::Config
@@ -178,3 +181,25 @@ impl<
         !pallet_authority_members::Pallet::<Runtime>::online().contains(idty_index)
     }
 }
+
+/// Runtime handler for managing fee handling by transferring unbalanced amounts to a treasury account.
+pub struct HandleFees<TreasuryAccount, Balances>(
+    frame_support::pallet_prelude::PhantomData<TreasuryAccount>,
+    frame_support::pallet_prelude::PhantomData<Balances>,
+);
+type CreditOf<Balances> = frame_support::traits::tokens::fungible::Credit<AccountId, Balances>;
+impl<TreasuryAccount, Balances> frame_support::traits::OnUnbalanced<CreditOf<Balances>>
+    for HandleFees<TreasuryAccount, Balances>
+where
+    TreasuryAccount: Get<AccountId>,
+    Balances: frame_support::traits::fungible::Balanced<AccountId>,
+{
+    fn on_nonzero_unbalanced(amount: CreditOf<Balances>) {
+        // fee is moved to treasury
+        let _ = Balances::deposit(
+            &TreasuryAccount::get(),
+            amount.peek(),
+            frame_support::traits::tokens::Precision::Exact,
+        );
+    }
+}
diff --git a/runtime/common/src/pallets_config.rs b/runtime/common/src/pallets_config.rs
index 7f9ac91fbc07de8a4b347d6960504b93451bf288..a84ad432bfb93be73e97684dec87b905391b3474 100644
--- a/runtime/common/src/pallets_config.rs
+++ b/runtime/common/src/pallets_config.rs
@@ -104,30 +104,22 @@ macro_rules! pallets_config {
 
         impl pallet_duniter_account::Config for Runtime {
             // does currency adapter in any case, but adds "refund with quota" feature
-            type InnerOnChargeTransaction = FungibleAdapter<Balances, HandleFees>;
+            type InnerOnChargeTransaction =
+                FungibleAdapter<Balances, HandleFees<TreasuryAccount, Balances>>;
             type Refund = Quota;
             type RuntimeEvent = RuntimeEvent;
             type WeightInfo = weights::pallet_duniter_account::WeightInfo<Runtime>;
         }
 
-        // QUOTA //
-        pub struct TreasuryAccountId;
-        impl frame_support::pallet_prelude::Get<AccountId> for TreasuryAccountId {
-            fn get() -> AccountId {
-                // TODO optimize: make this a constant
-                // calling Treasury.account_id() actually requires computation
-                Treasury::account_id()
-            }
-        }
         parameter_types! {
-                    pub const ReloadRate: BlockNumber = 1 * HOURS; // faster than DAYS
-                    pub const MaxQuota: Balance = 1000; // 10 ĞD
-                    pub const MaxNominators: u32 = 64;
-        pub TreasuryAccount: AccountId = Treasury::account_id(); // TODO
-                }
+            pub const ReloadRate: BlockNumber = 1 * HOURS; // faster than DAYS
+            pub const MaxQuota: Balance = 1000; // 10 ĞD
+            pub const MaxNominators: u32 = 64;
+            pub TreasuryAccount: AccountId = Treasury::account_id();
+        }
         impl pallet_quota::Config for Runtime {
             type MaxQuota = MaxQuota;
-            type RefundAccount = TreasuryAccountId;
+            type RefundAccount = TreasuryAccount;
             type ReloadRate = ReloadRate;
             type RuntimeEvent = RuntimeEvent;
             type WeightInfo = weights::pallet_quota::WeightInfo<Runtime>;
@@ -162,7 +154,7 @@ macro_rules! pallets_config {
         impl pallet_balances::Config for Runtime {
             type AccountStore = Account;
             type Balance = Balance;
-            type DustRemoval = HandleFees;
+            type DustRemoval = HandleFees<TreasuryAccount, Balances>;
             type ExistentialDeposit = ExistentialDeposit;
             type FreezeIdentifier = ();
             type MaxFreezes = frame_support::pallet_prelude::ConstU32<0>;
@@ -175,20 +167,6 @@ macro_rules! pallets_config {
             type WeightInfo = weights::pallet_balances::WeightInfo<Runtime>;
         }
 
-        type CreditOf = frame_support::traits::tokens::fungible::Credit<AccountId, Balances>;
-        pub struct HandleFees;
-        impl frame_support::traits::OnUnbalanced<CreditOf> for HandleFees {
-            fn on_nonzero_unbalanced(amount: CreditOf) {
-                // fee is moved to treasury
-                let _ = Balances::deposit(
-                    &Treasury::account_id(),
-                    amount.peek(),
-                    frame_support::traits::tokens::Precision::Exact,
-                );
-            }
-        }
-        pub struct OnChargeTransaction;
-
         parameter_types! {
         pub Target: Perquintill = Perquintill::from_percent(25);
         pub MaxMultiplier: sp_runtime::FixedU128 = 10.into();
@@ -336,7 +314,7 @@ macro_rules! pallets_config {
             type GetCurrentEpochIndex = GetCurrentEpochIndex<Self>;
             type MaxRequests = frame_support::traits::ConstU32<100>;
             type OnFilledRandomness = ();
-            type OnUnbalanced = HandleFees;
+            type OnUnbalanced = HandleFees<TreasuryAccount, Balances>;
             type ParentBlockRandomness = pallet_babe::ParentBlockRandomness<Self>;
             type RandomnessFromOneEpochAgo = pallet_babe::RandomnessFromOneEpochAgo<Self>;
             type RequestPrice = frame_support::traits::ConstU64<2_000>;
@@ -422,19 +400,12 @@ macro_rules! pallets_config {
 
         // UNIVERSAL DIVIDEND //
 
-        pub struct MembersCount;
-        impl frame_support::pallet_prelude::Get<Balance> for MembersCount {
-            fn get() -> Balance {
-                <Membership as sp_membership::traits::MembersCount>::members_count() as Balance
-            }
-        }
-
         impl pallet_universal_dividend::Config for Runtime {
             type Currency = Balances;
             #[cfg(feature = "runtime-benchmarks")]
             type IdtyAttr = Identity;
             type MaxPastReeval = frame_support::traits::ConstU32<160>;
-            type MembersCount = MembersCount;
+            type MembersCount = common_runtime::providers::MembersCount<Membership>;
             type MembersStorage = common_runtime::providers::UdMembersStorage<Runtime>;
             type MomentIntoBalance = sp_runtime::traits::ConvertInto;
             type RuntimeEvent = RuntimeEvent;
@@ -454,7 +425,6 @@ macro_rules! pallets_config {
 
         parameter_types! {
             pub const ValidationPeriod: BlockNumber = 2 * MONTHS;
-            pub const DeletionPeriod: BlockNumber = 10 * YEARS;
         }
         impl pallet_identity::Config for Runtime {
             type AccountLinker = Account;
@@ -520,7 +490,7 @@ macro_rules! pallets_config {
             type EvaluationPrice = frame_support::traits::ConstU64<1000>;
             type MaxRefereeDistance = MaxRefereeDistance;
             type MinAccessibleReferees = MinAccessibleReferees;
-            type OnUnbalanced = HandleFees;
+            type OnUnbalanced = HandleFees<TreasuryAccount, Balances>;
             type OnValidDistanceStatus = Wot;
             type RuntimeEvent = RuntimeEvent;
             type RuntimeHoldReason = RuntimeHoldReason;
diff --git a/runtime/common/src/providers.rs b/runtime/common/src/providers.rs
index 829be1a07e64d033fd9f68b85c31db1f0612a670..015043f01480ff7b71ba9434ab4b3a4ab0b6b181 100644
--- a/runtime/common/src/providers.rs
+++ b/runtime/common/src/providers.rs
@@ -14,35 +14,36 @@
 // You should have received a copy of the GNU Affero General Public License
 // along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>.
 
-use crate::{entities::IdtyData, AccountId, IdtyIndex};
+use crate::{entities::IdtyData, AccountId, Balance, IdtyIndex};
 use core::marker::PhantomData;
 use pallet_universal_dividend::FirstEligibleUd;
 
+/// A provider for converting IdtyIndex to associated AccountId.
 pub struct IdentityAccountIdProvider<Runtime>(PhantomData<Runtime>);
-
-impl<
-        Runtime: frame_system::Config<AccountId = AccountId>
-            + pallet_identity::Config<IdtyIndex = IdtyIndex>,
-    > sp_runtime::traits::Convert<IdtyIndex, Option<AccountId>>
+impl<Runtime> sp_runtime::traits::Convert<IdtyIndex, Option<AccountId>>
     for IdentityAccountIdProvider<Runtime>
+where
+    Runtime: frame_system::Config<AccountId = AccountId>
+        + pallet_identity::Config<IdtyIndex = IdtyIndex>,
 {
     fn convert(idty_index: IdtyIndex) -> Option<AccountId> {
         pallet_identity::Pallet::<Runtime>::identity(idty_index).map(|idty| idty.owner_key)
     }
 }
 
+/// A provider for converting AccountId to their associated IdtyIndex.
 pub struct IdentityIndexOf<T: pallet_identity::Config>(PhantomData<T>);
-
-impl<T: pallet_identity::Config> sp_runtime::traits::Convert<T::AccountId, Option<T::IdtyIndex>>
-    for IdentityIndexOf<T>
+impl<T> sp_runtime::traits::Convert<T::AccountId, Option<T::IdtyIndex>> for IdentityIndexOf<T>
+where
+    T: pallet_identity::Config,
 {
     fn convert(account_id: T::AccountId) -> Option<T::IdtyIndex> {
         pallet_identity::Pallet::<T>::identity_index_of(account_id)
     }
 }
 
+/// A provider associating an AccountId to their first eligible UD creation time.
 pub struct UdMembersStorage<T: pallet_identity::Config>(PhantomData<T>);
-
 impl<T> frame_support::traits::StoredMap<AccountId, FirstEligibleUd> for UdMembersStorage<T>
 where
     T: frame_system::Config<AccountId = AccountId>,
@@ -71,12 +72,12 @@ where
     }
 }
 
+/// A provider to WoT membership status based on an IdtyIndex.
 pub struct IsWoTMemberProvider<T>(PhantomData<T>);
-impl<T: pallet_smith_members::Config>
-    sp_runtime::traits::IsMember<<T as pallet_membership::Config>::IdtyId>
+impl<T> sp_runtime::traits::IsMember<<T as pallet_membership::Config>::IdtyId>
     for IsWoTMemberProvider<T>
 where
-    T: pallet_distance::Config + pallet_membership::Config,
+    T: pallet_distance::Config + pallet_membership::Config + pallet_smith_members::Config,
 {
     fn is_member(idty_id: &T::IdtyId) -> bool {
         pallet_membership::Pallet::<T>::is_member(idty_id)
@@ -116,3 +117,14 @@ macro_rules! impl_benchmark_setup_handler {
 
 #[cfg(feature = "runtime-benchmarks")]
 impl_benchmark_setup_handler!(pallet_membership::SetupBenchmark<<T as pallet_identity::Config>::IdtyIndex, T::AccountId>);
+
+/// A provider for retrieving the number of accounts allowed to create the universal dividend.
+pub struct MembersCount<T>(PhantomData<T>);
+impl<T> frame_support::pallet_prelude::Get<Balance> for MembersCount<T>
+where
+    T: sp_membership::traits::MembersCount,
+{
+    fn get() -> Balance {
+        T::members_count() as Balance
+    }
+}
diff --git a/runtime/g1/src/lib.rs b/runtime/g1/src/lib.rs
index c2b192a2403bec3e99bacba4861cb9b39973d2ce..8dccda2f1d873a1b5e7b754f712e7b69b7cf16b1 100644
--- a/runtime/g1/src/lib.rs
+++ b/runtime/g1/src/lib.rs
@@ -35,10 +35,7 @@ pub use common_runtime::{
     constants::*, entities::*, handlers::*, AccountId, Address, Balance, BlockNumber,
     FullIdentificationOfImpl, GetCurrentEpochIndex, Hash, Header, IdtyIndex, Index, Signature,
 };
-use frame_support::{
-    traits::{fungible::Balanced, Contains, Imbalance},
-    PalletId,
-};
+use frame_support::{traits::Contains, PalletId};
 pub use frame_system::Call as SystemCall;
 use frame_system::EnsureRoot;
 pub use pallet_balances::Call as BalancesCall;
diff --git a/runtime/g1/src/parameters.rs b/runtime/g1/src/parameters.rs
index ee768989c40f93e4dcf939b08a1ddc48df4462fa..d787eb5bf38e58c37ed0bc6d078f449c9617d983 100644
--- a/runtime/g1/src/parameters.rs
+++ b/runtime/g1/src/parameters.rs
@@ -112,6 +112,7 @@ parameter_types! {
     pub const IdtyCreationPeriod: BlockNumber = MONTHS;
     pub const ValidationPeriod: BlockNumber = YEARS;
     pub const AutorevocationPeriod: BlockNumber = YEARS;
+    pub const DeletionPeriod: BlockNumber = 10 * YEARS;
 }
 
 // Membership
diff --git a/runtime/g1/src/weights/block_weights.rs b/runtime/g1/src/weights/block_weights.rs
index 26de13e24044335419dca1b1badc6073be079502..dbe74e93346746f29dec02d0428b30540401949c 100644
--- a/runtime/g1/src/weights/block_weights.rs
+++ b/runtime/g1/src/weights/block_weights.rs
@@ -1,6 +1,6 @@
 
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28 (Y/M/D)
+//! DATE: 2024-11-14 (Y/M/D)
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //!
 //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Ğ1 Local Testnet`
@@ -26,17 +26,17 @@ parameter_types! {
 	/// Calculated by multiplying the *Average* with `1.0` and adding `0`.
 	///
 	/// Stats nanoseconds:
-	///   Min, Max: 129_468, 175_220
-	///   Average:  138_503
-	///   Median:   135_758
-	///   Std-Dev:  7207.66
+	///   Min, Max: 118_657, 202_413
+	///   Average:  131_010
+	///   Median:   127_750
+	///   Std-Dev:  10272.54
 	///
 	/// Percentiles nanoseconds:
-	///   99th: 160_953
-	///   95th: 153_494
-	///   75th: 138_856
+	///   99th: 167_754
+	///   95th: 141_223
+	///   75th: 133_515
 	pub const BlockExecutionWeight: Weight =
-		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(138_503), 0);
+		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(131_010), 0);
 }
 
 #[cfg(test)]
diff --git a/runtime/g1/src/weights/extrinsic_weights.rs b/runtime/g1/src/weights/extrinsic_weights.rs
index ffb86ba6bd49875ec2b855d84ae9cec7d4c932c3..1e6b17d1244f4c6edcc83573d237d716880cbd59 100644
--- a/runtime/g1/src/weights/extrinsic_weights.rs
+++ b/runtime/g1/src/weights/extrinsic_weights.rs
@@ -1,6 +1,6 @@
 
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28 (Y/M/D)
+//! DATE: 2024-11-14 (Y/M/D)
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //!
 //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Ğ1 Local Testnet`
@@ -26,17 +26,17 @@ parameter_types! {
 	/// Calculated by multiplying the *Average* with `1.0` and adding `0`.
 	///
 	/// Stats nanoseconds:
-	///   Min, Max: 88_837, 96_248
-	///   Average:  89_181
-	///   Median:   89_030
-	///   Std-Dev:  771.44
+	///   Min, Max: 88_059, 93_981
+	///   Average:  88_294
+	///   Median:   88_233
+	///   Std-Dev:  578.38
 	///
 	/// Percentiles nanoseconds:
-	///   99th: 91_250
-	///   95th: 89_630
-	///   75th: 89_118
+	///   99th: 88_574
+	///   95th: 88_428
+	///   75th: 88_275
 	pub const ExtrinsicBaseWeight: Weight =
-		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(89_181), 0);
+		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(88_294), 0);
 }
 
 #[cfg(test)]
diff --git a/runtime/g1/src/weights/frame_benchmarking_baseline.rs b/runtime/g1/src/weights/frame_benchmarking_baseline.rs
index 8a8288a6863aef1a91cdadd31350331a567e80c3..8a918a809797592e1640a6c0a4c7303639b5c6c0 100644
--- a/runtime/g1/src/weights/frame_benchmarking_baseline.rs
+++ b/runtime/g1/src/weights/frame_benchmarking_baseline.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `frame_benchmarking::baseline`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -52,8 +52,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 88_000 picoseconds.
-		Weight::from_parts(139_092, 0)
+		// Minimum execution time: 98_000 picoseconds.
+		Weight::from_parts(126_869, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -61,8 +61,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 88_000 picoseconds.
-		Weight::from_parts(140_655, 0)
+		// Minimum execution time: 98_000 picoseconds.
+		Weight::from_parts(127_293, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -70,8 +70,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 89_000 picoseconds.
-		Weight::from_parts(141_340, 0)
+		// Minimum execution time: 100_000 picoseconds.
+		Weight::from_parts(130_804, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -79,16 +79,16 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 89_000 picoseconds.
-		Weight::from_parts(140_451, 0)
+		// Minimum execution time: 98_000 picoseconds.
+		Weight::from_parts(125_049, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn hashing() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 19_737_124_000 picoseconds.
-		Weight::from_parts(19_774_281_000, 0)
+		// Minimum execution time: 20_335_062_000 picoseconds.
+		Weight::from_parts(20_372_537_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 100]`.
@@ -96,10 +96,10 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 97_000 picoseconds.
-		Weight::from_parts(130_000, 0)
+		// Minimum execution time: 108_000 picoseconds.
+		Weight::from_parts(26_639_536, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 13_189
-			.saturating_add(Weight::from_parts(34_360_531, 0).saturating_mul(i.into()))
+			// Standard Error: 11_426
+			.saturating_add(Weight::from_parts(31_161_299, 0).saturating_mul(i.into()))
 	}
 }
diff --git a/runtime/g1/src/weights/frame_system.rs b/runtime/g1/src/weights/frame_system.rs
index 80308a3d8a52df1baaa700d089565e3196b5ad6e..7f78b58c0533a0fc6035f5c6c8ff340b7b29c932 100644
--- a/runtime/g1/src/weights/frame_system.rs
+++ b/runtime/g1/src/weights/frame_system.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `frame_system`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -52,22 +52,22 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_813_000 picoseconds.
-		Weight::from_parts(1_917_000, 0)
+		// Minimum execution time: 1_773_000 picoseconds.
+		Weight::from_parts(1_904_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(256, 0).saturating_mul(b.into()))
+			.saturating_add(Weight::from_parts(258, 0).saturating_mul(b.into()))
 	}
 	/// The range of component `b` is `[0, 3932160]`.
 	fn remark_with_event(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_949_000 picoseconds.
-		Weight::from_parts(4_989_000, 0)
+		// Minimum execution time: 4_939_000 picoseconds.
+		Weight::from_parts(5_174_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(1_040, 0).saturating_mul(b.into()))
+			.saturating_add(Weight::from_parts(1_035, 0).saturating_mul(b.into()))
 	}
 	/// Storage: `System::Digest` (r:1 w:1)
 	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
@@ -77,8 +77,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `1485`
-		// Minimum execution time: 3_322_000 picoseconds.
-		Weight::from_parts(3_585_000, 0)
+		// Minimum execution time: 3_132_000 picoseconds.
+		Weight::from_parts(3_669_000, 0)
 			.saturating_add(Weight::from_parts(0, 1485))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -91,8 +91,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `1485`
-		// Minimum execution time: 77_755_928_000 picoseconds.
-		Weight::from_parts(78_851_658_000, 0)
+		// Minimum execution time: 75_303_852_000 picoseconds.
+		Weight::from_parts(75_919_531_000, 0)
 			.saturating_add(Weight::from_parts(0, 1485))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -104,11 +104,11 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_891_000 picoseconds.
-		Weight::from_parts(1_978_000, 0)
+		// Minimum execution time: 1_753_000 picoseconds.
+		Weight::from_parts(1_923_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 516
-			.saturating_add(Weight::from_parts(564_917, 0).saturating_mul(i.into()))
+			// Standard Error: 699
+			.saturating_add(Weight::from_parts(570_505, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
 	/// Storage: `Skipped::Metadata` (r:0 w:0)
@@ -118,11 +118,11 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_851_000 picoseconds.
-		Weight::from_parts(1_964_000, 0)
+		// Minimum execution time: 1_850_000 picoseconds.
+		Weight::from_parts(2_010_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 635
-			.saturating_add(Weight::from_parts(453_107, 0).saturating_mul(i.into()))
+			// Standard Error: 734
+			.saturating_add(Weight::from_parts(454_777, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
 	/// Storage: `Skipped::Metadata` (r:0 w:0)
@@ -132,11 +132,11 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + p * (69 ±0)`
 		//  Estimated: `76 + p * (70 ±0)`
-		// Minimum execution time: 3_325_000 picoseconds.
-		Weight::from_parts(3_537_000, 0)
+		// Minimum execution time: 3_403_000 picoseconds.
+		Weight::from_parts(3_518_000, 0)
 			.saturating_add(Weight::from_parts(0, 76))
-			// Standard Error: 702
-			.saturating_add(Weight::from_parts(1_072_851, 0).saturating_mul(p.into()))
+			// Standard Error: 678
+			.saturating_add(Weight::from_parts(1_034_294, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into())))
 			.saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into()))
@@ -147,8 +147,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_974_000 picoseconds.
-		Weight::from_parts(10_559_000, 0)
+		// Minimum execution time: 7_815_000 picoseconds.
+		Weight::from_parts(8_763_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -162,8 +162,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `22`
 		//  Estimated: `1518`
-		// Minimum execution time: 81_652_777_000 picoseconds.
-		Weight::from_parts(82_830_549_000, 0)
+		// Minimum execution time: 79_593_300_000 picoseconds.
+		Weight::from_parts(80_215_334_000, 0)
 			.saturating_add(Weight::from_parts(0, 1518))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/g1/src/weights/pallet_authority_members.rs b/runtime/g1/src/weights/pallet_authority_members.rs
index f83e64493f4685cec38a9593646a79f462f8be93..54f63fd55a26d5167c738de285593a4a5b354df3 100644
--- a/runtime/g1/src/weights/pallet_authority_members.rs
+++ b/runtime/g1/src/weights/pallet_authority_members.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_authority_members`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -61,11 +61,11 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof: `AuthorityMembers::OnlineAuthorities` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn go_offline() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `933`
-		//  Estimated: `4398`
-		// Minimum execution time: 25_662_000 picoseconds.
-		Weight::from_parts(26_455_000, 0)
-			.saturating_add(Weight::from_parts(0, 4398))
+		//  Measured:  `900`
+		//  Estimated: `4365`
+		// Minimum execution time: 25_414_000 picoseconds.
+		Weight::from_parts(26_305_000, 0)
+			.saturating_add(Weight::from_parts(0, 4365))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -87,11 +87,11 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof: `AuthorityMembers::OnlineAuthorities` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn go_online() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1389`
-		//  Estimated: `4854`
-		// Minimum execution time: 34_895_000 picoseconds.
-		Weight::from_parts(36_387_000, 0)
-			.saturating_add(Weight::from_parts(0, 4854))
+		//  Measured:  `1356`
+		//  Estimated: `4821`
+		// Minimum execution time: 33_882_000 picoseconds.
+		Weight::from_parts(35_734_000, 0)
+			.saturating_add(Weight::from_parts(0, 4821))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -109,11 +109,11 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof: `AuthorityMembers::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn set_session_keys() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1838`
-		//  Estimated: `12728`
-		// Minimum execution time: 45_607_000 picoseconds.
-		Weight::from_parts(47_059_000, 0)
-			.saturating_add(Weight::from_parts(0, 12728))
+		//  Measured:  `1805`
+		//  Estimated: `12695`
+		// Minimum execution time: 45_254_000 picoseconds.
+		Weight::from_parts(47_222_000, 0)
+			.saturating_add(Weight::from_parts(0, 12695))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -135,8 +135,8 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `847`
 		//  Estimated: `4312`
-		// Minimum execution time: 38_928_000 picoseconds.
-		Weight::from_parts(41_019_000, 0)
+		// Minimum execution time: 38_863_000 picoseconds.
+		Weight::from_parts(40_495_000, 0)
 			.saturating_add(Weight::from_parts(0, 4312))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(10))
@@ -147,8 +147,8 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `199`
 		//  Estimated: `1684`
-		// Minimum execution time: 9_188_000 picoseconds.
-		Weight::from_parts(9_497_000, 0)
+		// Minimum execution time: 9_322_000 picoseconds.
+		Weight::from_parts(9_735_000, 0)
 			.saturating_add(Weight::from_parts(0, 1684))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/g1/src/weights/pallet_balances.rs b/runtime/g1/src/weights/pallet_balances.rs
index 0c2f4ba2fa86fe961ab5145b2b567230d47ad41d..8fbefbce0a537b382446bc832631ae2dbe97906d 100644
--- a/runtime/g1/src/weights/pallet_balances.rs
+++ b/runtime/g1/src/weights/pallet_balances.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_balances`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `63`
 		//  Estimated: `6126`
-		// Minimum execution time: 50_937_000 picoseconds.
-		Weight::from_parts(52_205_000, 0)
+		// Minimum execution time: 51_075_000 picoseconds.
+		Weight::from_parts(51_987_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -65,8 +65,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3558`
-		// Minimum execution time: 31_621_000 picoseconds.
-		Weight::from_parts(32_543_000, 0)
+		// Minimum execution time: 30_866_000 picoseconds.
+		Weight::from_parts(32_087_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -77,8 +77,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `134`
 		//  Estimated: `3558`
-		// Minimum execution time: 11_260_000 picoseconds.
-		Weight::from_parts(11_974_000, 0)
+		// Minimum execution time: 11_418_000 picoseconds.
+		Weight::from_parts(11_998_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -89,8 +89,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `134`
 		//  Estimated: `3558`
-		// Minimum execution time: 17_113_000 picoseconds.
-		Weight::from_parts(18_224_000, 0)
+		// Minimum execution time: 17_170_000 picoseconds.
+		Weight::from_parts(18_124_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -101,8 +101,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `126`
 		//  Estimated: `8694`
-		// Minimum execution time: 53_051_000 picoseconds.
-		Weight::from_parts(54_448_000, 0)
+		// Minimum execution time: 51_774_000 picoseconds.
+		Weight::from_parts(53_796_000, 0)
 			.saturating_add(Weight::from_parts(0, 8694))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -113,8 +113,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3558`
-		// Minimum execution time: 38_410_000 picoseconds.
-		Weight::from_parts(39_213_000, 0)
+		// Minimum execution time: 38_583_000 picoseconds.
+		Weight::from_parts(39_576_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -125,8 +125,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `134`
 		//  Estimated: `3558`
-		// Minimum execution time: 14_264_000 picoseconds.
-		Weight::from_parts(17_888_000, 0)
+		// Minimum execution time: 14_269_000 picoseconds.
+		Weight::from_parts(15_094_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -135,8 +135,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_363_000 picoseconds.
-		Weight::from_parts(5_692_000, 0)
+		// Minimum execution time: 5_455_000 picoseconds.
+		Weight::from_parts(5_654_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `System::Account` (r:1 w:1)
@@ -145,8 +145,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `63`
 		//  Estimated: `3558`
-		// Minimum execution time: 36_395_000 picoseconds.
-		Weight::from_parts(37_277_000, 0)
+		// Minimum execution time: 35_971_000 picoseconds.
+		Weight::from_parts(37_325_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -155,8 +155,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 16_496_000 picoseconds.
-		Weight::from_parts(16_731_000, 0)
+		// Minimum execution time: 16_430_000 picoseconds.
+		Weight::from_parts(16_934_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/runtime/g1/src/weights/pallet_certification.rs b/runtime/g1/src/weights/pallet_certification.rs
index 57c10010ecfa398cc93964ee49984c525e8a0b1e..9b40f1ab37e273f17ab497b9d7e33a201f161f63 100644
--- a/runtime/g1/src/weights/pallet_certification.rs
+++ b/runtime/g1/src/weights/pallet_certification.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_certification`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -61,8 +61,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `996`
 		//  Estimated: `6936`
-		// Minimum execution time: 40_358_000 picoseconds.
-		Weight::from_parts(41_870_000, 0)
+		// Minimum execution time: 39_647_000 picoseconds.
+		Weight::from_parts(41_507_000, 0)
 			.saturating_add(Weight::from_parts(0, 6936))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -81,8 +81,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `1019`
 		//  Estimated: `6959`
-		// Minimum execution time: 36_424_000 picoseconds.
-		Weight::from_parts(37_857_000, 0)
+		// Minimum execution time: 35_555_000 picoseconds.
+		Weight::from_parts(37_928_000, 0)
 			.saturating_add(Weight::from_parts(0, 6959))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -99,7 +99,7 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 	/// Proof: `Membership::MembershipsExpireOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Identity::Identities` (r:1 w:1)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
-	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:1)
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `UniversalDividend::CurrentUdIndex` (r:1 w:0)
 	/// Proof: `UniversalDividend::CurrentUdIndex` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
@@ -119,13 +119,13 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn del_cert() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2259`
-		//  Estimated: `15624`
-		// Minimum execution time: 125_422_000 picoseconds.
-		Weight::from_parts(128_454_000, 0)
-			.saturating_add(Weight::from_parts(0, 15624))
+		//  Measured:  `2202`
+		//  Estimated: `15567`
+		// Minimum execution time: 120_680_000 picoseconds.
+		Weight::from_parts(124_928_000, 0)
+			.saturating_add(Weight::from_parts(0, 15567))
 			.saturating_add(T::DbWeight::get().reads(20))
-			.saturating_add(T::DbWeight::get().writes(23))
+			.saturating_add(T::DbWeight::get().writes(22))
 	}
 	/// Storage: `Certification::CertsByReceiver` (r:1 w:1)
 	/// Proof: `Certification::CertsByReceiver` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -138,11 +138,11 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `554 + i * (35 ±0)`
 		//  Estimated: `4018 + i * (2511 ±0)`
-		// Minimum execution time: 30_310_000 picoseconds.
-		Weight::from_parts(31_181_000, 0)
+		// Minimum execution time: 30_026_000 picoseconds.
+		Weight::from_parts(30_298_000, 0)
 			.saturating_add(Weight::from_parts(0, 4018))
-			// Standard Error: 25_824
-			.saturating_add(Weight::from_parts(9_275_904, 0).saturating_mul(i.into()))
+			// Standard Error: 24_742
+			.saturating_add(Weight::from_parts(8_970_118, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -155,8 +155,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `138`
 		//  Estimated: `3603`
-		// Minimum execution time: 3_454_000 picoseconds.
-		Weight::from_parts(3_743_000, 0)
+		// Minimum execution time: 3_338_000 picoseconds.
+		Weight::from_parts(3_629_000, 0)
 			.saturating_add(Weight::from_parts(0, 3603))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -166,8 +166,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `275`
 		//  Estimated: `3740`
-		// Minimum execution time: 5_312_000 picoseconds.
-		Weight::from_parts(5_608_000, 0)
+		// Minimum execution time: 5_072_000 picoseconds.
+		Weight::from_parts(5_393_000, 0)
 			.saturating_add(Weight::from_parts(0, 3740))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -182,8 +182,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `711`
 		//  Estimated: `6651`
-		// Minimum execution time: 26_213_000 picoseconds.
-		Weight::from_parts(27_502_000, 0)
+		// Minimum execution time: 26_226_000 picoseconds.
+		Weight::from_parts(27_431_000, 0)
 			.saturating_add(Weight::from_parts(0, 6651))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/g1/src/weights/pallet_collective.rs b/runtime/g1/src/weights/pallet_collective.rs
index 06df9662591d4686e3c5016e855d8c225305d67d..1393afccc8b640462cc09368907225334e5b1edb 100644
--- a/runtime/g1/src/weights/pallet_collective.rs
+++ b/runtime/g1/src/weights/pallet_collective.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_collective`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -62,13 +62,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + m * (672 ±0) + p * (3191 ±0)`
 		//  Estimated: `10019 + m * (416 ±4) + p * (4183 ±23)`
-		// Minimum execution time: 12_382_000 picoseconds.
-		Weight::from_parts(12_732_000, 0)
+		// Minimum execution time: 12_251_000 picoseconds.
+		Weight::from_parts(12_517_000, 0)
 			.saturating_add(Weight::from_parts(0, 10019))
-			// Standard Error: 10_026
-			.saturating_add(Weight::from_parts(744_546, 0).saturating_mul(m.into()))
-			// Standard Error: 49_561
-			.saturating_add(Weight::from_parts(7_099_142, 0).saturating_mul(p.into()))
+			// Standard Error: 11_418
+			.saturating_add(Weight::from_parts(804_334, 0).saturating_mul(m.into()))
+			// Standard Error: 56_446
+			.saturating_add(Weight::from_parts(7_135_104, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into())))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -84,13 +84,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `32 + m * (32 ±0)`
 		//  Estimated: `1518 + m * (32 ±0)`
-		// Minimum execution time: 11_673_000 picoseconds.
-		Weight::from_parts(10_820_054, 0)
+		// Minimum execution time: 11_158_000 picoseconds.
+		Weight::from_parts(10_618_729, 0)
 			.saturating_add(Weight::from_parts(0, 1518))
-			// Standard Error: 34
-			.saturating_add(Weight::from_parts(1_534, 0).saturating_mul(b.into()))
-			// Standard Error: 351
-			.saturating_add(Weight::from_parts(15_212, 0).saturating_mul(m.into()))
+			// Standard Error: 29
+			.saturating_add(Weight::from_parts(1_410, 0).saturating_mul(b.into()))
+			// Standard Error: 305
+			.saturating_add(Weight::from_parts(13_287, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
@@ -104,13 +104,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `32 + m * (32 ±0)`
 		//  Estimated: `3498 + m * (32 ±0)`
-		// Minimum execution time: 13_621_000 picoseconds.
-		Weight::from_parts(13_411_958, 0)
+		// Minimum execution time: 13_178_000 picoseconds.
+		Weight::from_parts(12_704_438, 0)
 			.saturating_add(Weight::from_parts(0, 3498))
-			// Standard Error: 37
-			.saturating_add(Weight::from_parts(1_296, 0).saturating_mul(b.into()))
-			// Standard Error: 391
-			.saturating_add(Weight::from_parts(21_066, 0).saturating_mul(m.into()))
+			// Standard Error: 34
+			.saturating_add(Weight::from_parts(1_465, 0).saturating_mul(b.into()))
+			// Standard Error: 357
+			.saturating_add(Weight::from_parts(21_695, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
@@ -131,15 +131,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `24 + m * (32 ±0) + p * (55 ±0)`
 		//  Estimated: `3461 + m * (32 ±0) + p * (54 ±0)`
-		// Minimum execution time: 19_756_000 picoseconds.
-		Weight::from_parts(19_613_903, 0)
+		// Minimum execution time: 19_206_000 picoseconds.
+		Weight::from_parts(18_996_814, 0)
 			.saturating_add(Weight::from_parts(0, 3461))
-			// Standard Error: 78
-			.saturating_add(Weight::from_parts(2_330, 0).saturating_mul(b.into()))
-			// Standard Error: 819
-			.saturating_add(Weight::from_parts(19_531, 0).saturating_mul(m.into()))
-			// Standard Error: 4_092
-			.saturating_add(Weight::from_parts(298_153, 0).saturating_mul(p.into()))
+			// Standard Error: 79
+			.saturating_add(Weight::from_parts(2_515, 0).saturating_mul(b.into()))
+			// Standard Error: 833
+			.saturating_add(Weight::from_parts(20_144, 0).saturating_mul(m.into()))
+			// Standard Error: 4_163
+			.saturating_add(Weight::from_parts(301_217, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(4))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
@@ -154,11 +154,11 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `573 + m * (64 ±0)`
 		//  Estimated: `4037 + m * (64 ±0)`
-		// Minimum execution time: 18_127_000 picoseconds.
-		Weight::from_parts(19_291_184, 0)
+		// Minimum execution time: 18_109_000 picoseconds.
+		Weight::from_parts(19_258_443, 0)
 			.saturating_add(Weight::from_parts(0, 4037))
-			// Standard Error: 655
-			.saturating_add(Weight::from_parts(39_248, 0).saturating_mul(m.into()))
+			// Standard Error: 720
+			.saturating_add(Weight::from_parts(36_118, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
@@ -177,13 +177,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `117 + m * (64 ±0) + p * (55 ±0)`
 		//  Estimated: `3591 + m * (64 ±0) + p * (55 ±0)`
-		// Minimum execution time: 22_740_000 picoseconds.
-		Weight::from_parts(21_235_980, 0)
+		// Minimum execution time: 22_421_000 picoseconds.
+		Weight::from_parts(21_348_269, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
-			// Standard Error: 620
-			.saturating_add(Weight::from_parts(32_285, 0).saturating_mul(m.into()))
-			// Standard Error: 3_062
-			.saturating_add(Weight::from_parts(258_736, 0).saturating_mul(p.into()))
+			// Standard Error: 907
+			.saturating_add(Weight::from_parts(33_289, 0).saturating_mul(m.into()))
+			// Standard Error: 4_480
+			.saturating_add(Weight::from_parts(237_205, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
@@ -204,15 +204,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `62 + b * (1 ±0) + m * (64 ±0) + p * (78 ±0)`
 		//  Estimated: `3619 + b * (1 ±0) + m * (63 ±0) + p * (74 ±0)`
-		// Minimum execution time: 32_430_000 picoseconds.
-		Weight::from_parts(31_069_476, 0)
+		// Minimum execution time: 31_490_000 picoseconds.
+		Weight::from_parts(32_598_000, 0)
 			.saturating_add(Weight::from_parts(0, 3619))
-			// Standard Error: 104
-			.saturating_add(Weight::from_parts(2_472, 0).saturating_mul(b.into()))
-			// Standard Error: 1_109
-			.saturating_add(Weight::from_parts(14_064, 0).saturating_mul(m.into()))
-			// Standard Error: 5_473
-			.saturating_add(Weight::from_parts(380_339, 0).saturating_mul(p.into()))
+			// Standard Error: 823
+			.saturating_add(Weight::from_parts(5_280, 0).saturating_mul(b.into()))
+			// Standard Error: 8_540
+			.saturating_add(Weight::from_parts(53_182, 0).saturating_mul(m.into()))
+			// Standard Error: 42_426
+			.saturating_add(Weight::from_parts(217_340, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
@@ -235,13 +235,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `137 + m * (64 ±0) + p * (55 ±0)`
 		//  Estimated: `3611 + m * (64 ±0) + p * (55 ±0)`
-		// Minimum execution time: 25_360_000 picoseconds.
-		Weight::from_parts(24_270_048, 0)
+		// Minimum execution time: 31_103_000 picoseconds.
+		Weight::from_parts(40_131_154, 0)
 			.saturating_add(Weight::from_parts(0, 3611))
-			// Standard Error: 652
-			.saturating_add(Weight::from_parts(33_478, 0).saturating_mul(m.into()))
-			// Standard Error: 3_221
-			.saturating_add(Weight::from_parts(268_958, 0).saturating_mul(p.into()))
+			// Standard Error: 4_186
+			.saturating_add(Weight::from_parts(150_872, 0).saturating_mul(m.into()))
+			// Standard Error: 20_672
+			.saturating_add(Weight::from_parts(655_804, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
@@ -264,15 +264,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `82 + b * (1 ±0) + m * (64 ±0) + p * (78 ±0)`
 		//  Estimated: `3639 + b * (1 ±0) + m * (63 ±0) + p * (74 ±0)`
-		// Minimum execution time: 34_381_000 picoseconds.
-		Weight::from_parts(32_892_529, 0)
+		// Minimum execution time: 42_637_000 picoseconds.
+		Weight::from_parts(66_089_153, 0)
 			.saturating_add(Weight::from_parts(0, 3639))
-			// Standard Error: 108
-			.saturating_add(Weight::from_parts(2_395, 0).saturating_mul(b.into()))
-			// Standard Error: 1_142
-			.saturating_add(Weight::from_parts(15_903, 0).saturating_mul(m.into()))
-			// Standard Error: 5_635
-			.saturating_add(Weight::from_parts(402_980, 0).saturating_mul(p.into()))
+			// Standard Error: 642
+			.saturating_add(Weight::from_parts(1_424, 0).saturating_mul(b.into()))
+			// Standard Error: 6_788
+			.saturating_add(Weight::from_parts(93_756, 0).saturating_mul(m.into()))
+			// Standard Error: 33_484
+			.saturating_add(Weight::from_parts(634_740, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
@@ -290,11 +290,11 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `189 + p * (32 ±0)`
 		//  Estimated: `1674 + p * (32 ±0)`
-		// Minimum execution time: 11_616_000 picoseconds.
-		Weight::from_parts(12_471_861, 0)
+		// Minimum execution time: 19_493_000 picoseconds.
+		Weight::from_parts(21_834_980, 0)
 			.saturating_add(Weight::from_parts(0, 1674))
-			// Standard Error: 2_027
-			.saturating_add(Weight::from_parts(154_684, 0).saturating_mul(p.into()))
+			// Standard Error: 10_190
+			.saturating_add(Weight::from_parts(512_055, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into()))
diff --git a/runtime/g1/src/weights/pallet_distance.rs b/runtime/g1/src/weights/pallet_distance.rs
index 1436bc9e3ec81086effb3960e699940d79d56f14..2f7255ded265ff06f8ba4a5a9e02e9b34c08c06d 100644
--- a/runtime/g1/src/weights/pallet_distance.rs
+++ b/runtime/g1/src/weights/pallet_distance.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_distance`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -67,11 +67,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn request_distance_evaluation() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1140`
-		//  Estimated: `4605`
-		// Minimum execution time: 65_909_000 picoseconds.
-		Weight::from_parts(67_747_000, 0)
-			.saturating_add(Weight::from_parts(0, 4605))
+		//  Measured:  `1134`
+		//  Estimated: `4599`
+		// Minimum execution time: 66_367_000 picoseconds.
+		Weight::from_parts(67_862_000, 0)
+			.saturating_add(Weight::from_parts(0, 4599))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -95,11 +95,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn request_distance_evaluation_for() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1169`
-		//  Estimated: `7109`
-		// Minimum execution time: 68_501_000 picoseconds.
-		Weight::from_parts(71_844_000, 0)
-			.saturating_add(Weight::from_parts(0, 7109))
+		//  Measured:  `1163`
+		//  Estimated: `7103`
+		// Minimum execution time: 69_363_000 picoseconds.
+		Weight::from_parts(70_709_000, 0)
+			.saturating_add(Weight::from_parts(0, 7103))
 			.saturating_add(T::DbWeight::get().reads(10))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -118,13 +118,13 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// The range of component `i` is `[1, 1300]`.
 	fn update_evaluation(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `401 + i * (10 ±0)`
-		//  Estimated: `1886 + i * (10 ±0)`
-		// Minimum execution time: 18_151_000 picoseconds.
-		Weight::from_parts(20_247_312, 0)
-			.saturating_add(Weight::from_parts(0, 1886))
-			// Standard Error: 66
-			.saturating_add(Weight::from_parts(104_133, 0).saturating_mul(i.into()))
+		//  Measured:  `424 + i * (10 ±0)`
+		//  Estimated: `1909 + i * (10 ±0)`
+		// Minimum execution time: 18_535_000 picoseconds.
+		Weight::from_parts(20_754_753, 0)
+			.saturating_add(Weight::from_parts(0, 1909))
+			// Standard Error: 269
+			.saturating_add(Weight::from_parts(105_767, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 10).saturating_mul(i.into()))
@@ -136,13 +136,13 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// The range of component `i` is `[1, 1300]`.
 	fn force_update_evaluation(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `139 + i * (10 ±0)`
-		//  Estimated: `1624 + i * (10 ±0)`
-		// Minimum execution time: 6_919_000 picoseconds.
-		Weight::from_parts(8_985_780, 0)
-			.saturating_add(Weight::from_parts(0, 1624))
-			// Standard Error: 55
-			.saturating_add(Weight::from_parts(101_965, 0).saturating_mul(i.into()))
+		//  Measured:  `162 + i * (10 ±0)`
+		//  Estimated: `1647 + i * (10 ±0)`
+		// Minimum execution time: 7_853_000 picoseconds.
+		Weight::from_parts(8_734_247, 0)
+			.saturating_add(Weight::from_parts(0, 1647))
+			// Standard Error: 430
+			.saturating_add(Weight::from_parts(108_056, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 10).saturating_mul(i.into()))
@@ -155,11 +155,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Membership::MembershipsExpireOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn force_valid_distance_status() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `572`
-		//  Estimated: `6512`
-		// Minimum execution time: 29_384_000 picoseconds.
-		Weight::from_parts(31_096_000, 0)
-			.saturating_add(Weight::from_parts(0, 6512))
+		//  Measured:  `539`
+		//  Estimated: `6479`
+		// Minimum execution time: 28_809_000 picoseconds.
+		Weight::from_parts(30_128_000, 0)
+			.saturating_add(Weight::from_parts(0, 6479))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -167,8 +167,8 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 91_000 picoseconds.
-		Weight::from_parts(126_000, 0)
+		// Minimum execution time: 106_000 picoseconds.
+		Weight::from_parts(125_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `System::ParentHash` (r:1 w:0)
@@ -191,11 +191,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Distance::EvaluationBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn do_evaluation_success() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `984`
-		//  Estimated: `6924`
-		// Minimum execution time: 63_680_000 picoseconds.
-		Weight::from_parts(65_817_000, 0)
-			.saturating_add(Weight::from_parts(0, 6924))
+		//  Measured:  `951`
+		//  Estimated: `6891`
+		// Minimum execution time: 63_066_000 picoseconds.
+		Weight::from_parts(64_306_000, 0)
+			.saturating_add(Weight::from_parts(0, 6891))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(8))
 	}
@@ -215,8 +215,8 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `475`
 		//  Estimated: `6126`
-		// Minimum execution time: 45_205_000 picoseconds.
-		Weight::from_parts(46_762_000, 0)
+		// Minimum execution time: 43_002_000 picoseconds.
+		Weight::from_parts(44_467_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(6))
@@ -229,11 +229,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Distance::EvaluationBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn do_evaluation_overhead() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `109`
-		//  Estimated: `1594`
-		// Minimum execution time: 4_030_000 picoseconds.
-		Weight::from_parts(4_294_000, 0)
-			.saturating_add(Weight::from_parts(0, 1594))
+		//  Measured:  `136`
+		//  Estimated: `1621`
+		// Minimum execution time: 4_529_000 picoseconds.
+		Weight::from_parts(4_765_000, 0)
+			.saturating_add(Weight::from_parts(0, 1621))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -241,11 +241,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Distance::DidUpdate` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn on_finalize() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `133`
-		//  Estimated: `1618`
-		// Minimum execution time: 3_720_000 picoseconds.
-		Weight::from_parts(4_046_000, 0)
-			.saturating_add(Weight::from_parts(0, 1618))
+		//  Measured:  `157`
+		//  Estimated: `1642`
+		// Minimum execution time: 3_921_000 picoseconds.
+		Weight::from_parts(4_354_000, 0)
+			.saturating_add(Weight::from_parts(0, 1642))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/g1/src/weights/pallet_duniter_account.rs b/runtime/g1/src/weights/pallet_duniter_account.rs
index 6aa071c0b78829e999e02c496fc0693cfc87ed1f..684741b1641e2e82603889a7f467df7e24026940 100644
--- a/runtime/g1/src/weights/pallet_duniter_account.rs
+++ b/runtime/g1/src/weights/pallet_duniter_account.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_duniter_account`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_duniter_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3558`
-		// Minimum execution time: 4_319_000 picoseconds.
-		Weight::from_parts(4_586_000, 0)
+		// Minimum execution time: 4_379_000 picoseconds.
+		Weight::from_parts(4_591_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/g1/src/weights/pallet_identity.rs b/runtime/g1/src/weights/pallet_identity.rs
index 839efbc0499554108258c9808e2b6b5b780e7a08..69fdb129d8d0f9a3414b06fc03b6fe80e663bdd3 100644
--- a/runtime/g1/src/weights/pallet_identity.rs
+++ b/runtime/g1/src/weights/pallet_identity.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_identity`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -69,11 +69,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn create_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1099`
-		//  Estimated: `7039`
-		// Minimum execution time: 70_675_000 picoseconds.
-		Weight::from_parts(73_034_000, 0)
-			.saturating_add(Weight::from_parts(0, 7039))
+		//  Measured:  `1042`
+		//  Estimated: `6982`
+		// Minimum execution time: 69_290_000 picoseconds.
+		Weight::from_parts(71_767_000, 0)
+			.saturating_add(Weight::from_parts(0, 6982))
 			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
@@ -87,11 +87,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn confirm_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `822`
-		//  Estimated: `6762`
-		// Minimum execution time: 35_097_000 picoseconds.
-		Weight::from_parts(36_265_000, 0)
-			.saturating_add(Weight::from_parts(0, 6762))
+		//  Measured:  `784`
+		//  Estimated: `6724`
+		// Minimum execution time: 34_069_000 picoseconds.
+		Weight::from_parts(35_989_000, 0)
+			.saturating_add(Weight::from_parts(0, 6724))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -107,11 +107,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`)
 	fn change_owner_key() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `964`
-		//  Estimated: `6904`
-		// Minimum execution time: 83_073_000 picoseconds.
-		Weight::from_parts(86_517_000, 0)
-			.saturating_add(Weight::from_parts(0, 6904))
+		//  Measured:  `960`
+		//  Estimated: `6900`
+		// Minimum execution time: 83_219_000 picoseconds.
+		Weight::from_parts(85_944_000, 0)
+			.saturating_add(Weight::from_parts(0, 6900))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
@@ -127,11 +127,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn revoke_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `731`
-		//  Estimated: `6671`
-		// Minimum execution time: 70_008_000 picoseconds.
-		Weight::from_parts(71_653_000, 0)
-			.saturating_add(Weight::from_parts(0, 6671))
+		//  Measured:  `697`
+		//  Estimated: `6637`
+		// Minimum execution time: 70_321_000 picoseconds.
+		Weight::from_parts(72_274_000, 0)
+			.saturating_add(Weight::from_parts(0, 6637))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
@@ -142,11 +142,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_952_000 picoseconds.
-		Weight::from_parts(4_158_000, 0)
+		// Minimum execution time: 4_127_000 picoseconds.
+		Weight::from_parts(4_228_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 950
-			.saturating_add(Weight::from_parts(1_204_551, 0).saturating_mul(i.into()))
+			// Standard Error: 1_142
+			.saturating_add(Weight::from_parts(1_217_695, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
@@ -156,8 +156,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `104`
 		//  Estimated: `3558`
-		// Minimum execution time: 7_415_000 picoseconds.
-		Weight::from_parts(7_948_000, 0)
+		// Minimum execution time: 7_395_000 picoseconds.
+		Weight::from_parts(7_763_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -170,11 +170,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`)
 	fn link_account() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `436`
-		//  Estimated: `3901`
-		// Minimum execution time: 54_824_000 picoseconds.
-		Weight::from_parts(55_745_000, 0)
-			.saturating_add(Weight::from_parts(0, 3901))
+		//  Measured:  `403`
+		//  Estimated: `3868`
+		// Minimum execution time: 54_263_000 picoseconds.
+		Weight::from_parts(55_473_000, 0)
+			.saturating_add(Weight::from_parts(0, 3868))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -182,7 +182,7 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 110_000 picoseconds.
+		// Minimum execution time: 103_000 picoseconds.
 		Weight::from_parts(133_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
@@ -190,16 +190,16 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_revoke_identity_noop() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `360`
-		//  Estimated: `3825`
-		// Minimum execution time: 4_839_000 picoseconds.
-		Weight::from_parts(5_289_000, 0)
-			.saturating_add(Weight::from_parts(0, 3825))
+		//  Measured:  `327`
+		//  Estimated: `3792`
+		// Minimum execution time: 5_090_000 picoseconds.
+		Weight::from_parts(5_457_000, 0)
+			.saturating_add(Weight::from_parts(0, 3792))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:1)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
-	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:1)
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Membership::Membership` (r:1 w:1)
 	/// Proof: `Membership::Membership` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -229,23 +229,23 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_revoke_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1930`
-		//  Estimated: `15295`
-		// Minimum execution time: 108_040_000 picoseconds.
-		Weight::from_parts(112_523_000, 0)
-			.saturating_add(Weight::from_parts(0, 15295))
+		//  Measured:  `1873`
+		//  Estimated: `15238`
+		// Minimum execution time: 106_264_000 picoseconds.
+		Weight::from_parts(110_081_000, 0)
+			.saturating_add(Weight::from_parts(0, 15238))
 			.saturating_add(T::DbWeight::get().reads(18))
-			.saturating_add(T::DbWeight::get().writes(22))
+			.saturating_add(T::DbWeight::get().writes(21))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:0)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity_noop() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `360`
-		//  Estimated: `3825`
-		// Minimum execution time: 4_888_000 picoseconds.
-		Weight::from_parts(5_194_000, 0)
-			.saturating_add(Weight::from_parts(0, 3825))
+		//  Measured:  `327`
+		//  Estimated: `3792`
+		// Minimum execution time: 5_001_000 picoseconds.
+		Weight::from_parts(5_215_000, 0)
+			.saturating_add(Weight::from_parts(0, 3792))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:1)
@@ -284,11 +284,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2355`
-		//  Estimated: `18195`
-		// Minimum execution time: 155_924_000 picoseconds.
-		Weight::from_parts(159_186_000, 0)
-			.saturating_add(Weight::from_parts(0, 18195))
+		//  Measured:  `2322`
+		//  Estimated: `18162`
+		// Minimum execution time: 155_305_000 picoseconds.
+		Weight::from_parts(159_441_000, 0)
+			.saturating_add(Weight::from_parts(0, 18162))
 			.saturating_add(T::DbWeight::get().reads(24))
 			.saturating_add(T::DbWeight::get().writes(30))
 	}
@@ -300,7 +300,7 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Membership::MembershipsExpireOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Identity::Identities` (r:1 w:1)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
-	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:1)
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `UniversalDividend::CurrentUdIndex` (r:1 w:0)
 	/// Proof: `UniversalDividend::CurrentUdIndex` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
@@ -328,13 +328,13 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity_handler() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2372`
-		//  Estimated: `18212`
-		// Minimum execution time: 153_164_000 picoseconds.
-		Weight::from_parts(157_508_000, 0)
-			.saturating_add(Weight::from_parts(0, 18212))
+		//  Measured:  `2315`
+		//  Estimated: `18155`
+		// Minimum execution time: 148_349_000 picoseconds.
+		Weight::from_parts(154_660_000, 0)
+			.saturating_add(Weight::from_parts(0, 18155))
 			.saturating_add(T::DbWeight::get().reads(25))
-			.saturating_add(T::DbWeight::get().writes(29))
+			.saturating_add(T::DbWeight::get().writes(28))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:1)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -342,11 +342,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn membership_removed() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `441`
-		//  Estimated: `6381`
-		// Minimum execution time: 16_781_000 picoseconds.
-		Weight::from_parts(17_373_000, 0)
-			.saturating_add(Weight::from_parts(0, 6381))
+		//  Measured:  `407`
+		//  Estimated: `6347`
+		// Minimum execution time: 16_829_000 picoseconds.
+		Weight::from_parts(17_692_000, 0)
+			.saturating_add(Weight::from_parts(0, 6347))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -354,11 +354,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn prune_identities_noop() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `165`
-		//  Estimated: `3630`
-		// Minimum execution time: 3_586_000 picoseconds.
-		Weight::from_parts(3_936_000, 0)
-			.saturating_add(Weight::from_parts(0, 3630))
+		//  Measured:  `108`
+		//  Estimated: `3573`
+		// Minimum execution time: 2_788_000 picoseconds.
+		Weight::from_parts(2_989_000, 0)
+			.saturating_add(Weight::from_parts(0, 3573))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: `Identity::IdentityChangeSchedule` (r:1 w:1)
@@ -367,11 +367,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn prune_identities_none() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `363`
-		//  Estimated: `3828`
-		// Minimum execution time: 8_263_000 picoseconds.
-		Weight::from_parts(8_759_000, 0)
-			.saturating_add(Weight::from_parts(0, 3828))
+		//  Measured:  `325`
+		//  Estimated: `3790`
+		// Minimum execution time: 7_482_000 picoseconds.
+		Weight::from_parts(7_872_000, 0)
+			.saturating_add(Weight::from_parts(0, 3790))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -393,11 +393,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn prune_identities_err() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `952`
-		//  Estimated: `4417`
-		// Minimum execution time: 38_427_000 picoseconds.
-		Weight::from_parts(39_945_000, 0)
-			.saturating_add(Weight::from_parts(0, 4417))
+		//  Measured:  `914`
+		//  Estimated: `4379`
+		// Minimum execution time: 37_535_000 picoseconds.
+		Weight::from_parts(39_541_000, 0)
+			.saturating_add(Weight::from_parts(0, 4379))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(7))
 	}
diff --git a/runtime/g1/src/weights/pallet_im_online.rs b/runtime/g1/src/weights/pallet_im_online.rs
index 02c43969c6b40802c9d02cabbf74e0f063fa964a..6e26f2937cafd0e3ad3ecd42dd47506aac656f39 100644
--- a/runtime/g1/src/weights/pallet_im_online.rs
+++ b/runtime/g1/src/weights/pallet_im_online.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_im_online`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -62,11 +62,9 @@ impl<T: frame_system::Config> pallet_im_online::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `525 + k * (32 ±0)`
 		//  Estimated: `33487 + k * (1761 ±0)`
-		// Minimum execution time: 56_656_000 picoseconds.
-		Weight::from_parts(68_340_368, 0)
+		// Minimum execution time: 77_475_000 picoseconds.
+		Weight::from_parts(139_303_234, 0)
 			.saturating_add(Weight::from_parts(0, 33487))
-			// Standard Error: 459
-			.saturating_add(Weight::from_parts(34_630, 0).saturating_mul(k.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into()))
diff --git a/runtime/g1/src/weights/pallet_membership.rs b/runtime/g1/src/weights/pallet_membership.rs
index 739fe67c9b0be0ce8b32bbf70d0a7785ded79381..5bbcf3258e63f61ba44399fbd988530498b55783 100644
--- a/runtime/g1/src/weights/pallet_membership.rs
+++ b/runtime/g1/src/weights/pallet_membership.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_membership`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -51,11 +51,11 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 89_000 picoseconds.
-		Weight::from_parts(133_000, 0)
+		// Minimum execution time: 108_000 picoseconds.
+		Weight::from_parts(126_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
-	/// Storage: `Membership::MembershipsExpireOn` (r:2 w:2)
+	/// Storage: `Membership::MembershipsExpireOn` (r:2 w:1)
 	/// Proof: `Membership::MembershipsExpireOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Membership::Membership` (r:3 w:3)
 	/// Proof: `Membership::Membership` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -63,7 +63,7 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 	/// Proof: `Membership::CounterForMembership` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::Identities` (r:3 w:3)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
-	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:1)
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `UniversalDividend::CurrentUdIndex` (r:1 w:0)
 	/// Proof: `UniversalDividend::CurrentUdIndex` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
@@ -86,17 +86,17 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 	/// The range of component `i` is `[0, 3]`.
 	fn expire_memberships(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `139 + i * (992 ±0)`
-		//  Estimated: `15059 + i * (2695 ±1)`
-		// Minimum execution time: 5_469_000 picoseconds.
-		Weight::from_parts(14_862_527, 0)
-			.saturating_add(Weight::from_parts(0, 15059))
-			// Standard Error: 644_477
-			.saturating_add(Weight::from_parts(80_115_649, 0).saturating_mul(i.into()))
+		//  Measured:  `139 + i * (960 ±0)`
+		//  Estimated: `14995 + i * (2695 ±1)`
+		// Minimum execution time: 5_343_000 picoseconds.
+		Weight::from_parts(14_213_809, 0)
+			.saturating_add(Weight::from_parts(0, 14995))
+			// Standard Error: 603_398
+			.saturating_add(Weight::from_parts(75_716_155, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().reads((11_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
-			.saturating_add(T::DbWeight::get().writes((15_u64).saturating_mul(i.into())))
+			.saturating_add(T::DbWeight::get().writes((14_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 2695).saturating_mul(i.into()))
 	}
 }
diff --git a/runtime/g1/src/weights/pallet_multisig.rs b/runtime/g1/src/weights/pallet_multisig.rs
index 7ff5350b78dbeb1d084be8e9d258ea41497d9ede..29f0891b9db73c26f8dbb749961e30a585f10a9a 100644
--- a/runtime/g1/src/weights/pallet_multisig.rs
+++ b/runtime/g1/src/weights/pallet_multisig.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_multisig`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -52,11 +52,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_424_000 picoseconds.
-		Weight::from_parts(5_777_452, 0)
+		// Minimum execution time: 5_207_000 picoseconds.
+		Weight::from_parts(5_671_298, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(320, 0).saturating_mul(z.into()))
+			// Standard Error: 2
+			.saturating_add(Weight::from_parts(321, 0).saturating_mul(z.into()))
 	}
 	/// Storage: `Multisig::Multisigs` (r:1 w:1)
 	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(457), added: 2932, mode: `MaxEncodedLen`)
@@ -66,13 +66,13 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `125 + s * (5 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 27_690_000 picoseconds.
-		Weight::from_parts(27_849_803, 0)
+		// Minimum execution time: 28_382_000 picoseconds.
+		Weight::from_parts(28_468_579, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 6_103
-			.saturating_add(Weight::from_parts(130_702, 0).saturating_mul(s.into()))
-			// Standard Error: 5
-			.saturating_add(Weight::from_parts(1_060, 0).saturating_mul(z.into()))
+			// Standard Error: 10_030
+			.saturating_add(Weight::from_parts(70_271, 0).saturating_mul(s.into()))
+			// Standard Error: 8
+			.saturating_add(Weight::from_parts(1_052, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -84,13 +84,13 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `240`
 		//  Estimated: `3922`
-		// Minimum execution time: 15_572_000 picoseconds.
-		Weight::from_parts(15_882_913, 0)
+		// Minimum execution time: 15_563_000 picoseconds.
+		Weight::from_parts(15_235_616, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 4_653
-			.saturating_add(Weight::from_parts(53_568, 0).saturating_mul(s.into()))
-			// Standard Error: 3
-			.saturating_add(Weight::from_parts(1_057, 0).saturating_mul(z.into()))
+			// Standard Error: 7_326
+			.saturating_add(Weight::from_parts(128_782, 0).saturating_mul(s.into()))
+			// Standard Error: 5
+			.saturating_add(Weight::from_parts(1_080, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -104,13 +104,13 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `259 + s * (37 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 30_395_000 picoseconds.
-		Weight::from_parts(30_782_695, 0)
+		// Minimum execution time: 29_858_000 picoseconds.
+		Weight::from_parts(30_559_431, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 6_729
-			.saturating_add(Weight::from_parts(89_383, 0).saturating_mul(s.into()))
-			// Standard Error: 5
-			.saturating_add(Weight::from_parts(1_061, 0).saturating_mul(z.into()))
+			// Standard Error: 9_588
+			.saturating_add(Weight::from_parts(102_725, 0).saturating_mul(s.into()))
+			// Standard Error: 8
+			.saturating_add(Weight::from_parts(1_083, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -121,11 +121,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `130 + s * (5 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 25_593_000 picoseconds.
-		Weight::from_parts(26_830_662, 0)
+		// Minimum execution time: 25_071_000 picoseconds.
+		Weight::from_parts(26_371_672, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 6_016
-			.saturating_add(Weight::from_parts(149_247, 0).saturating_mul(s.into()))
+			// Standard Error: 9_270
+			.saturating_add(Weight::from_parts(229_206, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -136,11 +136,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `240`
 		//  Estimated: `3922`
-		// Minimum execution time: 13_839_000 picoseconds.
-		Weight::from_parts(14_512_232, 0)
+		// Minimum execution time: 13_391_000 picoseconds.
+		Weight::from_parts(14_298_679, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 3_561
-			.saturating_add(Weight::from_parts(108_424, 0).saturating_mul(s.into()))
+			// Standard Error: 5_609
+			.saturating_add(Weight::from_parts(164_451, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -151,11 +151,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `328 + s * (5 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 26_261_000 picoseconds.
-		Weight::from_parts(27_699_529, 0)
+		// Minimum execution time: 26_368_000 picoseconds.
+		Weight::from_parts(27_511_820, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 7_715
-			.saturating_add(Weight::from_parts(158_650, 0).saturating_mul(s.into()))
+			// Standard Error: 10_806
+			.saturating_add(Weight::from_parts(199_066, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/g1/src/weights/pallet_oneshot_account.rs b/runtime/g1/src/weights/pallet_oneshot_account.rs
index 1fef60baed235c62fc3071d4be6a93a378597630..7df51a905595029fb871bb797a1f4577d55a3a40 100644
--- a/runtime/g1/src/weights/pallet_oneshot_account.rs
+++ b/runtime/g1/src/weights/pallet_oneshot_account.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_oneshot_account`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_oneshot_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3507`
-		// Minimum execution time: 22_993_000 picoseconds.
-		Weight::from_parts(23_422_000, 0)
+		// Minimum execution time: 21_415_000 picoseconds.
+		Weight::from_parts(22_749_000, 0)
 			.saturating_add(Weight::from_parts(0, 3507))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -69,8 +69,8 @@ impl<T: frame_system::Config> pallet_oneshot_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `241`
 		//  Estimated: `3706`
-		// Minimum execution time: 30_691_000 picoseconds.
-		Weight::from_parts(32_073_000, 0)
+		// Minimum execution time: 30_704_000 picoseconds.
+		Weight::from_parts(31_569_000, 0)
 			.saturating_add(Weight::from_parts(0, 3706))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -85,8 +85,8 @@ impl<T: frame_system::Config> pallet_oneshot_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `301`
 		//  Estimated: `6126`
-		// Minimum execution time: 45_556_000 picoseconds.
-		Weight::from_parts(47_130_000, 0)
+		// Minimum execution time: 44_455_000 picoseconds.
+		Weight::from_parts(46_042_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/g1/src/weights/pallet_preimage.rs b/runtime/g1/src/weights/pallet_preimage.rs
index 71708213db5655daeb95e9decb8b26ffa3cff378..95e75986b4d8e4e9e1000e1ccd5a5a60d6a852c7 100644
--- a/runtime/g1/src/weights/pallet_preimage.rs
+++ b/runtime/g1/src/weights/pallet_preimage.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_preimage`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -58,11 +58,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3548`
-		// Minimum execution time: 12_361_000 picoseconds.
-		Weight::from_parts(12_680_000, 0)
+		// Minimum execution time: 12_303_000 picoseconds.
+		Weight::from_parts(12_457_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_323, 0).saturating_mul(s.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_273, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -77,11 +77,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 15_234_000 picoseconds.
-		Weight::from_parts(15_561_000, 0)
+		// Minimum execution time: 15_071_000 picoseconds.
+		Weight::from_parts(15_519_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_319, 0).saturating_mul(s.into()))
+			.saturating_add(Weight::from_parts(1_272, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -96,11 +96,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 13_574_000 picoseconds.
-		Weight::from_parts(13_916_000, 0)
+		// Minimum execution time: 13_528_000 picoseconds.
+		Weight::from_parts(13_985_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_401, 0).saturating_mul(s.into()))
+			.saturating_add(Weight::from_parts(1_361, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -114,8 +114,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `172`
 		//  Estimated: `3548`
-		// Minimum execution time: 23_820_000 picoseconds.
-		Weight::from_parts(26_783_000, 0)
+		// Minimum execution time: 22_001_000 picoseconds.
+		Weight::from_parts(23_150_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -130,8 +130,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `144`
 		//  Estimated: `3548`
-		// Minimum execution time: 23_704_000 picoseconds.
-		Weight::from_parts(24_838_000, 0)
+		// Minimum execution time: 22_414_000 picoseconds.
+		Weight::from_parts(23_924_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -144,8 +144,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `172`
 		//  Estimated: `3548`
-		// Minimum execution time: 20_991_000 picoseconds.
-		Weight::from_parts(22_482_000, 0)
+		// Minimum execution time: 19_167_000 picoseconds.
+		Weight::from_parts(21_653_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -158,8 +158,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `144`
 		//  Estimated: `3548`
-		// Minimum execution time: 13_636_000 picoseconds.
-		Weight::from_parts(15_511_000, 0)
+		// Minimum execution time: 13_154_000 picoseconds.
+		Weight::from_parts(14_430_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -172,8 +172,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3548`
-		// Minimum execution time: 10_511_000 picoseconds.
-		Weight::from_parts(11_283_000, 0)
+		// Minimum execution time: 10_654_000 picoseconds.
+		Weight::from_parts(11_253_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -186,8 +186,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 8_689_000 picoseconds.
-		Weight::from_parts(10_141_000, 0)
+		// Minimum execution time: 8_683_000 picoseconds.
+		Weight::from_parts(9_232_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -202,8 +202,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `144`
 		//  Estimated: `3548`
-		// Minimum execution time: 21_074_000 picoseconds.
-		Weight::from_parts(22_966_000, 0)
+		// Minimum execution time: 20_719_000 picoseconds.
+		Weight::from_parts(21_970_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -216,8 +216,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 8_531_000 picoseconds.
-		Weight::from_parts(9_066_000, 0)
+		// Minimum execution time: 8_369_000 picoseconds.
+		Weight::from_parts(9_315_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -230,8 +230,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 8_532_000 picoseconds.
-		Weight::from_parts(9_859_000, 0)
+		// Minimum execution time: 8_645_000 picoseconds.
+		Weight::from_parts(9_376_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -247,11 +247,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + n * (179 ±0)`
 		//  Estimated: `990 + n * (2568 ±0)`
-		// Minimum execution time: 20_047_000 picoseconds.
-		Weight::from_parts(20_165_000, 0)
+		// Minimum execution time: 19_732_000 picoseconds.
+		Weight::from_parts(20_102_000, 0)
 			.saturating_add(Weight::from_parts(0, 990))
-			// Standard Error: 18_007
-			.saturating_add(Weight::from_parts(15_343_181, 0).saturating_mul(n.into()))
+			// Standard Error: 17_245
+			.saturating_add(Weight::from_parts(15_189_723, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into())))
 			.saturating_add(Weight::from_parts(0, 2568).saturating_mul(n.into()))
diff --git a/runtime/g1/src/weights/pallet_provide_randomness.rs b/runtime/g1/src/weights/pallet_provide_randomness.rs
index 1050568bc61b792602cac9d9b30000a33814d355..5633d340ba7e157bbc2d10df8c93b40ee74eeef9 100644
--- a/runtime/g1/src/weights/pallet_provide_randomness.rs
+++ b/runtime/g1/src/weights/pallet_provide_randomness.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_provide_randomness`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -65,8 +65,8 @@ impl<T: frame_system::Config> pallet_provide_randomness::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `298`
 		//  Estimated: `3763`
-		// Minimum execution time: 45_929_000 picoseconds.
-		Weight::from_parts(47_776_000, 0)
+		// Minimum execution time: 45_448_000 picoseconds.
+		Weight::from_parts(47_249_000, 0)
 			.saturating_add(Weight::from_parts(0, 3763))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(5))
@@ -86,11 +86,11 @@ impl<T: frame_system::Config> pallet_provide_randomness::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `341 + i * (59 ±0)`
 		//  Estimated: `1827 + i * (2535 ±0)`
-		// Minimum execution time: 20_758_000 picoseconds.
-		Weight::from_parts(19_224_520, 0)
+		// Minimum execution time: 20_179_000 picoseconds.
+		Weight::from_parts(18_090_233, 0)
 			.saturating_add(Weight::from_parts(0, 1827))
-			// Standard Error: 5_498
-			.saturating_add(Weight::from_parts(5_750_488, 0).saturating_mul(i.into()))
+			// Standard Error: 6_384
+			.saturating_add(Weight::from_parts(5_603_672, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -118,11 +118,11 @@ impl<T: frame_system::Config> pallet_provide_randomness::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `351 + i * (59 ±0)`
 		//  Estimated: `3817 + i * (2535 ±0)`
-		// Minimum execution time: 21_726_000 picoseconds.
-		Weight::from_parts(19_393_776, 0)
+		// Minimum execution time: 21_990_000 picoseconds.
+		Weight::from_parts(20_414_264, 0)
 			.saturating_add(Weight::from_parts(0, 3817))
-			// Standard Error: 8_077
-			.saturating_add(Weight::from_parts(6_132_986, 0).saturating_mul(i.into()))
+			// Standard Error: 8_103
+			.saturating_add(Weight::from_parts(5_955_607, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/g1/src/weights/pallet_proxy.rs b/runtime/g1/src/weights/pallet_proxy.rs
index 74913c823c1886701f223fa7cee17c1866e9892c..70b8132bd14c2ab23eab6d759f0f58b98fe15a90 100644
--- a/runtime/g1/src/weights/pallet_proxy.rs
+++ b/runtime/g1/src/weights/pallet_proxy.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_proxy`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -54,11 +54,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 14_107_000 picoseconds.
-		Weight::from_parts(15_066_872, 0)
+		// Minimum execution time: 13_278_000 picoseconds.
+		Weight::from_parts(14_551_586, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_348
-			.saturating_add(Weight::from_parts(23_202, 0).saturating_mul(p.into()))
+			// Standard Error: 1_353
+			.saturating_add(Weight::from_parts(33_928, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: `Proxy::Proxies` (r:1 w:0)
@@ -73,13 +73,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `399 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 32_820_000 picoseconds.
-		Weight::from_parts(33_018_940, 0)
+		// Minimum execution time: 32_917_000 picoseconds.
+		Weight::from_parts(32_491_303, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 1_839
-			.saturating_add(Weight::from_parts(149_359, 0).saturating_mul(a.into()))
-			// Standard Error: 1_900
-			.saturating_add(Weight::from_parts(42_139, 0).saturating_mul(p.into()))
+			// Standard Error: 2_225
+			.saturating_add(Weight::from_parts(152_855, 0).saturating_mul(a.into()))
+			// Standard Error: 2_299
+			.saturating_add(Weight::from_parts(49_551, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -93,13 +93,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `322 + a * (68 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 22_480_000 picoseconds.
-		Weight::from_parts(22_941_444, 0)
+		// Minimum execution time: 21_767_000 picoseconds.
+		Weight::from_parts(22_790_976, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 1_578
-			.saturating_add(Weight::from_parts(150_046, 0).saturating_mul(a.into()))
-			// Standard Error: 1_631
-			.saturating_add(Weight::from_parts(12_486, 0).saturating_mul(p.into()))
+			// Standard Error: 1_617
+			.saturating_add(Weight::from_parts(152_517, 0).saturating_mul(a.into()))
+			// Standard Error: 1_671
+			.saturating_add(Weight::from_parts(13_509, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -113,13 +113,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `322 + a * (68 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 22_213_000 picoseconds.
-		Weight::from_parts(22_689_575, 0)
+		// Minimum execution time: 22_068_000 picoseconds.
+		Weight::from_parts(22_657_917, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 1_525
-			.saturating_add(Weight::from_parts(149_745, 0).saturating_mul(a.into()))
-			// Standard Error: 1_575
-			.saturating_add(Weight::from_parts(16_228, 0).saturating_mul(p.into()))
+			// Standard Error: 1_545
+			.saturating_add(Weight::from_parts(151_153, 0).saturating_mul(a.into()))
+			// Standard Error: 1_596
+			.saturating_add(Weight::from_parts(11_940, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -135,13 +135,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `331 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 29_779_000 picoseconds.
-		Weight::from_parts(30_195_878, 0)
+		// Minimum execution time: 29_803_000 picoseconds.
+		Weight::from_parts(29_938_988, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 1_849
-			.saturating_add(Weight::from_parts(137_520, 0).saturating_mul(a.into()))
-			// Standard Error: 1_910
-			.saturating_add(Weight::from_parts(43_697, 0).saturating_mul(p.into()))
+			// Standard Error: 1_956
+			.saturating_add(Weight::from_parts(136_595, 0).saturating_mul(a.into()))
+			// Standard Error: 2_021
+			.saturating_add(Weight::from_parts(44_909, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -152,11 +152,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 20_918_000 picoseconds.
-		Weight::from_parts(22_355_562, 0)
+		// Minimum execution time: 21_109_000 picoseconds.
+		Weight::from_parts(21_929_901, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_772
-			.saturating_add(Weight::from_parts(48_016, 0).saturating_mul(p.into()))
+			// Standard Error: 1_499
+			.saturating_add(Weight::from_parts(47_734, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -167,11 +167,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 21_589_000 picoseconds.
-		Weight::from_parts(22_684_377, 0)
+		// Minimum execution time: 21_181_000 picoseconds.
+		Weight::from_parts(22_163_453, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_886
-			.saturating_add(Weight::from_parts(35_794, 0).saturating_mul(p.into()))
+			// Standard Error: 1_524
+			.saturating_add(Weight::from_parts(48_034, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -182,11 +182,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 19_354_000 picoseconds.
-		Weight::from_parts(20_501_657, 0)
+		// Minimum execution time: 19_324_000 picoseconds.
+		Weight::from_parts(20_412_713, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_393
-			.saturating_add(Weight::from_parts(37_242, 0).saturating_mul(p.into()))
+			// Standard Error: 1_598
+			.saturating_add(Weight::from_parts(31_143, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -197,11 +197,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `177`
 		//  Estimated: `4698`
-		// Minimum execution time: 22_440_000 picoseconds.
-		Weight::from_parts(23_674_079, 0)
+		// Minimum execution time: 22_209_000 picoseconds.
+		Weight::from_parts(23_514_172, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_490
-			.saturating_add(Weight::from_parts(7_580, 0).saturating_mul(p.into()))
+			// Standard Error: 1_469
+			.saturating_add(Weight::from_parts(8_154, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -212,11 +212,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `194 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 20_218_000 picoseconds.
-		Weight::from_parts(21_163_230, 0)
+		// Minimum execution time: 19_952_000 picoseconds.
+		Weight::from_parts(20_865_633, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_397
-			.saturating_add(Weight::from_parts(28_501, 0).saturating_mul(p.into()))
+			// Standard Error: 1_420
+			.saturating_add(Weight::from_parts(41_074, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/g1/src/weights/pallet_scheduler.rs b/runtime/g1/src/weights/pallet_scheduler.rs
index 91bd8a921b8f46f980fc6cfba504d101ef8d5d23..dc73216b882895b4ce058c8e78715d3b37595712 100644
--- a/runtime/g1/src/weights/pallet_scheduler.rs
+++ b/runtime/g1/src/weights/pallet_scheduler.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_scheduler`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `30`
 		//  Estimated: `1489`
-		// Minimum execution time: 3_221_000 picoseconds.
-		Weight::from_parts(3_410_000, 0)
+		// Minimum execution time: 3_154_000 picoseconds.
+		Weight::from_parts(3_460_000, 0)
 			.saturating_add(Weight::from_parts(0, 1489))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -66,11 +66,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + s * (177 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 3_186_000 picoseconds.
-		Weight::from_parts(6_703_378, 0)
+		// Minimum execution time: 2_995_000 picoseconds.
+		Weight::from_parts(6_906_805, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 1_917
-			.saturating_add(Weight::from_parts(287_784, 0).saturating_mul(s.into()))
+			// Standard Error: 2_029
+			.saturating_add(Weight::from_parts(282_197, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -78,8 +78,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_896_000 picoseconds.
-		Weight::from_parts(3_020_000, 0)
+		// Minimum execution time: 2_798_000 picoseconds.
+		Weight::from_parts(3_053_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `Preimage::PreimageFor` (r:1 w:1)
@@ -93,11 +93,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `179 + s * (1 ±0)`
 		//  Estimated: `4197809`
-		// Minimum execution time: 17_455_000 picoseconds.
-		Weight::from_parts(17_816_000, 0)
+		// Minimum execution time: 16_936_000 picoseconds.
+		Weight::from_parts(17_194_000, 0)
 			.saturating_add(Weight::from_parts(0, 4197809))
-			// Standard Error: 3
-			.saturating_add(Weight::from_parts(962, 0).saturating_mul(s.into()))
+			// Standard Error: 2
+			.saturating_add(Weight::from_parts(880, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -107,8 +107,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_236_000 picoseconds.
-		Weight::from_parts(4_400_000, 0)
+		// Minimum execution time: 4_224_000 picoseconds.
+		Weight::from_parts(4_460_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -116,24 +116,24 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_853_000 picoseconds.
-		Weight::from_parts(3_104_000, 0)
+		// Minimum execution time: 2_800_000 picoseconds.
+		Weight::from_parts(2_953_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn execute_dispatch_signed() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_872_000 picoseconds.
-		Weight::from_parts(2_329_000, 0)
+		// Minimum execution time: 1_917_000 picoseconds.
+		Weight::from_parts(2_038_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn execute_dispatch_unsigned() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_873_000 picoseconds.
-		Weight::from_parts(2_026_000, 0)
+		// Minimum execution time: 1_828_000 picoseconds.
+		Weight::from_parts(1_965_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
@@ -143,11 +143,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + s * (177 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 8_897_000 picoseconds.
-		Weight::from_parts(12_502_767, 0)
+		// Minimum execution time: 8_663_000 picoseconds.
+		Weight::from_parts(12_276_740, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 1_951
-			.saturating_add(Weight::from_parts(298_828, 0).saturating_mul(s.into()))
+			// Standard Error: 1_839
+			.saturating_add(Weight::from_parts(297_841, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -162,11 +162,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + s * (177 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 14_007_000 picoseconds.
-		Weight::from_parts(14_896_806, 0)
+		// Minimum execution time: 13_827_000 picoseconds.
+		Weight::from_parts(14_904_366, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 1_602
-			.saturating_add(Weight::from_parts(457_263, 0).saturating_mul(s.into()))
+			// Standard Error: 1_572
+			.saturating_add(Weight::from_parts(450_135, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -179,11 +179,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `254 + s * (185 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 11_616_000 picoseconds.
-		Weight::from_parts(17_089_098, 0)
+		// Minimum execution time: 11_710_000 picoseconds.
+		Weight::from_parts(17_069_228, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 4_345
-			.saturating_add(Weight::from_parts(350_760, 0).saturating_mul(s.into()))
+			// Standard Error: 4_379
+			.saturating_add(Weight::from_parts(352_722, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -198,11 +198,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `280 + s * (185 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 16_395_000 picoseconds.
-		Weight::from_parts(19_167_295, 0)
+		// Minimum execution time: 16_274_000 picoseconds.
+		Weight::from_parts(18_248_439, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 2_411
-			.saturating_add(Weight::from_parts(490_476, 0).saturating_mul(s.into()))
+			// Standard Error: 12_899
+			.saturating_add(Weight::from_parts(548_525, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -215,11 +215,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `117`
 		//  Estimated: `13928`
-		// Minimum execution time: 8_469_000 picoseconds.
-		Weight::from_parts(9_181_472, 0)
+		// Minimum execution time: 8_411_000 picoseconds.
+		Weight::from_parts(9_177_642, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 581
-			.saturating_add(Weight::from_parts(27_665, 0).saturating_mul(s.into()))
+			// Standard Error: 545
+			.saturating_add(Weight::from_parts(26_161, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -231,8 +231,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `8927`
 		//  Estimated: `13928`
-		// Minimum execution time: 21_115_000 picoseconds.
-		Weight::from_parts(21_839_000, 0)
+		// Minimum execution time: 21_330_000 picoseconds.
+		Weight::from_parts(22_140_000, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -247,8 +247,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `9605`
 		//  Estimated: `13928`
-		// Minimum execution time: 28_611_000 picoseconds.
-		Weight::from_parts(29_620_000, 0)
+		// Minimum execution time: 28_811_000 picoseconds.
+		Weight::from_parts(29_806_000, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -261,8 +261,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `8939`
 		//  Estimated: `13928`
-		// Minimum execution time: 20_545_000 picoseconds.
-		Weight::from_parts(21_110_000, 0)
+		// Minimum execution time: 20_083_000 picoseconds.
+		Weight::from_parts(21_403_000, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -277,8 +277,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `9617`
 		//  Estimated: `13928`
-		// Minimum execution time: 27_773_000 picoseconds.
-		Weight::from_parts(28_783_000, 0)
+		// Minimum execution time: 27_768_000 picoseconds.
+		Weight::from_parts(28_469_000, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/g1/src/weights/pallet_session.rs b/runtime/g1/src/weights/pallet_session.rs
index 3e589ddac52849f4d829108bb54db560d0dffa04..7806827407143458e388044592725611eb1c4caa 100644
--- a/runtime/g1/src/weights/pallet_session.rs
+++ b/runtime/g1/src/weights/pallet_session.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_session`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -55,8 +55,8 @@ impl<T: frame_system::Config> pallet_session::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `810`
 		//  Estimated: `11700`
-		// Minimum execution time: 28_285_000 picoseconds.
-		Weight::from_parts(30_211_000, 0)
+		// Minimum execution time: 49_328_000 picoseconds.
+		Weight::from_parts(51_361_000, 0)
 			.saturating_add(Weight::from_parts(0, 11700))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(5))
@@ -69,8 +69,8 @@ impl<T: frame_system::Config> pallet_session::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `477`
 		//  Estimated: `3942`
-		// Minimum execution time: 17_013_000 picoseconds.
-		Weight::from_parts(17_708_000, 0)
+		// Minimum execution time: 25_061_000 picoseconds.
+		Weight::from_parts(31_433_000, 0)
 			.saturating_add(Weight::from_parts(0, 3942))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(5))
diff --git a/runtime/g1/src/weights/pallet_smith_members.rs b/runtime/g1/src/weights/pallet_smith_members.rs
index 04aec5f18f6e6551c66a93bcba1f498ca7ab30ed..8e59d7364258d11087f6d1a73336f560e914c846 100644
--- a/runtime/g1/src/weights/pallet_smith_members.rs
+++ b/runtime/g1/src/weights/pallet_smith_members.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_smith_members`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -59,11 +59,11 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 	/// Proof: `SmithMembers::ExpiresOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn invite_smith() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `834`
-		//  Estimated: `6774`
-		// Minimum execution time: 32_588_000 picoseconds.
-		Weight::from_parts(33_329_000, 0)
-			.saturating_add(Weight::from_parts(0, 6774))
+		//  Measured:  `801`
+		//  Estimated: `6741`
+		// Minimum execution time: 32_845_000 picoseconds.
+		Weight::from_parts(33_640_000, 0)
+			.saturating_add(Weight::from_parts(0, 6741))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -73,11 +73,11 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 	/// Proof: `SmithMembers::Smiths` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn accept_invitation() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `599`
-		//  Estimated: `4064`
-		// Minimum execution time: 17_937_000 picoseconds.
-		Weight::from_parts(18_612_000, 0)
-			.saturating_add(Weight::from_parts(0, 4064))
+		//  Measured:  `566`
+		//  Estimated: `4031`
+		// Minimum execution time: 17_951_000 picoseconds.
+		Weight::from_parts(18_815_000, 0)
+			.saturating_add(Weight::from_parts(0, 4031))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -91,11 +91,11 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 	/// Proof: `SmithMembers::ExpiresOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn certify_smith() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `644`
-		//  Estimated: `6584`
-		// Minimum execution time: 27_762_000 picoseconds.
-		Weight::from_parts(28_638_000, 0)
-			.saturating_add(Weight::from_parts(0, 6584))
+		//  Measured:  `611`
+		//  Estimated: `6551`
+		// Minimum execution time: 27_487_000 picoseconds.
+		Weight::from_parts(28_750_000, 0)
+			.saturating_add(Weight::from_parts(0, 6551))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -119,8 +119,8 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `1204`
 		//  Estimated: `14569`
-		// Minimum execution time: 68_924_000 picoseconds.
-		Weight::from_parts(73_214_000, 0)
+		// Minimum execution time: 68_866_000 picoseconds.
+		Weight::from_parts(72_461_000, 0)
 			.saturating_add(Weight::from_parts(0, 14569))
 			.saturating_add(T::DbWeight::get().reads(11))
 			.saturating_add(T::DbWeight::get().writes(15))
@@ -131,8 +131,8 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `253`
 		//  Estimated: `3718`
-		// Minimum execution time: 3_854_000 picoseconds.
-		Weight::from_parts(4_173_000, 0)
+		// Minimum execution time: 3_846_000 picoseconds.
+		Weight::from_parts(4_128_000, 0)
 			.saturating_add(Weight::from_parts(0, 3718))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
diff --git a/runtime/g1/src/weights/pallet_sudo.rs b/runtime/g1/src/weights/pallet_sudo.rs
index f6706d7984f089de7eb9dd504b177c6c5a8355e1..e18bec1e3dccb14b1f4b5412415cefd33d25ed06 100644
--- a/runtime/g1/src/weights/pallet_sudo.rs
+++ b/runtime/g1/src/weights/pallet_sudo.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_sudo`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 9_039_000 picoseconds.
-		Weight::from_parts(9_530_000, 0)
+		// Minimum execution time: 14_742_000 picoseconds.
+		Weight::from_parts(16_374_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -65,8 +65,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 9_819_000 picoseconds.
-		Weight::from_parts(10_161_000, 0)
+		// Minimum execution time: 16_905_000 picoseconds.
+		Weight::from_parts(17_840_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -76,8 +76,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 9_943_000 picoseconds.
-		Weight::from_parts(10_321_000, 0)
+		// Minimum execution time: 14_551_000 picoseconds.
+		Weight::from_parts(18_663_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -87,8 +87,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 8_325_000 picoseconds.
-		Weight::from_parts(8_883_000, 0)
+		// Minimum execution time: 15_390_000 picoseconds.
+		Weight::from_parts(16_195_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/g1/src/weights/pallet_timestamp.rs b/runtime/g1/src/weights/pallet_timestamp.rs
index 96440e1d0d8427a7d16351b59f3f52825ec47639..5f448039747187727327af94b3ed5707b09a911a 100644
--- a/runtime/g1/src/weights/pallet_timestamp.rs
+++ b/runtime/g1/src/weights/pallet_timestamp.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_timestamp`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -57,8 +57,8 @@ impl<T: frame_system::Config> pallet_timestamp::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `268`
 		//  Estimated: `1493`
-		// Minimum execution time: 11_710_000 picoseconds.
-		Weight::from_parts(12_366_000, 0)
+		// Minimum execution time: 11_596_000 picoseconds.
+		Weight::from_parts(12_059_000, 0)
 			.saturating_add(Weight::from_parts(0, 1493))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -67,8 +67,8 @@ impl<T: frame_system::Config> pallet_timestamp::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `57`
 		//  Estimated: `0`
-		// Minimum execution time: 3_490_000 picoseconds.
-		Weight::from_parts(3_811_000, 0)
+		// Minimum execution time: 3_491_000 picoseconds.
+		Weight::from_parts(3_720_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/runtime/g1/src/weights/pallet_treasury.rs b/runtime/g1/src/weights/pallet_treasury.rs
index 4dc101cb8a1dbc55adc6d34af6e43542b83972e1..0a24d4630b419ac59a5bde9c161af9649ac4d31f 100644
--- a/runtime/g1/src/weights/pallet_treasury.rs
+++ b/runtime/g1/src/weights/pallet_treasury.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_treasury`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -61,8 +61,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6`
 		//  Estimated: `1887`
-		// Minimum execution time: 3_338_000 picoseconds.
-		Weight::from_parts(3_696_000, 0)
+		// Minimum execution time: 3_423_000 picoseconds.
+		Weight::from_parts(3_620_000, 0)
 			.saturating_add(Weight::from_parts(0, 1887))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -77,11 +77,11 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `82 + p * (1 ±0)`
 		//  Estimated: `3558`
-		// Minimum execution time: 15_544_000 picoseconds.
-		Weight::from_parts(16_586_598, 0)
+		// Minimum execution time: 14_864_000 picoseconds.
+		Weight::from_parts(16_426_439, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
-			// Standard Error: 652
-			.saturating_add(Weight::from_parts(34_361, 0).saturating_mul(p.into()))
+			// Standard Error: 631
+			.saturating_add(Weight::from_parts(31_939, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -99,8 +99,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6`
 		//  Estimated: `3526`
-		// Minimum execution time: 4_737_000 picoseconds.
-		Weight::from_parts(6_080_000, 0)
+		// Minimum execution time: 4_574_000 picoseconds.
+		Weight::from_parts(4_777_000, 0)
 			.saturating_add(Weight::from_parts(0, 3526))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -110,8 +110,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6`
 		//  Estimated: `3526`
-		// Minimum execution time: 4_559_000 picoseconds.
-		Weight::from_parts(4_757_000, 0)
+		// Minimum execution time: 4_534_000 picoseconds.
+		Weight::from_parts(4_797_000, 0)
 			.saturating_add(Weight::from_parts(0, 3526))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -121,8 +121,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6`
 		//  Estimated: `3526`
-		// Minimum execution time: 4_051_000 picoseconds.
-		Weight::from_parts(4_414_000, 0)
+		// Minimum execution time: 3_950_000 picoseconds.
+		Weight::from_parts(4_273_000, 0)
 			.saturating_add(Weight::from_parts(0, 3526))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
diff --git a/runtime/g1/src/weights/pallet_universal_dividend.rs b/runtime/g1/src/weights/pallet_universal_dividend.rs
index 42e477446cf583232dd83df3f429e3a7f3f54908..29c0cb9c99bc5f8f1cc261bddad6259bca020b0e 100644
--- a/runtime/g1/src/weights/pallet_universal_dividend.rs
+++ b/runtime/g1/src/weights/pallet_universal_dividend.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_universal_dividend`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -60,13 +60,13 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 	/// The range of component `i` is `[1, 160]`.
 	fn claim_uds(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `709`
-		//  Estimated: `4174`
-		// Minimum execution time: 36_436_000 picoseconds.
-		Weight::from_parts(38_389_932, 0)
-			.saturating_add(Weight::from_parts(0, 4174))
-			// Standard Error: 407
-			.saturating_add(Weight::from_parts(316, 0).saturating_mul(i.into()))
+		//  Measured:  `676`
+		//  Estimated: `4141`
+		// Minimum execution time: 36_133_000 picoseconds.
+		Weight::from_parts(37_986_178, 0)
+			.saturating_add(Weight::from_parts(0, 4141))
+			// Standard Error: 574
+			.saturating_add(Weight::from_parts(103, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -78,8 +78,8 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `156`
 		//  Estimated: `6126`
-		// Minimum execution time: 56_411_000 picoseconds.
-		Weight::from_parts(57_616_000, 0)
+		// Minimum execution time: 55_145_000 picoseconds.
+		Weight::from_parts(56_570_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -92,8 +92,8 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `93`
 		//  Estimated: `3558`
-		// Minimum execution time: 34_875_000 picoseconds.
-		Weight::from_parts(35_945_000, 0)
+		// Minimum execution time: 34_661_000 picoseconds.
+		Weight::from_parts(35_441_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -105,15 +105,13 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 	/// Storage: `System::Account` (r:1 w:1)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`)
 	/// The range of component `i` is `[1, 160]`.
-	fn on_removed_member(i: u32, ) -> Weight {
+	fn on_removed_member(_i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `181`
 		//  Estimated: `3558`
-		// Minimum execution time: 20_319_000 picoseconds.
-		Weight::from_parts(21_541_050, 0)
+		// Minimum execution time: 19_857_000 picoseconds.
+		Weight::from_parts(21_177_816, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
-			// Standard Error: 362
-			.saturating_add(Weight::from_parts(119, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/g1/src/weights/pallet_upgrade_origin.rs b/runtime/g1/src/weights/pallet_upgrade_origin.rs
index d7abb94adf876c5f9120dc2ca87acfd21766dc63..8347cfa36b571dcce40b39e5ad396c715c89c56d 100644
--- a/runtime/g1/src/weights/pallet_upgrade_origin.rs
+++ b/runtime/g1/src/weights/pallet_upgrade_origin.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_upgrade_origin`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -51,8 +51,8 @@ impl<T: frame_system::Config> pallet_upgrade_origin::WeightInfo for WeightInfo<T
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_781_000 picoseconds.
-		Weight::from_parts(6_004_000, 0)
+		// Minimum execution time: 5_566_000 picoseconds.
+		Weight::from_parts(6_024_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/runtime/g1/src/weights/pallet_utility.rs b/runtime/g1/src/weights/pallet_utility.rs
index 51a27afd16b560f2422c793e5af0a9cec14fca51..7843c72a379b16b8b087936f62ae66dfbdc2862e 100644
--- a/runtime/g1/src/weights/pallet_utility.rs
+++ b/runtime/g1/src/weights/pallet_utility.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_utility`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -52,18 +52,18 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_443_000 picoseconds.
-		Weight::from_parts(11_691_812, 0)
+		// Minimum execution time: 4_367_000 picoseconds.
+		Weight::from_parts(10_202_249, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 975
-			.saturating_add(Weight::from_parts(2_271_470, 0).saturating_mul(c.into()))
+			// Standard Error: 2_134
+			.saturating_add(Weight::from_parts(2_080_987, 0).saturating_mul(c.into()))
 	}
 	fn as_derivative() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_680_000 picoseconds.
-		Weight::from_parts(3_997_000, 0)
+		// Minimum execution time: 3_604_000 picoseconds.
+		Weight::from_parts(3_823_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `c` is `[0, 1000]`.
@@ -71,18 +71,18 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_464_000 picoseconds.
-		Weight::from_parts(7_360_289, 0)
+		// Minimum execution time: 4_176_000 picoseconds.
+		Weight::from_parts(8_249_429, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 1_069
-			.saturating_add(Weight::from_parts(2_442_339, 0).saturating_mul(c.into()))
+			// Standard Error: 1_370
+			.saturating_add(Weight::from_parts(2_246_488, 0).saturating_mul(c.into()))
 	}
 	fn dispatch_as() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_074_000 picoseconds.
-		Weight::from_parts(6_363_000, 0)
+		// Minimum execution time: 5_614_000 picoseconds.
+		Weight::from_parts(5_966_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `c` is `[0, 1000]`.
@@ -90,10 +90,10 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_684_000 picoseconds.
-		Weight::from_parts(9_159_803, 0)
+		// Minimum execution time: 4_229_000 picoseconds.
+		Weight::from_parts(9_631_889, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 935
-			.saturating_add(Weight::from_parts(2_276_360, 0).saturating_mul(c.into()))
+			// Standard Error: 1_987
+			.saturating_add(Weight::from_parts(2_071_887, 0).saturating_mul(c.into()))
 	}
 }
diff --git a/runtime/g1/src/weights/paritydb_weights.rs b/runtime/g1/src/weights/paritydb_weights.rs
index b1427ac5ab8c4f8142111b74f0cc1c11b07a7171..9dc380e7f3be47955b1b279afda5f176a907bc44 100644
--- a/runtime/g1/src/weights/paritydb_weights.rs
+++ b/runtime/g1/src/weights/paritydb_weights.rs
@@ -1,6 +1,6 @@
 
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28 (Y/M/D)
+//! DATE: 2024-11-14 (Y/M/D)
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //!
 //! DATABASE: `ParityDb`, RUNTIME: `Ğ1 Local Testnet`
@@ -34,31 +34,31 @@ pub mod constants {
 			/// Calculated by multiplying the *Average* of all values with `2.0` and adding `0`.
 			///
 			/// Stats nanoseconds:
-			///   Min, Max: 896, 1_118_224
-			///   Average:  8_595
-			///   Median:   1_325
-			///   Std-Dev:  88562.05
+			///   Min, Max: 943, 1_429_396
+			///   Average:  10_892
+			///   Median:   1_796
+			///   Std-Dev:  113211.69
 			///
 			/// Percentiles nanoseconds:
-			///   99th: 10_223
-			///   95th: 2_718
-			///   75th: 1_606
-			read: 17_190 * constants::WEIGHT_REF_TIME_PER_NANOS,
+			///   99th: 9_782
+			///   95th: 2_776
+			///   75th: 2_041
+			read: 21_784 * constants::WEIGHT_REF_TIME_PER_NANOS,
 
 			/// Time to write one storage item.
 			/// Calculated by multiplying the *Average* of all values with `2.0` and adding `0`.
 			///
 			/// Stats nanoseconds:
-			///   Min, Max: 3_779, 6_930_852
-			///   Average:  53_733
-			///   Median:   9_966
-			///   Std-Dev:  548863.87
+			///   Min, Max: 3_908, 6_543_821
+			///   Average:  51_524
+			///   Median:   10_509
+			///   Std-Dev:  518150.54
 			///
 			/// Percentiles nanoseconds:
-			///   99th: 24_839
-			///   95th: 14_850
-			///   75th: 11_965
-			write: 107_466 * constants::WEIGHT_REF_TIME_PER_NANOS,
+			///   99th: 16_922
+			///   95th: 15_073
+			///   75th: 12_634
+			write: 103_048 * constants::WEIGHT_REF_TIME_PER_NANOS,
 		};
 	}
 
diff --git a/runtime/gdev/src/lib.rs b/runtime/gdev/src/lib.rs
index 9f06ac80ca53865bce9672ef70477f4fd61d61dc..7130b2a54d9afa30a179d0b08c69ddad7cc5178a 100644
--- a/runtime/gdev/src/lib.rs
+++ b/runtime/gdev/src/lib.rs
@@ -35,10 +35,7 @@ pub use common_runtime::{
     constants::*, entities::*, handlers::*, AccountId, Address, Balance, BlockNumber,
     FullIdentificationOfImpl, GetCurrentEpochIndex, Hash, Header, IdtyIndex, Index, Signature,
 };
-use frame_support::{
-    traits::{fungible::Balanced, Contains, Imbalance},
-    PalletId,
-};
+use frame_support::{traits::Contains, PalletId};
 pub use frame_system::Call as SystemCall;
 use frame_system::EnsureRoot;
 pub use pallet_balances::Call as BalancesCall;
diff --git a/runtime/gdev/src/parameters.rs b/runtime/gdev/src/parameters.rs
index 0b7083313bb62d7606d0af4fd06fa1e15085bf81..bcca8e7d2315b7d331a026fc53174199fbe31571 100644
--- a/runtime/gdev/src/parameters.rs
+++ b/runtime/gdev/src/parameters.rs
@@ -90,8 +90,10 @@ parameter_types! {
 
 // Identity
 frame_support::parameter_types! {
+    // for gdev we can have short periods
     pub const ChangeOwnerKeyPeriod: BlockNumber = 7 * DAYS;
-    pub const AutorevocationPeriod: BlockNumber = YEARS;
+    pub const AutorevocationPeriod: BlockNumber = MONTHS;
+    pub const DeletionPeriod: BlockNumber = MONTHS;
 }
 
 // Membership
diff --git a/runtime/gdev/src/weights/block_weights.rs b/runtime/gdev/src/weights/block_weights.rs
index b3f70181b4711ee45ee7af2bf0f810143ebd93cb..25e351c31779f2f95b3923c1133d57e2d38e26d0 100644
--- a/runtime/gdev/src/weights/block_weights.rs
+++ b/runtime/gdev/src/weights/block_weights.rs
@@ -1,6 +1,6 @@
 
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28 (Y/M/D)
+//! DATE: 2024-11-14 (Y/M/D)
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //!
 //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Ğdev Local Testnet`
@@ -26,17 +26,17 @@ parameter_types! {
 	/// Calculated by multiplying the *Average* with `1.0` and adding `0`.
 	///
 	/// Stats nanoseconds:
-	///   Min, Max: 126_813, 342_923
-	///   Average:  139_677
-	///   Median:   137_396
-	///   Std-Dev:  21189.71
+	///   Min, Max: 125_984, 207_856
+	///   Average:  133_878
+	///   Median:   130_736
+	///   Std-Dev:  10123.25
 	///
 	/// Percentiles nanoseconds:
-	///   99th: 174_763
-	///   95th: 144_408
-	///   75th: 138_915
+	///   99th: 168_181
+	///   95th: 146_504
+	///   75th: 135_864
 	pub const BlockExecutionWeight: Weight =
-		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(139_677), 0);
+		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(133_878), 0);
 }
 
 #[cfg(test)]
diff --git a/runtime/gdev/src/weights/extrinsic_weights.rs b/runtime/gdev/src/weights/extrinsic_weights.rs
index 57f1ddea78fa6dff24083f90e709bed2bc5767f4..6a5a8422134fbf63203f7a8da120a9020a312e97 100644
--- a/runtime/gdev/src/weights/extrinsic_weights.rs
+++ b/runtime/gdev/src/weights/extrinsic_weights.rs
@@ -1,6 +1,6 @@
 
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28 (Y/M/D)
+//! DATE: 2024-11-14 (Y/M/D)
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //!
 //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Ğdev Local Testnet`
@@ -26,17 +26,17 @@ parameter_types! {
 	/// Calculated by multiplying the *Average* with `1.0` and adding `0`.
 	///
 	/// Stats nanoseconds:
-	///   Min, Max: 90_407, 91_183
-	///   Average:  90_667
-	///   Median:   90_647
-	///   Std-Dev:  135.21
+	///   Min, Max: 87_363, 88_194
+	///   Average:  87_587
+	///   Median:   87_531
+	///   Std-Dev:  159.97
 	///
 	/// Percentiles nanoseconds:
-	///   99th: 91_161
-	///   95th: 90_893
-	///   75th: 90_734
+	///   99th: 88_182
+	///   95th: 87_891
+	///   75th: 87_627
 	pub const ExtrinsicBaseWeight: Weight =
-		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(90_667), 0);
+		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(87_587), 0);
 }
 
 #[cfg(test)]
diff --git a/runtime/gdev/src/weights/frame_benchmarking_baseline.rs b/runtime/gdev/src/weights/frame_benchmarking_baseline.rs
index 931ec5c703dd6a608c5bc6eef004fb9aa7745ec1..308b9fc55d5f2cc240e9e054244252c7da52a06d 100644
--- a/runtime/gdev/src/weights/frame_benchmarking_baseline.rs
+++ b/runtime/gdev/src/weights/frame_benchmarking_baseline.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `frame_benchmarking::baseline`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -52,8 +52,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 92_000 picoseconds.
-		Weight::from_parts(127_414, 0)
+		// Minimum execution time: 81_000 picoseconds.
+		Weight::from_parts(111_848, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -61,8 +61,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 85_000 picoseconds.
-		Weight::from_parts(131_130, 0)
+		// Minimum execution time: 82_000 picoseconds.
+		Weight::from_parts(113_145, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -70,8 +70,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 86_000 picoseconds.
-		Weight::from_parts(130_684, 0)
+		// Minimum execution time: 82_000 picoseconds.
+		Weight::from_parts(115_439, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -79,16 +79,16 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 93_000 picoseconds.
-		Weight::from_parts(130_781, 0)
+		// Minimum execution time: 82_000 picoseconds.
+		Weight::from_parts(113_450, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn hashing() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 20_341_231_000 picoseconds.
-		Weight::from_parts(20_438_091_000, 0)
+		// Minimum execution time: 20_005_636_000 picoseconds.
+		Weight::from_parts(20_077_845_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 100]`.
@@ -97,9 +97,9 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		//  Measured:  `0`
 		//  Estimated: `0`
 		// Minimum execution time: 96_000 picoseconds.
-		Weight::from_parts(35_171_935, 0)
+		Weight::from_parts(28_362_958, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 35_251
-			.saturating_add(Weight::from_parts(31_311_885, 0).saturating_mul(i.into()))
+			// Standard Error: 13_596
+			.saturating_add(Weight::from_parts(31_132_724, 0).saturating_mul(i.into()))
 	}
 }
diff --git a/runtime/gdev/src/weights/frame_system.rs b/runtime/gdev/src/weights/frame_system.rs
index 85fb962d051d03a2093ec70c2e6aecd0ff9f9d6c..9e8028672d2b27ed976082f2c2e84b7b59fc2c9e 100644
--- a/runtime/gdev/src/weights/frame_system.rs
+++ b/runtime/gdev/src/weights/frame_system.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `frame_system`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -52,22 +52,22 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_980_000 picoseconds.
-		Weight::from_parts(1_732_823, 0)
+		// Minimum execution time: 1_696_000 picoseconds.
+		Weight::from_parts(1_873_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(254, 0).saturating_mul(b.into()))
+			.saturating_add(Weight::from_parts(255, 0).saturating_mul(b.into()))
 	}
 	/// The range of component `b` is `[0, 3932160]`.
 	fn remark_with_event(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_961_000 picoseconds.
-		Weight::from_parts(5_085_000, 0)
+		// Minimum execution time: 4_763_000 picoseconds.
+		Weight::from_parts(5_017_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_040, 0).saturating_mul(b.into()))
+			// Standard Error: 0
+			.saturating_add(Weight::from_parts(1_033, 0).saturating_mul(b.into()))
 	}
 	/// Storage: `System::Digest` (r:1 w:1)
 	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
@@ -77,8 +77,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `1485`
-		// Minimum execution time: 3_446_000 picoseconds.
-		Weight::from_parts(3_637_000, 0)
+		// Minimum execution time: 3_242_000 picoseconds.
+		Weight::from_parts(3_651_000, 0)
 			.saturating_add(Weight::from_parts(0, 1485))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -91,8 +91,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `1485`
-		// Minimum execution time: 77_511_333_000 picoseconds.
-		Weight::from_parts(78_141_458_000, 0)
+		// Minimum execution time: 75_208_184_000 picoseconds.
+		Weight::from_parts(76_274_392_000, 0)
 			.saturating_add(Weight::from_parts(0, 1485))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -104,11 +104,11 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_740_000 picoseconds.
-		Weight::from_parts(1_870_000, 0)
+		// Minimum execution time: 1_810_000 picoseconds.
+		Weight::from_parts(1_896_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 488
-			.saturating_add(Weight::from_parts(595_938, 0).saturating_mul(i.into()))
+			// Standard Error: 595
+			.saturating_add(Weight::from_parts(573_002, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
 	/// Storage: `Skipped::Metadata` (r:0 w:0)
@@ -118,11 +118,11 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_782_000 picoseconds.
-		Weight::from_parts(1_871_000, 0)
+		// Minimum execution time: 1_800_000 picoseconds.
+		Weight::from_parts(1_962_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 570
-			.saturating_add(Weight::from_parts(455_197, 0).saturating_mul(i.into()))
+			// Standard Error: 658
+			.saturating_add(Weight::from_parts(456_239, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
 	/// Storage: `Skipped::Metadata` (r:0 w:0)
@@ -132,11 +132,11 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + p * (69 ±0)`
 		//  Estimated: `76 + p * (70 ±0)`
-		// Minimum execution time: 3_398_000 picoseconds.
-		Weight::from_parts(3_494_000, 0)
+		// Minimum execution time: 3_436_000 picoseconds.
+		Weight::from_parts(3_503_000, 0)
 			.saturating_add(Weight::from_parts(0, 76))
-			// Standard Error: 749
-			.saturating_add(Weight::from_parts(1_035_125, 0).saturating_mul(p.into()))
+			// Standard Error: 1_081
+			.saturating_add(Weight::from_parts(1_048_984, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into())))
 			.saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into()))
@@ -147,8 +147,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_618_000 picoseconds.
-		Weight::from_parts(10_212_000, 0)
+		// Minimum execution time: 7_901_000 picoseconds.
+		Weight::from_parts(8_927_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -162,8 +162,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `22`
 		//  Estimated: `1518`
-		// Minimum execution time: 82_296_674_000 picoseconds.
-		Weight::from_parts(82_804_290_000, 0)
+		// Minimum execution time: 79_470_902_000 picoseconds.
+		Weight::from_parts(80_314_512_000, 0)
 			.saturating_add(Weight::from_parts(0, 1518))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/gdev/src/weights/pallet_authority_members.rs b/runtime/gdev/src/weights/pallet_authority_members.rs
index c054dcd6757ae4498368ccad2965498917235aa9..336b241bb8feb4df7d9c94a66603b742fd8ae509 100644
--- a/runtime/gdev/src/weights/pallet_authority_members.rs
+++ b/runtime/gdev/src/weights/pallet_authority_members.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_authority_members`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -61,11 +61,11 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof: `AuthorityMembers::OnlineAuthorities` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn go_offline() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `933`
-		//  Estimated: `4398`
-		// Minimum execution time: 25_789_000 picoseconds.
-		Weight::from_parts(26_891_000, 0)
-			.saturating_add(Weight::from_parts(0, 4398))
+		//  Measured:  `900`
+		//  Estimated: `4365`
+		// Minimum execution time: 24_733_000 picoseconds.
+		Weight::from_parts(25_917_000, 0)
+			.saturating_add(Weight::from_parts(0, 4365))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -87,11 +87,11 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof: `AuthorityMembers::OnlineAuthorities` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn go_online() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1390`
-		//  Estimated: `4855`
-		// Minimum execution time: 34_142_000 picoseconds.
-		Weight::from_parts(35_952_000, 0)
-			.saturating_add(Weight::from_parts(0, 4855))
+		//  Measured:  `1357`
+		//  Estimated: `4822`
+		// Minimum execution time: 34_853_000 picoseconds.
+		Weight::from_parts(37_363_000, 0)
+			.saturating_add(Weight::from_parts(0, 4822))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -109,11 +109,11 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof: `AuthorityMembers::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn set_session_keys() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1839`
-		//  Estimated: `12729`
-		// Minimum execution time: 45_148_000 picoseconds.
-		Weight::from_parts(46_043_000, 0)
-			.saturating_add(Weight::from_parts(0, 12729))
+		//  Measured:  `1806`
+		//  Estimated: `12696`
+		// Minimum execution time: 44_839_000 picoseconds.
+		Weight::from_parts(47_421_000, 0)
+			.saturating_add(Weight::from_parts(0, 12696))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -135,8 +135,8 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `848`
 		//  Estimated: `4313`
-		// Minimum execution time: 39_618_000 picoseconds.
-		Weight::from_parts(42_080_000, 0)
+		// Minimum execution time: 39_034_000 picoseconds.
+		Weight::from_parts(40_210_000, 0)
 			.saturating_add(Weight::from_parts(0, 4313))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(10))
@@ -147,8 +147,8 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `199`
 		//  Estimated: `1684`
-		// Minimum execution time: 9_955_000 picoseconds.
-		Weight::from_parts(10_344_000, 0)
+		// Minimum execution time: 9_200_000 picoseconds.
+		Weight::from_parts(9_531_000, 0)
 			.saturating_add(Weight::from_parts(0, 1684))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/gdev/src/weights/pallet_balances.rs b/runtime/gdev/src/weights/pallet_balances.rs
index 023fe977dbb01db1b9414fb85f749d4c00b19a2f..7fbe15f29230a31cb202f9ad1dbc149e1febd2bc 100644
--- a/runtime/gdev/src/weights/pallet_balances.rs
+++ b/runtime/gdev/src/weights/pallet_balances.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_balances`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `63`
 		//  Estimated: `6126`
-		// Minimum execution time: 53_001_000 picoseconds.
-		Weight::from_parts(54_199_000, 0)
+		// Minimum execution time: 49_369_000 picoseconds.
+		Weight::from_parts(50_998_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -65,8 +65,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3558`
-		// Minimum execution time: 31_272_000 picoseconds.
-		Weight::from_parts(33_042_000, 0)
+		// Minimum execution time: 30_729_000 picoseconds.
+		Weight::from_parts(31_164_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -77,8 +77,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `134`
 		//  Estimated: `3558`
-		// Minimum execution time: 11_337_000 picoseconds.
-		Weight::from_parts(11_774_000, 0)
+		// Minimum execution time: 11_010_000 picoseconds.
+		Weight::from_parts(11_750_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -89,8 +89,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `134`
 		//  Estimated: `3558`
-		// Minimum execution time: 17_295_000 picoseconds.
-		Weight::from_parts(18_211_000, 0)
+		// Minimum execution time: 18_124_000 picoseconds.
+		Weight::from_parts(18_755_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -101,8 +101,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `126`
 		//  Estimated: `8694`
-		// Minimum execution time: 51_846_000 picoseconds.
-		Weight::from_parts(53_291_000, 0)
+		// Minimum execution time: 51_160_000 picoseconds.
+		Weight::from_parts(52_812_000, 0)
 			.saturating_add(Weight::from_parts(0, 8694))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -113,8 +113,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3558`
-		// Minimum execution time: 39_410_000 picoseconds.
-		Weight::from_parts(41_330_000, 0)
+		// Minimum execution time: 37_649_000 picoseconds.
+		Weight::from_parts(38_367_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -125,8 +125,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `134`
 		//  Estimated: `3558`
-		// Minimum execution time: 14_981_000 picoseconds.
-		Weight::from_parts(15_905_000, 0)
+		// Minimum execution time: 13_983_000 picoseconds.
+		Weight::from_parts(14_543_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -135,8 +135,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_622_000 picoseconds.
-		Weight::from_parts(5_939_000, 0)
+		// Minimum execution time: 5_204_000 picoseconds.
+		Weight::from_parts(5_578_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `System::Account` (r:1 w:1)
@@ -145,8 +145,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `63`
 		//  Estimated: `3558`
-		// Minimum execution time: 37_807_000 picoseconds.
-		Weight::from_parts(38_486_000, 0)
+		// Minimum execution time: 35_473_000 picoseconds.
+		Weight::from_parts(39_186_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -155,8 +155,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 16_793_000 picoseconds.
-		Weight::from_parts(17_644_000, 0)
+		// Minimum execution time: 16_907_000 picoseconds.
+		Weight::from_parts(17_393_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/runtime/gdev/src/weights/pallet_certification.rs b/runtime/gdev/src/weights/pallet_certification.rs
index f8701d68c508ea000140108243ceefdb7756401c..e3accd5ecafa1602dc6bfb4affcd1d4e0e4e5f93 100644
--- a/runtime/gdev/src/weights/pallet_certification.rs
+++ b/runtime/gdev/src/weights/pallet_certification.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_certification`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -61,11 +61,11 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 	/// Proof: `Certification::CertsByReceiver` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn add_cert() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1107`
-		//  Estimated: `7047`
-		// Minimum execution time: 39_882_000 picoseconds.
-		Weight::from_parts(41_659_000, 0)
-			.saturating_add(Weight::from_parts(0, 7047))
+		//  Measured:  `1074`
+		//  Estimated: `7014`
+		// Minimum execution time: 39_906_000 picoseconds.
+		Weight::from_parts(41_809_000, 0)
+			.saturating_add(Weight::from_parts(0, 7014))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -83,11 +83,11 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 	/// Proof: `Certification::CertsByReceiver` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn renew_cert() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1130`
-		//  Estimated: `7070`
-		// Minimum execution time: 40_022_000 picoseconds.
-		Weight::from_parts(41_986_000, 0)
-			.saturating_add(Weight::from_parts(0, 7070))
+		//  Measured:  `1097`
+		//  Estimated: `7037`
+		// Minimum execution time: 39_926_000 picoseconds.
+		Weight::from_parts(42_291_000, 0)
+			.saturating_add(Weight::from_parts(0, 7037))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -101,8 +101,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `528`
 		//  Estimated: `6468`
-		// Minimum execution time: 23_278_000 picoseconds.
-		Weight::from_parts(24_092_000, 0)
+		// Minimum execution time: 22_280_000 picoseconds.
+		Weight::from_parts(23_811_000, 0)
 			.saturating_add(Weight::from_parts(0, 6468))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -120,11 +120,11 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `665 + i * (35 ±0)`
 		//  Estimated: `4129 + i * (2511 ±0)`
-		// Minimum execution time: 35_508_000 picoseconds.
-		Weight::from_parts(36_566_000, 0)
+		// Minimum execution time: 33_392_000 picoseconds.
+		Weight::from_parts(34_295_000, 0)
 			.saturating_add(Weight::from_parts(0, 4129))
-			// Standard Error: 26_528
-			.saturating_add(Weight::from_parts(9_711_280, 0).saturating_mul(i.into()))
+			// Standard Error: 24_307
+			.saturating_add(Weight::from_parts(9_192_872, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -137,8 +137,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `139`
 		//  Estimated: `3604`
-		// Minimum execution time: 3_467_000 picoseconds.
-		Weight::from_parts(3_737_000, 0)
+		// Minimum execution time: 3_418_000 picoseconds.
+		Weight::from_parts(3_641_000, 0)
 			.saturating_add(Weight::from_parts(0, 3604))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -148,8 +148,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `276`
 		//  Estimated: `3741`
-		// Minimum execution time: 5_305_000 picoseconds.
-		Weight::from_parts(5_639_000, 0)
+		// Minimum execution time: 5_155_000 picoseconds.
+		Weight::from_parts(5_554_000, 0)
 			.saturating_add(Weight::from_parts(0, 3741))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -166,8 +166,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `822`
 		//  Estimated: `6762`
-		// Minimum execution time: 29_162_000 picoseconds.
-		Weight::from_parts(30_857_000, 0)
+		// Minimum execution time: 29_437_000 picoseconds.
+		Weight::from_parts(30_429_000, 0)
 			.saturating_add(Weight::from_parts(0, 6762))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/gdev/src/weights/pallet_collective.rs b/runtime/gdev/src/weights/pallet_collective.rs
index 448338d959bbba72932d246db34d1ee5962c531c..df49a9036093e7d45a86af39c9d0e698d5306ee3 100644
--- a/runtime/gdev/src/weights/pallet_collective.rs
+++ b/runtime/gdev/src/weights/pallet_collective.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_collective`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -61,14 +61,14 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 	fn set_members(m: u32, _n: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + m * (672 ±0) + p * (3191 ±0)`
-		//  Estimated: `10019 + m * (416 ±5) + p * (4183 ±27)`
-		// Minimum execution time: 12_506_000 picoseconds.
-		Weight::from_parts(12_877_000, 0)
+		//  Estimated: `10019 + m * (416 ±4) + p * (4183 ±23)`
+		// Minimum execution time: 12_896_000 picoseconds.
+		Weight::from_parts(13_232_000, 0)
 			.saturating_add(Weight::from_parts(0, 10019))
-			// Standard Error: 10_258
-			.saturating_add(Weight::from_parts(768_734, 0).saturating_mul(m.into()))
-			// Standard Error: 50_710
-			.saturating_add(Weight::from_parts(7_165_983, 0).saturating_mul(p.into()))
+			// Standard Error: 9_909
+			.saturating_add(Weight::from_parts(743_142, 0).saturating_mul(m.into()))
+			// Standard Error: 48_986
+			.saturating_add(Weight::from_parts(6_907_561, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into())))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -84,13 +84,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `32 + m * (32 ±0)`
 		//  Estimated: `1518 + m * (32 ±0)`
-		// Minimum execution time: 11_312_000 picoseconds.
-		Weight::from_parts(11_053_545, 0)
+		// Minimum execution time: 10_945_000 picoseconds.
+		Weight::from_parts(9_945_180, 0)
 			.saturating_add(Weight::from_parts(0, 1518))
-			// Standard Error: 34
-			.saturating_add(Weight::from_parts(1_089, 0).saturating_mul(b.into()))
-			// Standard Error: 356
-			.saturating_add(Weight::from_parts(12_805, 0).saturating_mul(m.into()))
+			// Standard Error: 35
+			.saturating_add(Weight::from_parts(1_750, 0).saturating_mul(b.into()))
+			// Standard Error: 368
+			.saturating_add(Weight::from_parts(18_189, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
@@ -104,13 +104,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `32 + m * (32 ±0)`
 		//  Estimated: `3498 + m * (32 ±0)`
-		// Minimum execution time: 13_574_000 picoseconds.
-		Weight::from_parts(13_374_994, 0)
+		// Minimum execution time: 13_298_000 picoseconds.
+		Weight::from_parts(12_938_615, 0)
 			.saturating_add(Weight::from_parts(0, 3498))
-			// Standard Error: 42
-			.saturating_add(Weight::from_parts(1_149, 0).saturating_mul(b.into()))
-			// Standard Error: 442
-			.saturating_add(Weight::from_parts(19_034, 0).saturating_mul(m.into()))
+			// Standard Error: 47
+			.saturating_add(Weight::from_parts(1_337, 0).saturating_mul(b.into()))
+			// Standard Error: 490
+			.saturating_add(Weight::from_parts(20_333, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
@@ -131,15 +131,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `24 + m * (32 ±0) + p * (55 ±0)`
 		//  Estimated: `3461 + m * (32 ±0) + p * (54 ±0)`
-		// Minimum execution time: 19_522_000 picoseconds.
-		Weight::from_parts(21_209_024, 0)
+		// Minimum execution time: 19_181_000 picoseconds.
+		Weight::from_parts(19_061_296, 0)
 			.saturating_add(Weight::from_parts(0, 3461))
-			// Standard Error: 195
-			.saturating_add(Weight::from_parts(2_357, 0).saturating_mul(b.into()))
-			// Standard Error: 2_039
-			.saturating_add(Weight::from_parts(18_305, 0).saturating_mul(m.into()))
-			// Standard Error: 10_188
-			.saturating_add(Weight::from_parts(233_956, 0).saturating_mul(p.into()))
+			// Standard Error: 84
+			.saturating_add(Weight::from_parts(2_427, 0).saturating_mul(b.into()))
+			// Standard Error: 878
+			.saturating_add(Weight::from_parts(17_950, 0).saturating_mul(m.into()))
+			// Standard Error: 4_387
+			.saturating_add(Weight::from_parts(317_649, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(4))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
@@ -154,11 +154,11 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `573 + m * (64 ±0)`
 		//  Estimated: `4037 + m * (64 ±0)`
-		// Minimum execution time: 18_070_000 picoseconds.
-		Weight::from_parts(19_572_186, 0)
+		// Minimum execution time: 17_952_000 picoseconds.
+		Weight::from_parts(19_149_079, 0)
 			.saturating_add(Weight::from_parts(0, 4037))
-			// Standard Error: 802
-			.saturating_add(Weight::from_parts(35_411, 0).saturating_mul(m.into()))
+			// Standard Error: 704
+			.saturating_add(Weight::from_parts(37_189, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
@@ -177,13 +177,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `117 + m * (64 ±0) + p * (55 ±0)`
 		//  Estimated: `3591 + m * (64 ±0) + p * (55 ±0)`
-		// Minimum execution time: 22_453_000 picoseconds.
-		Weight::from_parts(21_029_526, 0)
+		// Minimum execution time: 21_558_000 picoseconds.
+		Weight::from_parts(20_999_360, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
-			// Standard Error: 682
-			.saturating_add(Weight::from_parts(31_818, 0).saturating_mul(m.into()))
-			// Standard Error: 3_370
-			.saturating_add(Weight::from_parts(260_644, 0).saturating_mul(p.into()))
+			// Standard Error: 691
+			.saturating_add(Weight::from_parts(29_228, 0).saturating_mul(m.into()))
+			// Standard Error: 3_412
+			.saturating_add(Weight::from_parts(257_256, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
@@ -204,15 +204,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `62 + b * (1 ±0) + m * (64 ±0) + p * (78 ±0)`
 		//  Estimated: `3619 + b * (1 ±0) + m * (63 ±0) + p * (74 ±0)`
-		// Minimum execution time: 31_756_000 picoseconds.
-		Weight::from_parts(29_026_627, 0)
+		// Minimum execution time: 31_206_000 picoseconds.
+		Weight::from_parts(29_531_688, 0)
 			.saturating_add(Weight::from_parts(0, 3619))
-			// Standard Error: 198
-			.saturating_add(Weight::from_parts(3_206, 0).saturating_mul(b.into()))
-			// Standard Error: 2_102
-			.saturating_add(Weight::from_parts(24_848, 0).saturating_mul(m.into()))
-			// Standard Error: 10_371
-			.saturating_add(Weight::from_parts(399_990, 0).saturating_mul(p.into()))
+			// Standard Error: 106
+			.saturating_add(Weight::from_parts(2_677, 0).saturating_mul(b.into()))
+			// Standard Error: 1_120
+			.saturating_add(Weight::from_parts(16_030, 0).saturating_mul(m.into()))
+			// Standard Error: 5_528
+			.saturating_add(Weight::from_parts(392_351, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
@@ -235,13 +235,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `137 + m * (64 ±0) + p * (55 ±0)`
 		//  Estimated: `3611 + m * (64 ±0) + p * (55 ±0)`
-		// Minimum execution time: 25_575_000 picoseconds.
-		Weight::from_parts(23_721_404, 0)
+		// Minimum execution time: 24_903_000 picoseconds.
+		Weight::from_parts(23_436_077, 0)
 			.saturating_add(Weight::from_parts(0, 3611))
-			// Standard Error: 734
-			.saturating_add(Weight::from_parts(36_722, 0).saturating_mul(m.into()))
-			// Standard Error: 3_624
-			.saturating_add(Weight::from_parts(281_541, 0).saturating_mul(p.into()))
+			// Standard Error: 639
+			.saturating_add(Weight::from_parts(34_121, 0).saturating_mul(m.into()))
+			// Standard Error: 3_160
+			.saturating_add(Weight::from_parts(277_625, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
@@ -264,15 +264,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `82 + b * (1 ±0) + m * (64 ±0) + p * (78 ±0)`
 		//  Estimated: `3639 + b * (1 ±0) + m * (63 ±0) + p * (74 ±0)`
-		// Minimum execution time: 33_716_000 picoseconds.
-		Weight::from_parts(32_969_812, 0)
+		// Minimum execution time: 33_181_000 picoseconds.
+		Weight::from_parts(32_018_425, 0)
 			.saturating_add(Weight::from_parts(0, 3639))
-			// Standard Error: 109
-			.saturating_add(Weight::from_parts(2_264, 0).saturating_mul(b.into()))
-			// Standard Error: 1_152
-			.saturating_add(Weight::from_parts(14_586, 0).saturating_mul(m.into()))
-			// Standard Error: 5_685
-			.saturating_add(Weight::from_parts(405_020, 0).saturating_mul(p.into()))
+			// Standard Error: 103
+			.saturating_add(Weight::from_parts(2_307, 0).saturating_mul(b.into()))
+			// Standard Error: 1_099
+			.saturating_add(Weight::from_parts(14_575, 0).saturating_mul(m.into()))
+			// Standard Error: 5_421
+			.saturating_add(Weight::from_parts(406_067, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
@@ -290,11 +290,11 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `189 + p * (32 ±0)`
 		//  Estimated: `1674 + p * (32 ±0)`
-		// Minimum execution time: 11_462_000 picoseconds.
-		Weight::from_parts(12_450_213, 0)
+		// Minimum execution time: 11_094_000 picoseconds.
+		Weight::from_parts(12_093_992, 0)
 			.saturating_add(Weight::from_parts(0, 1674))
-			// Standard Error: 1_937
-			.saturating_add(Weight::from_parts(169_519, 0).saturating_mul(p.into()))
+			// Standard Error: 1_913
+			.saturating_add(Weight::from_parts(178_945, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into()))
diff --git a/runtime/gdev/src/weights/pallet_distance.rs b/runtime/gdev/src/weights/pallet_distance.rs
index 2d021a36a7e6ca6d71b931657c1cbf264c47140c..e0766a3b7c3f62918c4383d44446af10c8f698ce 100644
--- a/runtime/gdev/src/weights/pallet_distance.rs
+++ b/runtime/gdev/src/weights/pallet_distance.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_distance`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -69,11 +69,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn request_distance_evaluation() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1251`
-		//  Estimated: `4716`
-		// Minimum execution time: 70_095_000 picoseconds.
-		Weight::from_parts(72_428_000, 0)
-			.saturating_add(Weight::from_parts(0, 4716))
+		//  Measured:  `1245`
+		//  Estimated: `4710`
+		// Minimum execution time: 69_475_000 picoseconds.
+		Weight::from_parts(71_693_000, 0)
+			.saturating_add(Weight::from_parts(0, 4710))
 			.saturating_add(T::DbWeight::get().reads(10))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -99,11 +99,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn request_distance_evaluation_for() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1280`
-		//  Estimated: `7220`
-		// Minimum execution time: 72_960_000 picoseconds.
-		Weight::from_parts(75_007_000, 0)
-			.saturating_add(Weight::from_parts(0, 7220))
+		//  Measured:  `1274`
+		//  Estimated: `7214`
+		// Minimum execution time: 71_428_000 picoseconds.
+		Weight::from_parts(73_490_000, 0)
+			.saturating_add(Weight::from_parts(0, 7214))
 			.saturating_add(T::DbWeight::get().reads(11))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -122,13 +122,13 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// The range of component `i` is `[1, 1300]`.
 	fn update_evaluation(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `402 + i * (10 ±0)`
-		//  Estimated: `1887 + i * (10 ±0)`
-		// Minimum execution time: 18_073_000 picoseconds.
-		Weight::from_parts(21_116_016, 0)
-			.saturating_add(Weight::from_parts(0, 1887))
-			// Standard Error: 280
-			.saturating_add(Weight::from_parts(104_091, 0).saturating_mul(i.into()))
+		//  Measured:  `425 + i * (10 ±0)`
+		//  Estimated: `1910 + i * (10 ±0)`
+		// Minimum execution time: 18_304_000 picoseconds.
+		Weight::from_parts(20_533_001, 0)
+			.saturating_add(Weight::from_parts(0, 1910))
+			// Standard Error: 75
+			.saturating_add(Weight::from_parts(104_774, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 10).saturating_mul(i.into()))
@@ -140,13 +140,13 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// The range of component `i` is `[1, 1300]`.
 	fn force_update_evaluation(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `139 + i * (10 ±0)`
-		//  Estimated: `1624 + i * (10 ±0)`
-		// Minimum execution time: 6_891_000 picoseconds.
-		Weight::from_parts(7_846_688, 0)
-			.saturating_add(Weight::from_parts(0, 1624))
-			// Standard Error: 625
-			.saturating_add(Weight::from_parts(108_166, 0).saturating_mul(i.into()))
+		//  Measured:  `162 + i * (10 ±0)`
+		//  Estimated: `1647 + i * (10 ±0)`
+		// Minimum execution time: 7_608_000 picoseconds.
+		Weight::from_parts(9_640_107, 0)
+			.saturating_add(Weight::from_parts(0, 1647))
+			// Standard Error: 115
+			.saturating_add(Weight::from_parts(103_664, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 10).saturating_mul(i.into()))
@@ -161,11 +161,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Parameters::ParametersStorage` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn force_valid_distance_status() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `683`
-		//  Estimated: `6623`
-		// Minimum execution time: 32_529_000 picoseconds.
-		Weight::from_parts(33_752_000, 0)
-			.saturating_add(Weight::from_parts(0, 6623))
+		//  Measured:  `650`
+		//  Estimated: `6590`
+		// Minimum execution time: 34_178_000 picoseconds.
+		Weight::from_parts(35_265_000, 0)
+			.saturating_add(Weight::from_parts(0, 6590))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -173,8 +173,8 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 111_000 picoseconds.
-		Weight::from_parts(143_000, 0)
+		// Minimum execution time: 90_000 picoseconds.
+		Weight::from_parts(121_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `System::ParentHash` (r:1 w:0)
@@ -199,11 +199,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Distance::EvaluationBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn do_evaluation_success() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1095`
-		//  Estimated: `7035`
-		// Minimum execution time: 66_382_000 picoseconds.
-		Weight::from_parts(68_312_000, 0)
-			.saturating_add(Weight::from_parts(0, 7035))
+		//  Measured:  `1062`
+		//  Estimated: `7002`
+		// Minimum execution time: 65_468_000 picoseconds.
+		Weight::from_parts(66_665_000, 0)
+			.saturating_add(Weight::from_parts(0, 7002))
 			.saturating_add(T::DbWeight::get().reads(10))
 			.saturating_add(T::DbWeight::get().writes(8))
 	}
@@ -223,8 +223,8 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `475`
 		//  Estimated: `6126`
-		// Minimum execution time: 42_681_000 picoseconds.
-		Weight::from_parts(44_083_000, 0)
+		// Minimum execution time: 41_904_000 picoseconds.
+		Weight::from_parts(43_199_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(6))
@@ -237,11 +237,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Distance::EvaluationBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn do_evaluation_overhead() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `109`
-		//  Estimated: `1594`
-		// Minimum execution time: 3_728_000 picoseconds.
-		Weight::from_parts(3_939_000, 0)
-			.saturating_add(Weight::from_parts(0, 1594))
+		//  Measured:  `136`
+		//  Estimated: `1621`
+		// Minimum execution time: 4_377_000 picoseconds.
+		Weight::from_parts(4_693_000, 0)
+			.saturating_add(Weight::from_parts(0, 1621))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -249,11 +249,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Distance::DidUpdate` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn on_finalize() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `133`
-		//  Estimated: `1618`
-		// Minimum execution time: 3_650_000 picoseconds.
-		Weight::from_parts(3_921_000, 0)
-			.saturating_add(Weight::from_parts(0, 1618))
+		//  Measured:  `157`
+		//  Estimated: `1642`
+		// Minimum execution time: 3_919_000 picoseconds.
+		Weight::from_parts(4_248_000, 0)
+			.saturating_add(Weight::from_parts(0, 1642))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/gdev/src/weights/pallet_duniter_account.rs b/runtime/gdev/src/weights/pallet_duniter_account.rs
index 1c541f353a09a4ddbc4fd8597a262bdac8d7bb37..93a07cf65a36346deb70414bc6e17aceb941597b 100644
--- a/runtime/gdev/src/weights/pallet_duniter_account.rs
+++ b/runtime/gdev/src/weights/pallet_duniter_account.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_duniter_account`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_duniter_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3558`
-		// Minimum execution time: 4_403_000 picoseconds.
-		Weight::from_parts(4_572_000, 0)
+		// Minimum execution time: 4_201_000 picoseconds.
+		Weight::from_parts(4_489_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/gdev/src/weights/pallet_identity.rs b/runtime/gdev/src/weights/pallet_identity.rs
index 6e2a02f9686218ed05d2c097c4ada3f9aa7f1eb5..9a72d7a2eccf70d26c2550b5b873ea5e14ebd91d 100644
--- a/runtime/gdev/src/weights/pallet_identity.rs
+++ b/runtime/gdev/src/weights/pallet_identity.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_identity`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -71,11 +71,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn create_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1210`
-		//  Estimated: `7150`
-		// Minimum execution time: 78_735_000 picoseconds.
-		Weight::from_parts(81_316_000, 0)
-			.saturating_add(Weight::from_parts(0, 7150))
+		//  Measured:  `1153`
+		//  Estimated: `7093`
+		// Minimum execution time: 74_883_000 picoseconds.
+		Weight::from_parts(76_913_000, 0)
+			.saturating_add(Weight::from_parts(0, 7093))
 			.saturating_add(T::DbWeight::get().reads(13))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
@@ -89,11 +89,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn confirm_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `822`
-		//  Estimated: `6762`
-		// Minimum execution time: 35_927_000 picoseconds.
-		Weight::from_parts(37_172_000, 0)
-			.saturating_add(Weight::from_parts(0, 6762))
+		//  Measured:  `784`
+		//  Estimated: `6724`
+		// Minimum execution time: 33_847_000 picoseconds.
+		Weight::from_parts(35_691_000, 0)
+			.saturating_add(Weight::from_parts(0, 6724))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -111,8 +111,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `964`
 		//  Estimated: `6904`
-		// Minimum execution time: 84_868_000 picoseconds.
-		Weight::from_parts(86_664_000, 0)
+		// Minimum execution time: 85_653_000 picoseconds.
+		Weight::from_parts(87_817_000, 0)
 			.saturating_add(Weight::from_parts(0, 6904))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(5))
@@ -129,11 +129,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn revoke_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `731`
-		//  Estimated: `6671`
-		// Minimum execution time: 70_572_000 picoseconds.
-		Weight::from_parts(72_810_000, 0)
-			.saturating_add(Weight::from_parts(0, 6671))
+		//  Measured:  `697`
+		//  Estimated: `6637`
+		// Minimum execution time: 70_095_000 picoseconds.
+		Weight::from_parts(71_457_000, 0)
+			.saturating_add(Weight::from_parts(0, 6637))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
@@ -144,11 +144,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_160_000 picoseconds.
-		Weight::from_parts(4_249_000, 0)
+		// Minimum execution time: 4_026_000 picoseconds.
+		Weight::from_parts(4_134_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 1_354
-			.saturating_add(Weight::from_parts(1_229_973, 0).saturating_mul(i.into()))
+			// Standard Error: 1_522
+			.saturating_add(Weight::from_parts(1_203_862, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
@@ -158,8 +158,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `104`
 		//  Estimated: `3558`
-		// Minimum execution time: 7_530_000 picoseconds.
-		Weight::from_parts(7_911_000, 0)
+		// Minimum execution time: 7_211_000 picoseconds.
+		Weight::from_parts(7_534_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -172,11 +172,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`)
 	fn link_account() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `436`
-		//  Estimated: `3901`
-		// Minimum execution time: 55_190_000 picoseconds.
-		Weight::from_parts(56_667_000, 0)
-			.saturating_add(Weight::from_parts(0, 3901))
+		//  Measured:  `403`
+		//  Estimated: `3868`
+		// Minimum execution time: 53_282_000 picoseconds.
+		Weight::from_parts(55_526_000, 0)
+			.saturating_add(Weight::from_parts(0, 3868))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -192,16 +192,16 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_revoke_identity_noop() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `360`
-		//  Estimated: `3825`
-		// Minimum execution time: 5_155_000 picoseconds.
-		Weight::from_parts(5_460_000, 0)
-			.saturating_add(Weight::from_parts(0, 3825))
+		//  Measured:  `327`
+		//  Estimated: `3792`
+		// Minimum execution time: 4_944_000 picoseconds.
+		Weight::from_parts(5_504_000, 0)
+			.saturating_add(Weight::from_parts(0, 3792))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:1)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
-	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:1)
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Membership::Membership` (r:1 w:1)
 	/// Proof: `Membership::Membership` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -231,23 +231,23 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_revoke_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1931`
-		//  Estimated: `15296`
-		// Minimum execution time: 114_415_000 picoseconds.
-		Weight::from_parts(121_569_000, 0)
-			.saturating_add(Weight::from_parts(0, 15296))
+		//  Measured:  `1874`
+		//  Estimated: `15239`
+		// Minimum execution time: 109_544_000 picoseconds.
+		Weight::from_parts(114_718_000, 0)
+			.saturating_add(Weight::from_parts(0, 15239))
 			.saturating_add(T::DbWeight::get().reads(18))
-			.saturating_add(T::DbWeight::get().writes(22))
+			.saturating_add(T::DbWeight::get().writes(21))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:0)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity_noop() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `360`
-		//  Estimated: `3825`
-		// Minimum execution time: 5_061_000 picoseconds.
-		Weight::from_parts(5_471_000, 0)
-			.saturating_add(Weight::from_parts(0, 3825))
+		//  Measured:  `327`
+		//  Estimated: `3792`
+		// Minimum execution time: 5_122_000 picoseconds.
+		Weight::from_parts(5_538_000, 0)
+			.saturating_add(Weight::from_parts(0, 3792))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:1)
@@ -288,11 +288,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2466`
-		//  Estimated: `18306`
-		// Minimum execution time: 161_149_000 picoseconds.
-		Weight::from_parts(167_574_000, 0)
-			.saturating_add(Weight::from_parts(0, 18306))
+		//  Measured:  `2433`
+		//  Estimated: `18273`
+		// Minimum execution time: 156_609_000 picoseconds.
+		Weight::from_parts(159_518_000, 0)
+			.saturating_add(Weight::from_parts(0, 18273))
 			.saturating_add(T::DbWeight::get().reads(25))
 			.saturating_add(T::DbWeight::get().writes(30))
 	}
@@ -304,7 +304,7 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Membership::MembershipsExpireOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Identity::Identities` (r:1 w:1)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
-	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:1)
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `UniversalDividend::CurrentUdIndex` (r:1 w:0)
 	/// Proof: `UniversalDividend::CurrentUdIndex` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
@@ -334,13 +334,13 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity_handler() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2483`
-		//  Estimated: `18323`
-		// Minimum execution time: 165_227_000 picoseconds.
-		Weight::from_parts(171_832_000, 0)
-			.saturating_add(Weight::from_parts(0, 18323))
+		//  Measured:  `2426`
+		//  Estimated: `18266`
+		// Minimum execution time: 150_300_000 picoseconds.
+		Weight::from_parts(156_007_000, 0)
+			.saturating_add(Weight::from_parts(0, 18266))
 			.saturating_add(T::DbWeight::get().reads(26))
-			.saturating_add(T::DbWeight::get().writes(29))
+			.saturating_add(T::DbWeight::get().writes(28))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:1)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -348,11 +348,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn membership_removed() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `441`
-		//  Estimated: `6381`
-		// Minimum execution time: 17_441_000 picoseconds.
-		Weight::from_parts(17_881_000, 0)
-			.saturating_add(Weight::from_parts(0, 6381))
+		//  Measured:  `407`
+		//  Estimated: `6347`
+		// Minimum execution time: 16_757_000 picoseconds.
+		Weight::from_parts(17_538_000, 0)
+			.saturating_add(Weight::from_parts(0, 6347))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -360,11 +360,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn prune_identities_noop() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `165`
-		//  Estimated: `3630`
-		// Minimum execution time: 3_581_000 picoseconds.
-		Weight::from_parts(3_891_000, 0)
-			.saturating_add(Weight::from_parts(0, 3630))
+		//  Measured:  `108`
+		//  Estimated: `3573`
+		// Minimum execution time: 2_751_000 picoseconds.
+		Weight::from_parts(2_919_000, 0)
+			.saturating_add(Weight::from_parts(0, 3573))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: `Identity::IdentityChangeSchedule` (r:1 w:1)
@@ -373,11 +373,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn prune_identities_none() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `362`
-		//  Estimated: `3827`
-		// Minimum execution time: 8_191_000 picoseconds.
-		Weight::from_parts(8_541_000, 0)
-			.saturating_add(Weight::from_parts(0, 3827))
+		//  Measured:  `325`
+		//  Estimated: `3790`
+		// Minimum execution time: 7_669_000 picoseconds.
+		Weight::from_parts(7_936_000, 0)
+			.saturating_add(Weight::from_parts(0, 3790))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -399,11 +399,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn prune_identities_err() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `952`
-		//  Estimated: `4417`
-		// Minimum execution time: 39_346_000 picoseconds.
-		Weight::from_parts(41_449_000, 0)
-			.saturating_add(Weight::from_parts(0, 4417))
+		//  Measured:  `915`
+		//  Estimated: `4380`
+		// Minimum execution time: 36_670_000 picoseconds.
+		Weight::from_parts(38_294_000, 0)
+			.saturating_add(Weight::from_parts(0, 4380))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(7))
 	}
diff --git a/runtime/gdev/src/weights/pallet_im_online.rs b/runtime/gdev/src/weights/pallet_im_online.rs
index af6bd0f7c7fc1a525924d3b25abda3e0f912a575..6ceb3a37d3b1d79ee4d9a2d1fc291ca2b965e829 100644
--- a/runtime/gdev/src/weights/pallet_im_online.rs
+++ b/runtime/gdev/src/weights/pallet_im_online.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_im_online`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -64,11 +64,11 @@ impl<T: frame_system::Config> pallet_im_online::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `636 + k * (32 ±0)`
 		//  Estimated: `33487 + k * (1761 ±0)`
-		// Minimum execution time: 58_835_000 picoseconds.
-		Weight::from_parts(77_663_203, 0)
+		// Minimum execution time: 57_925_000 picoseconds.
+		Weight::from_parts(68_829_380, 0)
 			.saturating_add(Weight::from_parts(0, 33487))
-			// Standard Error: 1_184
-			.saturating_add(Weight::from_parts(38_414, 0).saturating_mul(k.into()))
+			// Standard Error: 511
+			.saturating_add(Weight::from_parts(42_097, 0).saturating_mul(k.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into()))
diff --git a/runtime/gdev/src/weights/pallet_membership.rs b/runtime/gdev/src/weights/pallet_membership.rs
index 10caff7d3638a51dec70fdadd98ed6356164c191..65ecfe1fbfc04fede4f98472a307a5d8a52ba176 100644
--- a/runtime/gdev/src/weights/pallet_membership.rs
+++ b/runtime/gdev/src/weights/pallet_membership.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_membership`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -51,11 +51,11 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 128_000 picoseconds.
-		Weight::from_parts(167_000, 0)
+		// Minimum execution time: 92_000 picoseconds.
+		Weight::from_parts(134_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
-	/// Storage: `Membership::MembershipsExpireOn` (r:2 w:2)
+	/// Storage: `Membership::MembershipsExpireOn` (r:2 w:1)
 	/// Proof: `Membership::MembershipsExpireOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Membership::Membership` (r:3 w:3)
 	/// Proof: `Membership::Membership` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -63,7 +63,7 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 	/// Proof: `Membership::CounterForMembership` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::Identities` (r:3 w:3)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
-	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:1)
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `UniversalDividend::CurrentUdIndex` (r:1 w:0)
 	/// Proof: `UniversalDividend::CurrentUdIndex` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
@@ -86,17 +86,17 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 	/// The range of component `i` is `[0, 3]`.
 	fn expire_memberships(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `139 + i * (993 ±0)`
-		//  Estimated: `15060 + i * (2695 ±52)`
-		// Minimum execution time: 5_447_000 picoseconds.
-		Weight::from_parts(15_406_379, 0)
-			.saturating_add(Weight::from_parts(0, 15060))
-			// Standard Error: 672_121
-			.saturating_add(Weight::from_parts(79_899_261, 0).saturating_mul(i.into()))
+		//  Measured:  `139 + i * (964 ±0)`
+		//  Estimated: `15003 + i * (2695 ±1)`
+		// Minimum execution time: 5_291_000 picoseconds.
+		Weight::from_parts(14_481_254, 0)
+			.saturating_add(Weight::from_parts(0, 15003))
+			// Standard Error: 621_173
+			.saturating_add(Weight::from_parts(75_965_540, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().reads((11_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
-			.saturating_add(T::DbWeight::get().writes((15_u64).saturating_mul(i.into())))
+			.saturating_add(T::DbWeight::get().writes((14_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 2695).saturating_mul(i.into()))
 	}
 }
diff --git a/runtime/gdev/src/weights/pallet_multisig.rs b/runtime/gdev/src/weights/pallet_multisig.rs
index a1c133e675a44dca76b10f9a6204d0916be55a83..46e943144efb1d6561ddafe212eece485178c965 100644
--- a/runtime/gdev/src/weights/pallet_multisig.rs
+++ b/runtime/gdev/src/weights/pallet_multisig.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_multisig`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -52,11 +52,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_392_000 picoseconds.
-		Weight::from_parts(5_647_933, 0)
+		// Minimum execution time: 5_396_000 picoseconds.
+		Weight::from_parts(5_623_779, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(325, 0).saturating_mul(z.into()))
+			.saturating_add(Weight::from_parts(333, 0).saturating_mul(z.into()))
 	}
 	/// Storage: `Multisig::Multisigs` (r:1 w:1)
 	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(457), added: 2932, mode: `MaxEncodedLen`)
@@ -66,13 +66,13 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `125 + s * (5 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 27_599_000 picoseconds.
-		Weight::from_parts(27_226_841, 0)
+		// Minimum execution time: 26_997_000 picoseconds.
+		Weight::from_parts(26_773_838, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 5_425
-			.saturating_add(Weight::from_parts(168_113, 0).saturating_mul(s.into()))
-			// Standard Error: 4
-			.saturating_add(Weight::from_parts(1_068, 0).saturating_mul(z.into()))
+			// Standard Error: 6_870
+			.saturating_add(Weight::from_parts(183_324, 0).saturating_mul(s.into()))
+			// Standard Error: 5
+			.saturating_add(Weight::from_parts(1_065, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -84,13 +84,13 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `240`
 		//  Estimated: `3922`
-		// Minimum execution time: 15_589_000 picoseconds.
-		Weight::from_parts(15_198_549, 0)
+		// Minimum execution time: 14_928_000 picoseconds.
+		Weight::from_parts(15_130_376, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 3_468
-			.saturating_add(Weight::from_parts(110_118, 0).saturating_mul(s.into()))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_074, 0).saturating_mul(z.into()))
+			// Standard Error: 16_514
+			.saturating_add(Weight::from_parts(129_475, 0).saturating_mul(s.into()))
+			// Standard Error: 12
+			.saturating_add(Weight::from_parts(1_047, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -104,13 +104,13 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `259 + s * (37 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 30_477_000 picoseconds.
-		Weight::from_parts(30_171_082, 0)
+		// Minimum execution time: 29_450_000 picoseconds.
+		Weight::from_parts(29_552_613, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 5_508
-			.saturating_add(Weight::from_parts(149_890, 0).saturating_mul(s.into()))
-			// Standard Error: 4
-			.saturating_add(Weight::from_parts(1_067, 0).saturating_mul(z.into()))
+			// Standard Error: 6_111
+			.saturating_add(Weight::from_parts(140_936, 0).saturating_mul(s.into()))
+			// Standard Error: 5
+			.saturating_add(Weight::from_parts(1_092, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -121,11 +121,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `130 + s * (5 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 25_336_000 picoseconds.
-		Weight::from_parts(26_527_402, 0)
+		// Minimum execution time: 24_939_000 picoseconds.
+		Weight::from_parts(26_105_489, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 5_763
-			.saturating_add(Weight::from_parts(175_489, 0).saturating_mul(s.into()))
+			// Standard Error: 5_762
+			.saturating_add(Weight::from_parts(152_946, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -136,11 +136,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `240`
 		//  Estimated: `3922`
-		// Minimum execution time: 13_850_000 picoseconds.
-		Weight::from_parts(14_488_301, 0)
+		// Minimum execution time: 13_390_000 picoseconds.
+		Weight::from_parts(14_151_697, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 3_043
-			.saturating_add(Weight::from_parts(118_437, 0).saturating_mul(s.into()))
+			// Standard Error: 3_383
+			.saturating_add(Weight::from_parts(131_761, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -151,11 +151,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `328 + s * (5 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 26_232_000 picoseconds.
-		Weight::from_parts(27_520_652, 0)
+		// Minimum execution time: 25_586_000 picoseconds.
+		Weight::from_parts(27_011_290, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 5_473
-			.saturating_add(Weight::from_parts(159_868, 0).saturating_mul(s.into()))
+			// Standard Error: 5_695
+			.saturating_add(Weight::from_parts(154_316, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/gdev/src/weights/pallet_oneshot_account.rs b/runtime/gdev/src/weights/pallet_oneshot_account.rs
index f524bcb6cf5160340a962e8382bb58f6212df3dd..32ac3a66850a0fee1cd6472ad5cca4182cf907c1 100644
--- a/runtime/gdev/src/weights/pallet_oneshot_account.rs
+++ b/runtime/gdev/src/weights/pallet_oneshot_account.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_oneshot_account`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_oneshot_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3507`
-		// Minimum execution time: 21_872_000 picoseconds.
-		Weight::from_parts(22_794_000, 0)
+		// Minimum execution time: 21_295_000 picoseconds.
+		Weight::from_parts(22_329_000, 0)
 			.saturating_add(Weight::from_parts(0, 3507))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -69,8 +69,8 @@ impl<T: frame_system::Config> pallet_oneshot_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `241`
 		//  Estimated: `3706`
-		// Minimum execution time: 31_153_000 picoseconds.
-		Weight::from_parts(32_328_000, 0)
+		// Minimum execution time: 30_393_000 picoseconds.
+		Weight::from_parts(31_667_000, 0)
 			.saturating_add(Weight::from_parts(0, 3706))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -85,8 +85,8 @@ impl<T: frame_system::Config> pallet_oneshot_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `301`
 		//  Estimated: `6126`
-		// Minimum execution time: 45_197_000 picoseconds.
-		Weight::from_parts(46_597_000, 0)
+		// Minimum execution time: 44_652_000 picoseconds.
+		Weight::from_parts(46_144_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/gdev/src/weights/pallet_preimage.rs b/runtime/gdev/src/weights/pallet_preimage.rs
index 8f4a73e8945c6d854d5075ea8ee4867f8eaea31e..9bb623ab01ac3c3ecf214f0cc7b221648bdeef57 100644
--- a/runtime/gdev/src/weights/pallet_preimage.rs
+++ b/runtime/gdev/src/weights/pallet_preimage.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_preimage`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -58,11 +58,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3548`
-		// Minimum execution time: 11_975_000 picoseconds.
-		Weight::from_parts(12_301_000, 0)
+		// Minimum execution time: 12_318_000 picoseconds.
+		Weight::from_parts(12_671_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_320, 0).saturating_mul(s.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_273, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -77,11 +77,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 15_575_000 picoseconds.
-		Weight::from_parts(15_766_000, 0)
+		// Minimum execution time: 15_487_000 picoseconds.
+		Weight::from_parts(15_753_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_320, 0).saturating_mul(s.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_275, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -96,11 +96,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 13_671_000 picoseconds.
-		Weight::from_parts(13_977_000, 0)
+		// Minimum execution time: 13_320_000 picoseconds.
+		Weight::from_parts(13_857_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_401, 0).saturating_mul(s.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_354, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -114,8 +114,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `172`
 		//  Estimated: `3548`
-		// Minimum execution time: 21_830_000 picoseconds.
-		Weight::from_parts(23_909_000, 0)
+		// Minimum execution time: 21_740_000 picoseconds.
+		Weight::from_parts(23_847_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -130,8 +130,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `144`
 		//  Estimated: `3548`
-		// Minimum execution time: 23_132_000 picoseconds.
-		Weight::from_parts(24_958_000, 0)
+		// Minimum execution time: 21_736_000 picoseconds.
+		Weight::from_parts(24_224_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -144,8 +144,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `172`
 		//  Estimated: `3548`
-		// Minimum execution time: 20_944_000 picoseconds.
-		Weight::from_parts(22_633_000, 0)
+		// Minimum execution time: 19_972_000 picoseconds.
+		Weight::from_parts(21_350_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -158,8 +158,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `144`
 		//  Estimated: `3548`
-		// Minimum execution time: 13_847_000 picoseconds.
-		Weight::from_parts(15_219_000, 0)
+		// Minimum execution time: 13_084_000 picoseconds.
+		Weight::from_parts(14_779_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -172,8 +172,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3548`
-		// Minimum execution time: 10_973_000 picoseconds.
-		Weight::from_parts(11_559_000, 0)
+		// Minimum execution time: 11_191_000 picoseconds.
+		Weight::from_parts(12_377_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -186,8 +186,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 8_783_000 picoseconds.
-		Weight::from_parts(9_087_000, 0)
+		// Minimum execution time: 8_595_000 picoseconds.
+		Weight::from_parts(9_097_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -202,8 +202,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `144`
 		//  Estimated: `3548`
-		// Minimum execution time: 21_736_000 picoseconds.
-		Weight::from_parts(22_912_000, 0)
+		// Minimum execution time: 20_225_000 picoseconds.
+		Weight::from_parts(21_820_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -216,8 +216,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 8_816_000 picoseconds.
-		Weight::from_parts(9_270_000, 0)
+		// Minimum execution time: 8_694_000 picoseconds.
+		Weight::from_parts(9_454_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -230,8 +230,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 8_639_000 picoseconds.
-		Weight::from_parts(9_090_000, 0)
+		// Minimum execution time: 8_925_000 picoseconds.
+		Weight::from_parts(9_566_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -247,11 +247,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + n * (179 ±0)`
 		//  Estimated: `990 + n * (2568 ±0)`
-		// Minimum execution time: 19_835_000 picoseconds.
-		Weight::from_parts(20_285_000, 0)
+		// Minimum execution time: 19_791_000 picoseconds.
+		Weight::from_parts(20_108_000, 0)
 			.saturating_add(Weight::from_parts(0, 990))
-			// Standard Error: 17_437
-			.saturating_add(Weight::from_parts(15_200_439, 0).saturating_mul(n.into()))
+			// Standard Error: 17_300
+			.saturating_add(Weight::from_parts(14_844_340, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into())))
 			.saturating_add(Weight::from_parts(0, 2568).saturating_mul(n.into()))
diff --git a/runtime/gdev/src/weights/pallet_provide_randomness.rs b/runtime/gdev/src/weights/pallet_provide_randomness.rs
index 449f35488f0678854d9444c36552a965448f78a2..0c2b9a639e5e96c187d08ba6b2def241de3e212a 100644
--- a/runtime/gdev/src/weights/pallet_provide_randomness.rs
+++ b/runtime/gdev/src/weights/pallet_provide_randomness.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_provide_randomness`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -65,8 +65,8 @@ impl<T: frame_system::Config> pallet_provide_randomness::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `298`
 		//  Estimated: `3763`
-		// Minimum execution time: 45_548_000 picoseconds.
-		Weight::from_parts(46_988_000, 0)
+		// Minimum execution time: 44_575_000 picoseconds.
+		Weight::from_parts(47_011_000, 0)
 			.saturating_add(Weight::from_parts(0, 3763))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(5))
@@ -86,11 +86,11 @@ impl<T: frame_system::Config> pallet_provide_randomness::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `341 + i * (59 ±0)`
 		//  Estimated: `1827 + i * (2535 ±0)`
-		// Minimum execution time: 20_585_000 picoseconds.
-		Weight::from_parts(18_143_364, 0)
+		// Minimum execution time: 20_874_000 picoseconds.
+		Weight::from_parts(19_045_479, 0)
 			.saturating_add(Weight::from_parts(0, 1827))
-			// Standard Error: 8_255
-			.saturating_add(Weight::from_parts(5_670_675, 0).saturating_mul(i.into()))
+			// Standard Error: 7_105
+			.saturating_add(Weight::from_parts(5_453_140, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -118,11 +118,11 @@ impl<T: frame_system::Config> pallet_provide_randomness::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `351 + i * (59 ±0)`
 		//  Estimated: `3817 + i * (2535 ±0)`
-		// Minimum execution time: 22_350_000 picoseconds.
-		Weight::from_parts(27_706_024, 0)
+		// Minimum execution time: 22_278_000 picoseconds.
+		Weight::from_parts(19_797_191, 0)
 			.saturating_add(Weight::from_parts(0, 3817))
-			// Standard Error: 22_084
-			.saturating_add(Weight::from_parts(5_900_321, 0).saturating_mul(i.into()))
+			// Standard Error: 7_776
+			.saturating_add(Weight::from_parts(5_818_616, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/gdev/src/weights/pallet_proxy.rs b/runtime/gdev/src/weights/pallet_proxy.rs
index ba0412d959b9645eac6b9babbd34a6855a737c90..fb8ebbc053221870cf487630fcd0bb5adb9d1f41 100644
--- a/runtime/gdev/src/weights/pallet_proxy.rs
+++ b/runtime/gdev/src/weights/pallet_proxy.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_proxy`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -54,11 +54,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 13_664_000 picoseconds.
-		Weight::from_parts(14_671_983, 0)
+		// Minimum execution time: 13_770_000 picoseconds.
+		Weight::from_parts(14_738_500, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_369
-			.saturating_add(Weight::from_parts(27_602, 0).saturating_mul(p.into()))
+			// Standard Error: 1_456
+			.saturating_add(Weight::from_parts(28_918, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: `Proxy::Proxies` (r:1 w:0)
@@ -73,13 +73,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `399 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 32_632_000 picoseconds.
-		Weight::from_parts(32_786_200, 0)
+		// Minimum execution time: 32_466_000 picoseconds.
+		Weight::from_parts(32_848_501, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 2_038
-			.saturating_add(Weight::from_parts(150_050, 0).saturating_mul(a.into()))
-			// Standard Error: 2_106
-			.saturating_add(Weight::from_parts(37_299, 0).saturating_mul(p.into()))
+			// Standard Error: 2_267
+			.saturating_add(Weight::from_parts(119_635, 0).saturating_mul(a.into()))
+			// Standard Error: 2_342
+			.saturating_add(Weight::from_parts(50_345, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -93,13 +93,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `322 + a * (68 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 22_197_000 picoseconds.
-		Weight::from_parts(22_952_900, 0)
+		// Minimum execution time: 22_317_000 picoseconds.
+		Weight::from_parts(22_877_072, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 1_897
-			.saturating_add(Weight::from_parts(150_181, 0).saturating_mul(a.into()))
-			// Standard Error: 1_960
-			.saturating_add(Weight::from_parts(9_964, 0).saturating_mul(p.into()))
+			// Standard Error: 1_686
+			.saturating_add(Weight::from_parts(135_993, 0).saturating_mul(a.into()))
+			// Standard Error: 1_742
+			.saturating_add(Weight::from_parts(4_969, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -113,13 +113,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `322 + a * (68 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 22_210_000 picoseconds.
-		Weight::from_parts(22_813_905, 0)
+		// Minimum execution time: 21_963_000 picoseconds.
+		Weight::from_parts(22_871_897, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 1_669
-			.saturating_add(Weight::from_parts(148_213, 0).saturating_mul(a.into()))
-			// Standard Error: 1_724
-			.saturating_add(Weight::from_parts(8_674, 0).saturating_mul(p.into()))
+			// Standard Error: 1_832
+			.saturating_add(Weight::from_parts(129_560, 0).saturating_mul(a.into()))
+			// Standard Error: 1_893
+			.saturating_add(Weight::from_parts(2_625, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -135,13 +135,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `331 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 29_935_000 picoseconds.
-		Weight::from_parts(29_957_912, 0)
+		// Minimum execution time: 29_737_000 picoseconds.
+		Weight::from_parts(29_740_954, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 1_961
-			.saturating_add(Weight::from_parts(139_511, 0).saturating_mul(a.into()))
-			// Standard Error: 2_026
-			.saturating_add(Weight::from_parts(45_281, 0).saturating_mul(p.into()))
+			// Standard Error: 1_918
+			.saturating_add(Weight::from_parts(125_550, 0).saturating_mul(a.into()))
+			// Standard Error: 1_982
+			.saturating_add(Weight::from_parts(39_824, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -152,11 +152,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 21_190_000 picoseconds.
-		Weight::from_parts(22_197_481, 0)
+		// Minimum execution time: 21_180_000 picoseconds.
+		Weight::from_parts(22_215_284, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_507
-			.saturating_add(Weight::from_parts(43_705, 0).saturating_mul(p.into()))
+			// Standard Error: 1_824
+			.saturating_add(Weight::from_parts(30_745, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -167,11 +167,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 21_324_000 picoseconds.
-		Weight::from_parts(22_562_771, 0)
+		// Minimum execution time: 20_959_000 picoseconds.
+		Weight::from_parts(21_872_797, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 2_012
-			.saturating_add(Weight::from_parts(33_822, 0).saturating_mul(p.into()))
+			// Standard Error: 1_574
+			.saturating_add(Weight::from_parts(46_005, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -182,11 +182,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 19_385_000 picoseconds.
-		Weight::from_parts(20_489_752, 0)
+		// Minimum execution time: 19_114_000 picoseconds.
+		Weight::from_parts(20_199_043, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_608
-			.saturating_add(Weight::from_parts(30_735, 0).saturating_mul(p.into()))
+			// Standard Error: 1_422
+			.saturating_add(Weight::from_parts(28_009, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -197,8 +197,8 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `177`
 		//  Estimated: `4698`
-		// Minimum execution time: 22_224_000 picoseconds.
-		Weight::from_parts(23_863_439, 0)
+		// Minimum execution time: 22_060_000 picoseconds.
+		Weight::from_parts(23_628_371, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -210,11 +210,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `194 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 20_336_000 picoseconds.
-		Weight::from_parts(21_178_705, 0)
+		// Minimum execution time: 19_566_000 picoseconds.
+		Weight::from_parts(20_932_812, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_498
-			.saturating_add(Weight::from_parts(27_225, 0).saturating_mul(p.into()))
+			// Standard Error: 1_650
+			.saturating_add(Weight::from_parts(26_740, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/gdev/src/weights/pallet_quota.rs b/runtime/gdev/src/weights/pallet_quota.rs
index 856fd83fee30922019af873518168783d57ae657..18e1a48f20e5c17e0eb2b73ed3f63ecf5b0d53fc 100644
--- a/runtime/gdev/src/weights/pallet_quota.rs
+++ b/runtime/gdev/src/weights/pallet_quota.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_quota`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `11288`
 		//  Estimated: `12751`
-		// Minimum execution time: 8_779_000 picoseconds.
-		Weight::from_parts(9_127_000, 0)
+		// Minimum execution time: 8_844_000 picoseconds.
+		Weight::from_parts(9_252_000, 0)
 			.saturating_add(Weight::from_parts(0, 12751))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -65,8 +65,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `172`
 		//  Estimated: `3489`
-		// Minimum execution time: 6_321_000 picoseconds.
-		Weight::from_parts(6_768_000, 0)
+		// Minimum execution time: 6_358_000 picoseconds.
+		Weight::from_parts(6_625_000, 0)
 			.saturating_add(Weight::from_parts(0, 3489))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -79,8 +79,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `235`
 		//  Estimated: `6126`
-		// Minimum execution time: 26_209_000 picoseconds.
-		Weight::from_parts(26_820_000, 0)
+		// Minimum execution time: 25_563_000 picoseconds.
+		Weight::from_parts(26_725_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -93,8 +93,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `235`
 		//  Estimated: `6126`
-		// Minimum execution time: 25_898_000 picoseconds.
-		Weight::from_parts(28_980_000, 0)
+		// Minimum execution time: 25_827_000 picoseconds.
+		Weight::from_parts(26_695_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -105,8 +105,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `43`
 		//  Estimated: `12751`
-		// Minimum execution time: 2_549_000 picoseconds.
-		Weight::from_parts(2_713_000, 0)
+		// Minimum execution time: 2_460_000 picoseconds.
+		Weight::from_parts(2_643_000, 0)
 			.saturating_add(Weight::from_parts(0, 12751))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -122,11 +122,11 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `260 + i * (44 ±0)`
 		//  Estimated: `12751`
-		// Minimum execution time: 31_046_000 picoseconds.
-		Weight::from_parts(49_497_475, 0)
+		// Minimum execution time: 29_618_000 picoseconds.
+		Weight::from_parts(44_430_771, 0)
 			.saturating_add(Weight::from_parts(0, 12751))
-			// Standard Error: 3_317
-			.saturating_add(Weight::from_parts(1_254_267, 0).saturating_mul(i.into()))
+			// Standard Error: 1_578
+			.saturating_add(Weight::from_parts(1_241_604, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
diff --git a/runtime/gdev/src/weights/pallet_scheduler.rs b/runtime/gdev/src/weights/pallet_scheduler.rs
index 33f7552f7280e667cfc09fbff4d2f7964aaf375a..f8e6394235e4731fd36df8dd89bc33ab7b2da798 100644
--- a/runtime/gdev/src/weights/pallet_scheduler.rs
+++ b/runtime/gdev/src/weights/pallet_scheduler.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_scheduler`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `30`
 		//  Estimated: `1489`
-		// Minimum execution time: 3_201_000 picoseconds.
-		Weight::from_parts(3_463_000, 0)
+		// Minimum execution time: 3_162_000 picoseconds.
+		Weight::from_parts(3_403_000, 0)
 			.saturating_add(Weight::from_parts(0, 1489))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -66,11 +66,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + s * (177 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 3_188_000 picoseconds.
-		Weight::from_parts(6_820_676, 0)
+		// Minimum execution time: 3_124_000 picoseconds.
+		Weight::from_parts(6_689_137, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 1_878
-			.saturating_add(Weight::from_parts(265_287, 0).saturating_mul(s.into()))
+			// Standard Error: 1_824
+			.saturating_add(Weight::from_parts(265_025, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -78,8 +78,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_736_000 picoseconds.
-		Weight::from_parts(2_952_000, 0)
+		// Minimum execution time: 2_671_000 picoseconds.
+		Weight::from_parts(2_908_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `Preimage::PreimageFor` (r:1 w:1)
@@ -93,11 +93,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `179 + s * (1 ±0)`
 		//  Estimated: `4197809`
-		// Minimum execution time: 16_979_000 picoseconds.
-		Weight::from_parts(17_272_000, 0)
+		// Minimum execution time: 16_303_000 picoseconds.
+		Weight::from_parts(16_934_000, 0)
 			.saturating_add(Weight::from_parts(0, 4197809))
-			// Standard Error: 3
-			.saturating_add(Weight::from_parts(960, 0).saturating_mul(s.into()))
+			// Standard Error: 2
+			.saturating_add(Weight::from_parts(880, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -107,8 +107,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_138_000 picoseconds.
-		Weight::from_parts(4_467_000, 0)
+		// Minimum execution time: 4_048_000 picoseconds.
+		Weight::from_parts(4_258_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -116,24 +116,24 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_897_000 picoseconds.
-		Weight::from_parts(3_054_000, 0)
+		// Minimum execution time: 2_719_000 picoseconds.
+		Weight::from_parts(2_909_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn execute_dispatch_signed() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_952_000 picoseconds.
-		Weight::from_parts(2_062_000, 0)
+		// Minimum execution time: 1_761_000 picoseconds.
+		Weight::from_parts(1_923_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn execute_dispatch_unsigned() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_017_000 picoseconds.
-		Weight::from_parts(2_101_000, 0)
+		// Minimum execution time: 1_840_000 picoseconds.
+		Weight::from_parts(1_942_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
@@ -143,11 +143,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + s * (177 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 9_353_000 picoseconds.
-		Weight::from_parts(12_697_621, 0)
+		// Minimum execution time: 8_558_000 picoseconds.
+		Weight::from_parts(12_732_074, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 1_812
-			.saturating_add(Weight::from_parts(272_455, 0).saturating_mul(s.into()))
+			// Standard Error: 3_010
+			.saturating_add(Weight::from_parts(268_942, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -162,11 +162,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + s * (177 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 14_047_000 picoseconds.
-		Weight::from_parts(14_921_174, 0)
+		// Minimum execution time: 13_871_000 picoseconds.
+		Weight::from_parts(14_876_912, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 1_356
-			.saturating_add(Weight::from_parts(424_884, 0).saturating_mul(s.into()))
+			// Standard Error: 1_746
+			.saturating_add(Weight::from_parts(417_942, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -179,11 +179,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `254 + s * (185 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 11_520_000 picoseconds.
-		Weight::from_parts(17_269_692, 0)
+		// Minimum execution time: 11_493_000 picoseconds.
+		Weight::from_parts(16_883_559, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 4_328
-			.saturating_add(Weight::from_parts(328_602, 0).saturating_mul(s.into()))
+			// Standard Error: 4_280
+			.saturating_add(Weight::from_parts(331_178, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -198,11 +198,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `280 + s * (185 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 16_478_000 picoseconds.
-		Weight::from_parts(19_365_746, 0)
+		// Minimum execution time: 15_677_000 picoseconds.
+		Weight::from_parts(19_002_832, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 2_700
-			.saturating_add(Weight::from_parts(465_656, 0).saturating_mul(s.into()))
+			// Standard Error: 2_530
+			.saturating_add(Weight::from_parts(453_797, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -215,11 +215,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `117`
 		//  Estimated: `13928`
-		// Minimum execution time: 8_744_000 picoseconds.
-		Weight::from_parts(9_534_739, 0)
+		// Minimum execution time: 8_468_000 picoseconds.
+		Weight::from_parts(9_150_074, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 3_203
-			.saturating_add(Weight::from_parts(24_347, 0).saturating_mul(s.into()))
+			// Standard Error: 514
+			.saturating_add(Weight::from_parts(25_549, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -231,8 +231,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `8927`
 		//  Estimated: `13928`
-		// Minimum execution time: 20_823_000 picoseconds.
-		Weight::from_parts(21_766_000, 0)
+		// Minimum execution time: 20_462_000 picoseconds.
+		Weight::from_parts(21_510_000, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -247,8 +247,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `9605`
 		//  Estimated: `13928`
-		// Minimum execution time: 27_917_000 picoseconds.
-		Weight::from_parts(29_069_000, 0)
+		// Minimum execution time: 27_795_000 picoseconds.
+		Weight::from_parts(28_824_000, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -261,8 +261,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `8939`
 		//  Estimated: `13928`
-		// Minimum execution time: 20_719_000 picoseconds.
-		Weight::from_parts(21_545_000, 0)
+		// Minimum execution time: 19_959_000 picoseconds.
+		Weight::from_parts(20_448_000, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -277,8 +277,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `9617`
 		//  Estimated: `13928`
-		// Minimum execution time: 27_162_000 picoseconds.
-		Weight::from_parts(28_261_000, 0)
+		// Minimum execution time: 26_532_000 picoseconds.
+		Weight::from_parts(27_482_000, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/gdev/src/weights/pallet_session.rs b/runtime/gdev/src/weights/pallet_session.rs
index 9a72bf6c5c2e9e959203a53c50e5d5a9ef3b9b69..4496a206c712818b22abdd1a43d98e4a2cb16b62 100644
--- a/runtime/gdev/src/weights/pallet_session.rs
+++ b/runtime/gdev/src/weights/pallet_session.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_session`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -55,8 +55,8 @@ impl<T: frame_system::Config> pallet_session::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `811`
 		//  Estimated: `11701`
-		// Minimum execution time: 28_909_000 picoseconds.
-		Weight::from_parts(30_535_000, 0)
+		// Minimum execution time: 29_028_000 picoseconds.
+		Weight::from_parts(30_439_000, 0)
 			.saturating_add(Weight::from_parts(0, 11701))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(5))
@@ -69,8 +69,8 @@ impl<T: frame_system::Config> pallet_session::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `478`
 		//  Estimated: `3943`
-		// Minimum execution time: 18_010_000 picoseconds.
-		Weight::from_parts(18_755_000, 0)
+		// Minimum execution time: 17_154_000 picoseconds.
+		Weight::from_parts(17_837_000, 0)
 			.saturating_add(Weight::from_parts(0, 3943))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(5))
diff --git a/runtime/gdev/src/weights/pallet_smith_members.rs b/runtime/gdev/src/weights/pallet_smith_members.rs
index a72ebd8cc8f52edd8cf00a689cb1b699287e548b..7353ba23046503690268b234e6ae339e0e3bb82e 100644
--- a/runtime/gdev/src/weights/pallet_smith_members.rs
+++ b/runtime/gdev/src/weights/pallet_smith_members.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_smith_members`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -61,11 +61,11 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 	/// Proof: `SmithMembers::ExpiresOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn invite_smith() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `945`
-		//  Estimated: `6885`
-		// Minimum execution time: 35_064_000 picoseconds.
-		Weight::from_parts(36_770_000, 0)
-			.saturating_add(Weight::from_parts(0, 6885))
+		//  Measured:  `912`
+		//  Estimated: `6852`
+		// Minimum execution time: 35_593_000 picoseconds.
+		Weight::from_parts(36_660_000, 0)
+			.saturating_add(Weight::from_parts(0, 6852))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -75,11 +75,11 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 	/// Proof: `SmithMembers::Smiths` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn accept_invitation() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `599`
-		//  Estimated: `4064`
-		// Minimum execution time: 18_184_000 picoseconds.
-		Weight::from_parts(19_095_000, 0)
-			.saturating_add(Weight::from_parts(0, 4064))
+		//  Measured:  `566`
+		//  Estimated: `4031`
+		// Minimum execution time: 18_567_000 picoseconds.
+		Weight::from_parts(19_297_000, 0)
+			.saturating_add(Weight::from_parts(0, 4031))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -95,11 +95,11 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 	/// Proof: `SmithMembers::ExpiresOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn certify_smith() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `755`
-		//  Estimated: `6695`
-		// Minimum execution time: 32_411_000 picoseconds.
-		Weight::from_parts(33_316_000, 0)
-			.saturating_add(Weight::from_parts(0, 6695))
+		//  Measured:  `722`
+		//  Estimated: `6662`
+		// Minimum execution time: 31_100_000 picoseconds.
+		Weight::from_parts(32_379_000, 0)
+			.saturating_add(Weight::from_parts(0, 6662))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -123,8 +123,8 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `1205`
 		//  Estimated: `14570`
-		// Minimum execution time: 71_744_000 picoseconds.
-		Weight::from_parts(75_504_000, 0)
+		// Minimum execution time: 67_548_000 picoseconds.
+		Weight::from_parts(75_861_000, 0)
 			.saturating_add(Weight::from_parts(0, 14570))
 			.saturating_add(T::DbWeight::get().reads(11))
 			.saturating_add(T::DbWeight::get().writes(15))
@@ -135,8 +135,8 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `253`
 		//  Estimated: `3718`
-		// Minimum execution time: 4_055_000 picoseconds.
-		Weight::from_parts(4_314_000, 0)
+		// Minimum execution time: 3_721_000 picoseconds.
+		Weight::from_parts(4_227_000, 0)
 			.saturating_add(Weight::from_parts(0, 3718))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
diff --git a/runtime/gdev/src/weights/pallet_sudo.rs b/runtime/gdev/src/weights/pallet_sudo.rs
index dfa111d3bd2148a8f1204667875b01fcb08a8be0..b00be628e27adcc96523dc8aaee2a07b64680653 100644
--- a/runtime/gdev/src/weights/pallet_sudo.rs
+++ b/runtime/gdev/src/weights/pallet_sudo.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_sudo`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 8_491_000 picoseconds.
-		Weight::from_parts(8_889_000, 0)
+		// Minimum execution time: 8_437_000 picoseconds.
+		Weight::from_parts(8_831_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -65,8 +65,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 9_063_000 picoseconds.
-		Weight::from_parts(9_371_000, 0)
+		// Minimum execution time: 9_036_000 picoseconds.
+		Weight::from_parts(9_449_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -76,8 +76,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 9_017_000 picoseconds.
-		Weight::from_parts(9_306_000, 0)
+		// Minimum execution time: 9_073_000 picoseconds.
+		Weight::from_parts(9_526_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -87,8 +87,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 8_260_000 picoseconds.
-		Weight::from_parts(8_699_000, 0)
+		// Minimum execution time: 7_809_000 picoseconds.
+		Weight::from_parts(8_282_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/gdev/src/weights/pallet_timestamp.rs b/runtime/gdev/src/weights/pallet_timestamp.rs
index aa9de863c3fda56f9633b8f99129081f0bf12922..5798f1da245ee263a94863b2752868ae47c10522 100644
--- a/runtime/gdev/src/weights/pallet_timestamp.rs
+++ b/runtime/gdev/src/weights/pallet_timestamp.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_timestamp`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -59,8 +59,8 @@ impl<T: frame_system::Config> pallet_timestamp::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `379`
 		//  Estimated: `1864`
-		// Minimum execution time: 15_793_000 picoseconds.
-		Weight::from_parts(16_426_000, 0)
+		// Minimum execution time: 15_904_000 picoseconds.
+		Weight::from_parts(16_611_000, 0)
 			.saturating_add(Weight::from_parts(0, 1864))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -69,8 +69,8 @@ impl<T: frame_system::Config> pallet_timestamp::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `57`
 		//  Estimated: `0`
-		// Minimum execution time: 3_430_000 picoseconds.
-		Weight::from_parts(3_687_000, 0)
+		// Minimum execution time: 3_335_000 picoseconds.
+		Weight::from_parts(3_743_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/runtime/gdev/src/weights/pallet_treasury.rs b/runtime/gdev/src/weights/pallet_treasury.rs
index f2e9a37d50767e9e9c436a0a194e67c8356b7da5..5652b085ecc30b03b93192bc8268b0e3823e084e 100644
--- a/runtime/gdev/src/weights/pallet_treasury.rs
+++ b/runtime/gdev/src/weights/pallet_treasury.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_treasury`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -61,8 +61,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6`
 		//  Estimated: `1887`
-		// Minimum execution time: 3_335_000 picoseconds.
-		Weight::from_parts(3_622_000, 0)
+		// Minimum execution time: 3_326_000 picoseconds.
+		Weight::from_parts(3_567_000, 0)
 			.saturating_add(Weight::from_parts(0, 1887))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -77,11 +77,11 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `82 + p * (1 ±0)`
 		//  Estimated: `3558`
-		// Minimum execution time: 14_880_000 picoseconds.
-		Weight::from_parts(16_520_043, 0)
+		// Minimum execution time: 14_684_000 picoseconds.
+		Weight::from_parts(16_161_715, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
-			// Standard Error: 615
-			.saturating_add(Weight::from_parts(31_130, 0).saturating_mul(p.into()))
+			// Standard Error: 704
+			.saturating_add(Weight::from_parts(32_706, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -99,8 +99,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6`
 		//  Estimated: `3526`
-		// Minimum execution time: 4_759_000 picoseconds.
-		Weight::from_parts(5_028_000, 0)
+		// Minimum execution time: 4_747_000 picoseconds.
+		Weight::from_parts(4_997_000, 0)
 			.saturating_add(Weight::from_parts(0, 3526))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -110,8 +110,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6`
 		//  Estimated: `3526`
-		// Minimum execution time: 4_851_000 picoseconds.
-		Weight::from_parts(5_061_000, 0)
+		// Minimum execution time: 4_864_000 picoseconds.
+		Weight::from_parts(5_074_000, 0)
 			.saturating_add(Weight::from_parts(0, 3526))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -121,8 +121,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6`
 		//  Estimated: `3526`
-		// Minimum execution time: 4_276_000 picoseconds.
-		Weight::from_parts(4_534_000, 0)
+		// Minimum execution time: 3_944_000 picoseconds.
+		Weight::from_parts(4_268_000, 0)
 			.saturating_add(Weight::from_parts(0, 3526))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
diff --git a/runtime/gdev/src/weights/pallet_universal_dividend.rs b/runtime/gdev/src/weights/pallet_universal_dividend.rs
index 1ad4c9b809c04edc909f13a362d22bfba1afd459..bbbc2924fb84697d47981becd96f71d1a9340071 100644
--- a/runtime/gdev/src/weights/pallet_universal_dividend.rs
+++ b/runtime/gdev/src/weights/pallet_universal_dividend.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_universal_dividend`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -60,11 +60,11 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 	/// The range of component `i` is `[1, 160]`.
 	fn claim_uds(_i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `709`
-		//  Estimated: `4174`
-		// Minimum execution time: 35_492_000 picoseconds.
-		Weight::from_parts(38_037_828, 0)
-			.saturating_add(Weight::from_parts(0, 4174))
+		//  Measured:  `676`
+		//  Estimated: `4141`
+		// Minimum execution time: 34_902_000 picoseconds.
+		Weight::from_parts(37_575_396, 0)
+			.saturating_add(Weight::from_parts(0, 4141))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -76,8 +76,8 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `156`
 		//  Estimated: `6126`
-		// Minimum execution time: 55_661_000 picoseconds.
-		Weight::from_parts(56_889_000, 0)
+		// Minimum execution time: 53_697_000 picoseconds.
+		Weight::from_parts(55_108_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -90,8 +90,8 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `93`
 		//  Estimated: `3558`
-		// Minimum execution time: 34_504_000 picoseconds.
-		Weight::from_parts(35_206_000, 0)
+		// Minimum execution time: 33_465_000 picoseconds.
+		Weight::from_parts(34_434_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -107,8 +107,8 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `181`
 		//  Estimated: `3558`
-		// Minimum execution time: 19_995_000 picoseconds.
-		Weight::from_parts(21_306_537, 0)
+		// Minimum execution time: 19_800_000 picoseconds.
+		Weight::from_parts(20_954_204, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/gdev/src/weights/pallet_upgrade_origin.rs b/runtime/gdev/src/weights/pallet_upgrade_origin.rs
index 3d266b33990db8671d1498c4e87a470c15ca880a..72c7879ea1f82eff2f5d165de20ef8b2d5621e62 100644
--- a/runtime/gdev/src/weights/pallet_upgrade_origin.rs
+++ b/runtime/gdev/src/weights/pallet_upgrade_origin.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_upgrade_origin`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -51,8 +51,8 @@ impl<T: frame_system::Config> pallet_upgrade_origin::WeightInfo for WeightInfo<T
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_728_000 picoseconds.
-		Weight::from_parts(6_163_000, 0)
+		// Minimum execution time: 5_677_000 picoseconds.
+		Weight::from_parts(5_910_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/runtime/gdev/src/weights/pallet_utility.rs b/runtime/gdev/src/weights/pallet_utility.rs
index e11dce62fdc70dd239c2b93a89a650da9a55d8be..95c289e00556845666f8569ee42845aa612983fb 100644
--- a/runtime/gdev/src/weights/pallet_utility.rs
+++ b/runtime/gdev/src/weights/pallet_utility.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_utility`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -52,18 +52,18 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_637_000 picoseconds.
-		Weight::from_parts(8_567_413, 0)
+		// Minimum execution time: 4_502_000 picoseconds.
+		Weight::from_parts(6_701_915, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 635
-			.saturating_add(Weight::from_parts(2_199_216, 0).saturating_mul(c.into()))
+			// Standard Error: 1_379
+			.saturating_add(Weight::from_parts(2_058_130, 0).saturating_mul(c.into()))
 	}
 	fn as_derivative() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_725_000 picoseconds.
-		Weight::from_parts(3_870_000, 0)
+		// Minimum execution time: 3_663_000 picoseconds.
+		Weight::from_parts(3_787_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `c` is `[0, 1000]`.
@@ -71,18 +71,18 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_395_000 picoseconds.
-		Weight::from_parts(9_835_675, 0)
+		// Minimum execution time: 4_406_000 picoseconds.
+		Weight::from_parts(9_695_617, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 1_660
-			.saturating_add(Weight::from_parts(2_382_082, 0).saturating_mul(c.into()))
+			// Standard Error: 1_358
+			.saturating_add(Weight::from_parts(2_198_757, 0).saturating_mul(c.into()))
 	}
 	fn dispatch_as() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_920_000 picoseconds.
-		Weight::from_parts(6_104_000, 0)
+		// Minimum execution time: 5_621_000 picoseconds.
+		Weight::from_parts(6_120_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `c` is `[0, 1000]`.
@@ -90,10 +90,10 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_459_000 picoseconds.
-		Weight::from_parts(9_375_208, 0)
+		// Minimum execution time: 4_323_000 picoseconds.
+		Weight::from_parts(9_287_821, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 1_152
-			.saturating_add(Weight::from_parts(2_210_099, 0).saturating_mul(c.into()))
+			// Standard Error: 1_105
+			.saturating_add(Weight::from_parts(2_051_272, 0).saturating_mul(c.into()))
 	}
 }
diff --git a/runtime/gdev/src/weights/paritydb_weights.rs b/runtime/gdev/src/weights/paritydb_weights.rs
index acfd4222ea533e95b95c07af1038e944ed368939..112932d6b56df8d9706196065cec205956783063 100644
--- a/runtime/gdev/src/weights/paritydb_weights.rs
+++ b/runtime/gdev/src/weights/paritydb_weights.rs
@@ -1,6 +1,6 @@
 
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28 (Y/M/D)
+//! DATE: 2024-11-14 (Y/M/D)
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //!
 //! DATABASE: `ParityDb`, RUNTIME: `Ğdev Local Testnet`
@@ -34,31 +34,31 @@ pub mod constants {
 			/// Calculated by multiplying the *Average* of all values with `2.0` and adding `0`.
 			///
 			/// Stats nanoseconds:
-			///   Min, Max: 824, 1_204_864
-			///   Average:  8_936
-			///   Median:   1_282
-			///   Std-Dev:  94846.78
+			///   Min, Max: 965, 1_385_968
+			///   Average:  10_520
+			///   Median:   1_692
+			///   Std-Dev:  109086.73
 			///
 			/// Percentiles nanoseconds:
-			///   99th: 10_233
-			///   95th: 2_325
-			///   75th: 1_465
-			read: 17_872 * constants::WEIGHT_REF_TIME_PER_NANOS,
+			///   99th: 13_234
+			///   95th: 2_658
+			///   75th: 2_000
+			read: 21_040 * constants::WEIGHT_REF_TIME_PER_NANOS,
 
 			/// Time to write one storage item.
 			/// Calculated by multiplying the *Average* of all values with `2.0` and adding `0`.
 			///
 			/// Stats nanoseconds:
-			///   Min, Max: 3_779, 7_070_939
-			///   Average:  54_523
-			///   Median:   10_248
-			///   Std-Dev:  556457.72
+			///   Min, Max: 3_511, 6_408_141
+			///   Average:  52_016
+			///   Median:   9_227
+			///   Std-Dev:  505441.82
 			///
 			/// Percentiles nanoseconds:
-			///   99th: 46_470
-			///   95th: 14_949
-			///   75th: 12_469
-			write: 109_046 * constants::WEIGHT_REF_TIME_PER_NANOS,
+			///   99th: 479_523
+			///   95th: 13_065
+			///   75th: 11_279
+			write: 104_032 * constants::WEIGHT_REF_TIME_PER_NANOS,
 		};
 	}
 
diff --git a/runtime/gtest/src/lib.rs b/runtime/gtest/src/lib.rs
index 6be12db81e88fed8c40bef5608b14f70d5e58d1b..842fc6a387814272075a72aad5a8ee5ca3508b6c 100644
--- a/runtime/gtest/src/lib.rs
+++ b/runtime/gtest/src/lib.rs
@@ -35,10 +35,7 @@ pub use common_runtime::{
     constants::*, entities::*, handlers::*, AccountId, Address, Balance, BlockNumber,
     FullIdentificationOfImpl, GetCurrentEpochIndex, Hash, Header, IdtyIndex, Index, Signature,
 };
-use frame_support::{
-    traits::{fungible::Balanced, Contains, Imbalance},
-    PalletId,
-};
+use frame_support::{traits::Contains, PalletId};
 pub use frame_system::Call as SystemCall;
 use frame_system::EnsureRoot;
 pub use pallet_balances::Call as BalancesCall;
diff --git a/runtime/gtest/src/parameters.rs b/runtime/gtest/src/parameters.rs
index 6295b34bc2d3f7f3b45cc2a9de1e147ba943335c..307f59b19733e1ad99bfb62bb656e9dc51bb70f1 100644
--- a/runtime/gtest/src/parameters.rs
+++ b/runtime/gtest/src/parameters.rs
@@ -105,6 +105,7 @@ parameter_types! {
     pub const ConfirmPeriod: BlockNumber = DAYS;
     pub const IdtyCreationPeriod: BlockNumber = DAYS;
     pub const AutorevocationPeriod: BlockNumber = YEARS;
+    pub const DeletionPeriod: BlockNumber = 10 * YEARS;
 }
 
 // Membership
diff --git a/runtime/gtest/src/weights/block_weights.rs b/runtime/gtest/src/weights/block_weights.rs
index 6b9009a8ae9669f7030d307350f94aa249d4c37a..f048f6b1e5d74b73f8f2d5704410ca2e2d694715 100644
--- a/runtime/gtest/src/weights/block_weights.rs
+++ b/runtime/gtest/src/weights/block_weights.rs
@@ -1,6 +1,6 @@
 
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28 (Y/M/D)
+//! DATE: 2024-11-14 (Y/M/D)
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //!
 //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `ĞTest Local Testnet`
@@ -26,17 +26,17 @@ parameter_types! {
 	/// Calculated by multiplying the *Average* with `1.0` and adding `0`.
 	///
 	/// Stats nanoseconds:
-	///   Min, Max: 121_418, 209_960
-	///   Average:  130_915
-	///   Median:   128_222
-	///   Std-Dev:  10702.93
+	///   Min, Max: 118_723, 182_138
+	///   Average:  126_773
+	///   Median:   126_090
+	///   Std-Dev:  6674.36
 	///
 	/// Percentiles nanoseconds:
-	///   99th: 171_308
-	///   95th: 145_322
-	///   75th: 129_769
+	///   99th: 149_828
+	///   95th: 132_085
+	///   75th: 127_166
 	pub const BlockExecutionWeight: Weight =
-		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(130_915), 0);
+		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(126_773), 0);
 }
 
 #[cfg(test)]
diff --git a/runtime/gtest/src/weights/extrinsic_weights.rs b/runtime/gtest/src/weights/extrinsic_weights.rs
index e9175389adf03f7b398b8c6a6dfc1efc6818dd5b..f41d2f86f287ecc5add7b3d2788dbd3a0d04e3c8 100644
--- a/runtime/gtest/src/weights/extrinsic_weights.rs
+++ b/runtime/gtest/src/weights/extrinsic_weights.rs
@@ -1,6 +1,6 @@
 
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28 (Y/M/D)
+//! DATE: 2024-11-14 (Y/M/D)
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //!
 //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `ĞTest Local Testnet`
@@ -26,17 +26,17 @@ parameter_types! {
 	/// Calculated by multiplying the *Average* with `1.0` and adding `0`.
 	///
 	/// Stats nanoseconds:
-	///   Min, Max: 88_403, 89_281
-	///   Average:  88_644
-	///   Median:   88_628
-	///   Std-Dev:  144.84
+	///   Min, Max: 89_055, 90_073
+	///   Average:  89_280
+	///   Median:   89_260
+	///   Std-Dev:  144.55
 	///
 	/// Percentiles nanoseconds:
-	///   99th: 89_088
-	///   95th: 88_842
-	///   75th: 88_729
+	///   99th: 90_011
+	///   95th: 89_428
+	///   75th: 89_312
 	pub const ExtrinsicBaseWeight: Weight =
-		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(88_644), 0);
+		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(89_280), 0);
 }
 
 #[cfg(test)]
diff --git a/runtime/gtest/src/weights/frame_benchmarking_baseline.rs b/runtime/gtest/src/weights/frame_benchmarking_baseline.rs
index 64cf77de7602e5b950d3bfeeb72558a59107bdf0..06871d60e83848ae016af2b95f475928f0be69bc 100644
--- a/runtime/gtest/src/weights/frame_benchmarking_baseline.rs
+++ b/runtime/gtest/src/weights/frame_benchmarking_baseline.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `frame_benchmarking::baseline`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -52,8 +52,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 81_000 picoseconds.
-		Weight::from_parts(121_559, 0)
+		// Minimum execution time: 87_000 picoseconds.
+		Weight::from_parts(110_887, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -61,8 +61,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 82_000 picoseconds.
-		Weight::from_parts(124_213, 0)
+		// Minimum execution time: 85_000 picoseconds.
+		Weight::from_parts(109_517, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -70,8 +70,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 82_000 picoseconds.
-		Weight::from_parts(124_074, 0)
+		// Minimum execution time: 86_000 picoseconds.
+		Weight::from_parts(111_444, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -79,16 +79,16 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 81_000 picoseconds.
-		Weight::from_parts(124_880, 0)
+		// Minimum execution time: 86_000 picoseconds.
+		Weight::from_parts(110_205, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn hashing() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 19_766_994_000 picoseconds.
-		Weight::from_parts(19_827_666_000, 0)
+		// Minimum execution time: 20_287_014_000 picoseconds.
+		Weight::from_parts(20_339_196_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 100]`.
@@ -96,10 +96,10 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 87_000 picoseconds.
-		Weight::from_parts(29_169_155, 0)
+		// Minimum execution time: 89_000 picoseconds.
+		Weight::from_parts(28_337_683, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 12_902
-			.saturating_add(Weight::from_parts(32_049_904, 0).saturating_mul(i.into()))
+			// Standard Error: 12_719
+			.saturating_add(Weight::from_parts(31_054_033, 0).saturating_mul(i.into()))
 	}
 }
diff --git a/runtime/gtest/src/weights/frame_system.rs b/runtime/gtest/src/weights/frame_system.rs
index 2295a11d5f65e6bdadcc62c278a45a8bc2c259b2..e5fda44044b676e3ee5d691dd600fbf98219fc82 100644
--- a/runtime/gtest/src/weights/frame_system.rs
+++ b/runtime/gtest/src/weights/frame_system.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `frame_system`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -52,22 +52,22 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_791_000 picoseconds.
-		Weight::from_parts(1_950_000, 0)
+		// Minimum execution time: 1_785_000 picoseconds.
+		Weight::from_parts(1_883_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(269, 0).saturating_mul(b.into()))
+			.saturating_add(Weight::from_parts(256, 0).saturating_mul(b.into()))
 	}
 	/// The range of component `b` is `[0, 3932160]`.
 	fn remark_with_event(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_043_000 picoseconds.
-		Weight::from_parts(5_179_000, 0)
+		// Minimum execution time: 5_136_000 picoseconds.
+		Weight::from_parts(5_186_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_097, 0).saturating_mul(b.into()))
+			// Standard Error: 0
+			.saturating_add(Weight::from_parts(1_035, 0).saturating_mul(b.into()))
 	}
 	/// Storage: `System::Digest` (r:1 w:1)
 	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
@@ -77,8 +77,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `1485`
-		// Minimum execution time: 3_641_000 picoseconds.
-		Weight::from_parts(3_878_000, 0)
+		// Minimum execution time: 3_577_000 picoseconds.
+		Weight::from_parts(3_731_000, 0)
 			.saturating_add(Weight::from_parts(0, 1485))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -91,8 +91,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `1485`
-		// Minimum execution time: 78_980_269_000 picoseconds.
-		Weight::from_parts(82_510_139_000, 0)
+		// Minimum execution time: 75_137_658_000 picoseconds.
+		Weight::from_parts(75_762_126_000, 0)
 			.saturating_add(Weight::from_parts(0, 1485))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -104,11 +104,11 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_877_000 picoseconds.
-		Weight::from_parts(2_034_000, 0)
+		// Minimum execution time: 1_804_000 picoseconds.
+		Weight::from_parts(1_945_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 560
-			.saturating_add(Weight::from_parts(571_898, 0).saturating_mul(i.into()))
+			// Standard Error: 726
+			.saturating_add(Weight::from_parts(572_839, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
 	/// Storage: `Skipped::Metadata` (r:0 w:0)
@@ -118,11 +118,11 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_666_000 picoseconds.
-		Weight::from_parts(1_825_000, 0)
+		// Minimum execution time: 1_744_000 picoseconds.
+		Weight::from_parts(1_972_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 746
-			.saturating_add(Weight::from_parts(476_340, 0).saturating_mul(i.into()))
+			// Standard Error: 733
+			.saturating_add(Weight::from_parts(459_317, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
 	/// Storage: `Skipped::Metadata` (r:0 w:0)
@@ -132,11 +132,11 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + p * (69 ±0)`
 		//  Estimated: `76 + p * (70 ±0)`
-		// Minimum execution time: 3_379_000 picoseconds.
-		Weight::from_parts(3_563_000, 0)
+		// Minimum execution time: 3_542_000 picoseconds.
+		Weight::from_parts(3_654_000, 0)
 			.saturating_add(Weight::from_parts(0, 76))
-			// Standard Error: 986
-			.saturating_add(Weight::from_parts(1_048_114, 0).saturating_mul(p.into()))
+			// Standard Error: 722
+			.saturating_add(Weight::from_parts(1_051_560, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into())))
 			.saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into()))
@@ -147,8 +147,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 9_487_000 picoseconds.
-		Weight::from_parts(11_272_000, 0)
+		// Minimum execution time: 8_421_000 picoseconds.
+		Weight::from_parts(9_720_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -162,8 +162,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `22`
 		//  Estimated: `1518`
-		// Minimum execution time: 82_314_090_000 picoseconds.
-		Weight::from_parts(83_524_781_000, 0)
+		// Minimum execution time: 79_149_753_000 picoseconds.
+		Weight::from_parts(80_077_256_000, 0)
 			.saturating_add(Weight::from_parts(0, 1518))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/gtest/src/weights/pallet_authority_members.rs b/runtime/gtest/src/weights/pallet_authority_members.rs
index dda0da7934a32cf51fa1236f703e83df096bb8b2..408c3def8b1a4ec6745e3bf3c1a6129c9c17f9e4 100644
--- a/runtime/gtest/src/weights/pallet_authority_members.rs
+++ b/runtime/gtest/src/weights/pallet_authority_members.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_authority_members`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -61,11 +61,11 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof: `AuthorityMembers::OnlineAuthorities` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn go_offline() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `933`
-		//  Estimated: `4398`
-		// Minimum execution time: 25_506_000 picoseconds.
-		Weight::from_parts(26_743_000, 0)
-			.saturating_add(Weight::from_parts(0, 4398))
+		//  Measured:  `900`
+		//  Estimated: `4365`
+		// Minimum execution time: 27_099_000 picoseconds.
+		Weight::from_parts(28_465_000, 0)
+			.saturating_add(Weight::from_parts(0, 4365))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -87,11 +87,11 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof: `AuthorityMembers::OnlineAuthorities` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn go_online() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1389`
-		//  Estimated: `4854`
-		// Minimum execution time: 35_040_000 picoseconds.
-		Weight::from_parts(36_374_000, 0)
-			.saturating_add(Weight::from_parts(0, 4854))
+		//  Measured:  `1356`
+		//  Estimated: `4821`
+		// Minimum execution time: 34_323_000 picoseconds.
+		Weight::from_parts(36_620_000, 0)
+			.saturating_add(Weight::from_parts(0, 4821))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -109,11 +109,11 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof: `AuthorityMembers::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn set_session_keys() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1838`
-		//  Estimated: `12728`
-		// Minimum execution time: 46_278_000 picoseconds.
-		Weight::from_parts(47_799_000, 0)
-			.saturating_add(Weight::from_parts(0, 12728))
+		//  Measured:  `1805`
+		//  Estimated: `12695`
+		// Minimum execution time: 45_331_000 picoseconds.
+		Weight::from_parts(46_694_000, 0)
+			.saturating_add(Weight::from_parts(0, 12695))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -135,8 +135,8 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `847`
 		//  Estimated: `4312`
-		// Minimum execution time: 40_725_000 picoseconds.
-		Weight::from_parts(41_917_000, 0)
+		// Minimum execution time: 40_181_000 picoseconds.
+		Weight::from_parts(42_171_000, 0)
 			.saturating_add(Weight::from_parts(0, 4312))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(10))
@@ -147,8 +147,8 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `199`
 		//  Estimated: `1684`
-		// Minimum execution time: 9_427_000 picoseconds.
-		Weight::from_parts(9_727_000, 0)
+		// Minimum execution time: 9_395_000 picoseconds.
+		Weight::from_parts(9_779_000, 0)
 			.saturating_add(Weight::from_parts(0, 1684))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/gtest/src/weights/pallet_balances.rs b/runtime/gtest/src/weights/pallet_balances.rs
index 2aa893c8b1b5406c3e17da32310fc522374b1b08..1a52cda3789faa09392aae2a78a6bbcde69ecdf1 100644
--- a/runtime/gtest/src/weights/pallet_balances.rs
+++ b/runtime/gtest/src/weights/pallet_balances.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_balances`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `63`
 		//  Estimated: `6126`
-		// Minimum execution time: 51_390_000 picoseconds.
-		Weight::from_parts(52_727_000, 0)
+		// Minimum execution time: 50_426_000 picoseconds.
+		Weight::from_parts(51_887_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -65,8 +65,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3558`
-		// Minimum execution time: 31_503_000 picoseconds.
-		Weight::from_parts(32_601_000, 0)
+		// Minimum execution time: 30_975_000 picoseconds.
+		Weight::from_parts(32_312_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -77,8 +77,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `134`
 		//  Estimated: `3558`
-		// Minimum execution time: 11_509_000 picoseconds.
-		Weight::from_parts(12_160_000, 0)
+		// Minimum execution time: 11_813_000 picoseconds.
+		Weight::from_parts(12_390_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -89,8 +89,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `134`
 		//  Estimated: `3558`
-		// Minimum execution time: 17_688_000 picoseconds.
-		Weight::from_parts(18_197_000, 0)
+		// Minimum execution time: 17_089_000 picoseconds.
+		Weight::from_parts(17_901_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -101,8 +101,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `126`
 		//  Estimated: `8694`
-		// Minimum execution time: 52_091_000 picoseconds.
-		Weight::from_parts(53_858_000, 0)
+		// Minimum execution time: 51_663_000 picoseconds.
+		Weight::from_parts(53_176_000, 0)
 			.saturating_add(Weight::from_parts(0, 8694))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -113,8 +113,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3558`
-		// Minimum execution time: 38_751_000 picoseconds.
-		Weight::from_parts(40_153_000, 0)
+		// Minimum execution time: 37_803_000 picoseconds.
+		Weight::from_parts(39_141_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -125,8 +125,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `134`
 		//  Estimated: `3558`
-		// Minimum execution time: 14_255_000 picoseconds.
-		Weight::from_parts(14_940_000, 0)
+		// Minimum execution time: 14_471_000 picoseconds.
+		Weight::from_parts(14_947_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -135,8 +135,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_446_000 picoseconds.
-		Weight::from_parts(5_704_000, 0)
+		// Minimum execution time: 5_329_000 picoseconds.
+		Weight::from_parts(5_674_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `System::Account` (r:1 w:1)
@@ -145,8 +145,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `63`
 		//  Estimated: `3558`
-		// Minimum execution time: 35_659_000 picoseconds.
-		Weight::from_parts(37_184_000, 0)
+		// Minimum execution time: 35_600_000 picoseconds.
+		Weight::from_parts(36_606_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -155,8 +155,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 16_492_000 picoseconds.
-		Weight::from_parts(16_943_000, 0)
+		// Minimum execution time: 16_326_000 picoseconds.
+		Weight::from_parts(16_670_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/runtime/gtest/src/weights/pallet_certification.rs b/runtime/gtest/src/weights/pallet_certification.rs
index bb03d17a8366fb87e09ae05a6d1425db1de0c218..df9b6216da3df8c692168ee1db4b785b156fbc5b 100644
--- a/runtime/gtest/src/weights/pallet_certification.rs
+++ b/runtime/gtest/src/weights/pallet_certification.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_certification`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -61,8 +61,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `996`
 		//  Estimated: `6936`
-		// Minimum execution time: 39_745_000 picoseconds.
-		Weight::from_parts(41_542_000, 0)
+		// Minimum execution time: 39_728_000 picoseconds.
+		Weight::from_parts(40_728_000, 0)
 			.saturating_add(Weight::from_parts(0, 6936))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -81,8 +81,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `1019`
 		//  Estimated: `6959`
-		// Minimum execution time: 36_420_000 picoseconds.
-		Weight::from_parts(37_953_000, 0)
+		// Minimum execution time: 36_707_000 picoseconds.
+		Weight::from_parts(38_672_000, 0)
 			.saturating_add(Weight::from_parts(0, 6959))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -99,7 +99,7 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 	/// Proof: `Membership::MembershipsExpireOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Identity::Identities` (r:1 w:1)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
-	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:1)
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `UniversalDividend::CurrentUdIndex` (r:1 w:0)
 	/// Proof: `UniversalDividend::CurrentUdIndex` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
@@ -119,13 +119,13 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn del_cert() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2259`
-		//  Estimated: `15624`
-		// Minimum execution time: 123_819_000 picoseconds.
-		Weight::from_parts(128_675_000, 0)
-			.saturating_add(Weight::from_parts(0, 15624))
+		//  Measured:  `2202`
+		//  Estimated: `15567`
+		// Minimum execution time: 120_946_000 picoseconds.
+		Weight::from_parts(124_950_000, 0)
+			.saturating_add(Weight::from_parts(0, 15567))
 			.saturating_add(T::DbWeight::get().reads(20))
-			.saturating_add(T::DbWeight::get().writes(23))
+			.saturating_add(T::DbWeight::get().writes(22))
 	}
 	/// Storage: `Certification::CertsByReceiver` (r:1 w:1)
 	/// Proof: `Certification::CertsByReceiver` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -138,11 +138,11 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `554 + i * (35 ±0)`
 		//  Estimated: `4018 + i * (2511 ±0)`
-		// Minimum execution time: 30_274_000 picoseconds.
-		Weight::from_parts(30_575_000, 0)
+		// Minimum execution time: 29_810_000 picoseconds.
+		Weight::from_parts(30_875_000, 0)
 			.saturating_add(Weight::from_parts(0, 4018))
-			// Standard Error: 25_287
-			.saturating_add(Weight::from_parts(9_157_343, 0).saturating_mul(i.into()))
+			// Standard Error: 25_367
+			.saturating_add(Weight::from_parts(8_966_191, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -155,8 +155,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `138`
 		//  Estimated: `3603`
-		// Minimum execution time: 3_478_000 picoseconds.
-		Weight::from_parts(3_748_000, 0)
+		// Minimum execution time: 3_455_000 picoseconds.
+		Weight::from_parts(3_692_000, 0)
 			.saturating_add(Weight::from_parts(0, 3603))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -166,8 +166,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `275`
 		//  Estimated: `3740`
-		// Minimum execution time: 5_358_000 picoseconds.
-		Weight::from_parts(5_665_000, 0)
+		// Minimum execution time: 5_287_000 picoseconds.
+		Weight::from_parts(5_663_000, 0)
 			.saturating_add(Weight::from_parts(0, 3740))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -182,8 +182,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `711`
 		//  Estimated: `6651`
-		// Minimum execution time: 26_707_000 picoseconds.
-		Weight::from_parts(27_498_000, 0)
+		// Minimum execution time: 26_471_000 picoseconds.
+		Weight::from_parts(27_567_000, 0)
 			.saturating_add(Weight::from_parts(0, 6651))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/gtest/src/weights/pallet_collective.rs b/runtime/gtest/src/weights/pallet_collective.rs
index 012dd241be2dee1688649e86f44407fb4fe65668..05218fc1fd00a9bba5dcef66340321081ebc1151 100644
--- a/runtime/gtest/src/weights/pallet_collective.rs
+++ b/runtime/gtest/src/weights/pallet_collective.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_collective`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -61,14 +61,14 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 	fn set_members(m: u32, _n: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + m * (672 ±0) + p * (3191 ±0)`
-		//  Estimated: `10019 + m * (416 ±4) + p * (4183 ±23)`
-		// Minimum execution time: 12_376_000 picoseconds.
-		Weight::from_parts(12_643_000, 0)
+		//  Estimated: `10019 + m * (416 ±5) + p * (4183 ±27)`
+		// Minimum execution time: 12_349_000 picoseconds.
+		Weight::from_parts(12_614_000, 0)
 			.saturating_add(Weight::from_parts(0, 10019))
-			// Standard Error: 9_898
-			.saturating_add(Weight::from_parts(737_370, 0).saturating_mul(m.into()))
-			// Standard Error: 48_931
-			.saturating_add(Weight::from_parts(6_976_595, 0).saturating_mul(p.into()))
+			// Standard Error: 9_948
+			.saturating_add(Weight::from_parts(748_087, 0).saturating_mul(m.into()))
+			// Standard Error: 49_177
+			.saturating_add(Weight::from_parts(7_077_641, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into())))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -84,13 +84,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `32 + m * (32 ±0)`
 		//  Estimated: `1518 + m * (32 ±0)`
-		// Minimum execution time: 11_272_000 picoseconds.
-		Weight::from_parts(10_600_255, 0)
+		// Minimum execution time: 11_215_000 picoseconds.
+		Weight::from_parts(10_887_105, 0)
 			.saturating_add(Weight::from_parts(0, 1518))
-			// Standard Error: 31
-			.saturating_add(Weight::from_parts(1_441, 0).saturating_mul(b.into()))
-			// Standard Error: 329
-			.saturating_add(Weight::from_parts(15_239, 0).saturating_mul(m.into()))
+			// Standard Error: 28
+			.saturating_add(Weight::from_parts(1_365, 0).saturating_mul(b.into()))
+			// Standard Error: 295
+			.saturating_add(Weight::from_parts(12_516, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
@@ -104,13 +104,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `32 + m * (32 ±0)`
 		//  Estimated: `3498 + m * (32 ±0)`
-		// Minimum execution time: 13_607_000 picoseconds.
-		Weight::from_parts(13_156_260, 0)
+		// Minimum execution time: 13_358_000 picoseconds.
+		Weight::from_parts(13_161_879, 0)
 			.saturating_add(Weight::from_parts(0, 3498))
-			// Standard Error: 45
-			.saturating_add(Weight::from_parts(1_432, 0).saturating_mul(b.into()))
-			// Standard Error: 465
-			.saturating_add(Weight::from_parts(20_427, 0).saturating_mul(m.into()))
+			// Standard Error: 39
+			.saturating_add(Weight::from_parts(1_356, 0).saturating_mul(b.into()))
+			// Standard Error: 403
+			.saturating_add(Weight::from_parts(20_334, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
@@ -131,15 +131,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `24 + m * (32 ±0) + p * (55 ±0)`
 		//  Estimated: `3461 + m * (32 ±0) + p * (54 ±0)`
-		// Minimum execution time: 20_011_000 picoseconds.
-		Weight::from_parts(19_486_227, 0)
+		// Minimum execution time: 19_584_000 picoseconds.
+		Weight::from_parts(18_895_212, 0)
 			.saturating_add(Weight::from_parts(0, 3461))
-			// Standard Error: 82
-			.saturating_add(Weight::from_parts(2_598, 0).saturating_mul(b.into()))
-			// Standard Error: 857
-			.saturating_add(Weight::from_parts(19_157, 0).saturating_mul(m.into()))
-			// Standard Error: 4_282
-			.saturating_add(Weight::from_parts(309_826, 0).saturating_mul(p.into()))
+			// Standard Error: 78
+			.saturating_add(Weight::from_parts(2_755, 0).saturating_mul(b.into()))
+			// Standard Error: 823
+			.saturating_add(Weight::from_parts(21_823, 0).saturating_mul(m.into()))
+			// Standard Error: 4_115
+			.saturating_add(Weight::from_parts(320_679, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(4))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
@@ -154,11 +154,11 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `573 + m * (64 ±0)`
 		//  Estimated: `4037 + m * (64 ±0)`
-		// Minimum execution time: 18_568_000 picoseconds.
-		Weight::from_parts(19_519_057, 0)
+		// Minimum execution time: 18_494_000 picoseconds.
+		Weight::from_parts(19_588_027, 0)
 			.saturating_add(Weight::from_parts(0, 4037))
-			// Standard Error: 726
-			.saturating_add(Weight::from_parts(38_988, 0).saturating_mul(m.into()))
+			// Standard Error: 752
+			.saturating_add(Weight::from_parts(39_906, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
@@ -177,13 +177,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `117 + m * (64 ±0) + p * (55 ±0)`
 		//  Estimated: `3591 + m * (64 ±0) + p * (55 ±0)`
-		// Minimum execution time: 22_878_000 picoseconds.
-		Weight::from_parts(21_767_323, 0)
+		// Minimum execution time: 22_737_000 picoseconds.
+		Weight::from_parts(21_875_501, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
-			// Standard Error: 695
-			.saturating_add(Weight::from_parts(31_045, 0).saturating_mul(m.into()))
-			// Standard Error: 3_433
-			.saturating_add(Weight::from_parts(247_676, 0).saturating_mul(p.into()))
+			// Standard Error: 656
+			.saturating_add(Weight::from_parts(27_704, 0).saturating_mul(m.into()))
+			// Standard Error: 3_242
+			.saturating_add(Weight::from_parts(249_506, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
@@ -204,15 +204,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `62 + b * (1 ±0) + m * (64 ±0) + p * (78 ±0)`
 		//  Estimated: `3619 + b * (1 ±0) + m * (63 ±0) + p * (74 ±0)`
-		// Minimum execution time: 31_879_000 picoseconds.
-		Weight::from_parts(30_485_161, 0)
+		// Minimum execution time: 31_951_000 picoseconds.
+		Weight::from_parts(30_230_575, 0)
 			.saturating_add(Weight::from_parts(0, 3619))
-			// Standard Error: 106
-			.saturating_add(Weight::from_parts(2_614, 0).saturating_mul(b.into()))
-			// Standard Error: 1_122
-			.saturating_add(Weight::from_parts(16_190, 0).saturating_mul(m.into()))
-			// Standard Error: 5_535
-			.saturating_add(Weight::from_parts(389_299, 0).saturating_mul(p.into()))
+			// Standard Error: 105
+			.saturating_add(Weight::from_parts(2_734, 0).saturating_mul(b.into()))
+			// Standard Error: 1_114
+			.saturating_add(Weight::from_parts(15_971, 0).saturating_mul(m.into()))
+			// Standard Error: 5_498
+			.saturating_add(Weight::from_parts(404_478, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
@@ -235,13 +235,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `137 + m * (64 ±0) + p * (55 ±0)`
 		//  Estimated: `3611 + m * (64 ±0) + p * (55 ±0)`
-		// Minimum execution time: 25_821_000 picoseconds.
-		Weight::from_parts(24_307_321, 0)
+		// Minimum execution time: 25_846_000 picoseconds.
+		Weight::from_parts(24_354_983, 0)
 			.saturating_add(Weight::from_parts(0, 3611))
-			// Standard Error: 716
-			.saturating_add(Weight::from_parts(36_140, 0).saturating_mul(m.into()))
-			// Standard Error: 3_536
-			.saturating_add(Weight::from_parts(259_384, 0).saturating_mul(p.into()))
+			// Standard Error: 666
+			.saturating_add(Weight::from_parts(32_377, 0).saturating_mul(m.into()))
+			// Standard Error: 3_289
+			.saturating_add(Weight::from_parts(273_346, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
@@ -264,15 +264,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `82 + b * (1 ±0) + m * (64 ±0) + p * (78 ±0)`
 		//  Estimated: `3639 + b * (1 ±0) + m * (63 ±0) + p * (74 ±0)`
-		// Minimum execution time: 34_024_000 picoseconds.
-		Weight::from_parts(32_357_560, 0)
+		// Minimum execution time: 33_758_000 picoseconds.
+		Weight::from_parts(32_799_938, 0)
 			.saturating_add(Weight::from_parts(0, 3639))
-			// Standard Error: 113
-			.saturating_add(Weight::from_parts(2_289, 0).saturating_mul(b.into()))
-			// Standard Error: 1_196
-			.saturating_add(Weight::from_parts(18_044, 0).saturating_mul(m.into()))
-			// Standard Error: 5_903
-			.saturating_add(Weight::from_parts(413_178, 0).saturating_mul(p.into()))
+			// Standard Error: 104
+			.saturating_add(Weight::from_parts(2_470, 0).saturating_mul(b.into()))
+			// Standard Error: 1_104
+			.saturating_add(Weight::from_parts(15_104, 0).saturating_mul(m.into()))
+			// Standard Error: 5_448
+			.saturating_add(Weight::from_parts(405_491, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
@@ -290,11 +290,11 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `189 + p * (32 ±0)`
 		//  Estimated: `1674 + p * (32 ±0)`
-		// Minimum execution time: 11_437_000 picoseconds.
-		Weight::from_parts(12_439_422, 0)
+		// Minimum execution time: 11_568_000 picoseconds.
+		Weight::from_parts(12_560_378, 0)
 			.saturating_add(Weight::from_parts(0, 1674))
-			// Standard Error: 2_512
-			.saturating_add(Weight::from_parts(190_585, 0).saturating_mul(p.into()))
+			// Standard Error: 1_913
+			.saturating_add(Weight::from_parts(159_858, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into()))
diff --git a/runtime/gtest/src/weights/pallet_distance.rs b/runtime/gtest/src/weights/pallet_distance.rs
index 7146b7c790553e926c9a5fb262fc6f378b8605ef..6dc7c7d6a5d04f15aeb2ec5e475d5da66dcb543b 100644
--- a/runtime/gtest/src/weights/pallet_distance.rs
+++ b/runtime/gtest/src/weights/pallet_distance.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_distance`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -67,11 +67,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn request_distance_evaluation() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1140`
-		//  Estimated: `4605`
-		// Minimum execution time: 65_498_000 picoseconds.
-		Weight::from_parts(66_940_000, 0)
-			.saturating_add(Weight::from_parts(0, 4605))
+		//  Measured:  `1134`
+		//  Estimated: `4599`
+		// Minimum execution time: 66_312_000 picoseconds.
+		Weight::from_parts(68_392_000, 0)
+			.saturating_add(Weight::from_parts(0, 4599))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -95,11 +95,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn request_distance_evaluation_for() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1169`
-		//  Estimated: `7109`
-		// Minimum execution time: 68_246_000 picoseconds.
-		Weight::from_parts(70_202_000, 0)
-			.saturating_add(Weight::from_parts(0, 7109))
+		//  Measured:  `1163`
+		//  Estimated: `7103`
+		// Minimum execution time: 68_981_000 picoseconds.
+		Weight::from_parts(70_908_000, 0)
+			.saturating_add(Weight::from_parts(0, 7103))
 			.saturating_add(T::DbWeight::get().reads(10))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -118,13 +118,13 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// The range of component `i` is `[1, 1300]`.
 	fn update_evaluation(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `401 + i * (10 ±0)`
-		//  Estimated: `1886 + i * (10 ±0)`
-		// Minimum execution time: 17_850_000 picoseconds.
-		Weight::from_parts(20_358_647, 0)
-			.saturating_add(Weight::from_parts(0, 1886))
-			// Standard Error: 76
-			.saturating_add(Weight::from_parts(110_327, 0).saturating_mul(i.into()))
+		//  Measured:  `424 + i * (10 ±0)`
+		//  Estimated: `1909 + i * (10 ±0)`
+		// Minimum execution time: 18_863_000 picoseconds.
+		Weight::from_parts(21_326_139, 0)
+			.saturating_add(Weight::from_parts(0, 1909))
+			// Standard Error: 293
+			.saturating_add(Weight::from_parts(105_268, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 10).saturating_mul(i.into()))
@@ -136,13 +136,13 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// The range of component `i` is `[1, 1300]`.
 	fn force_update_evaluation(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `139 + i * (10 ±0)`
-		//  Estimated: `1624 + i * (10 ±0)`
-		// Minimum execution time: 6_813_000 picoseconds.
-		Weight::from_parts(8_018_663, 0)
-			.saturating_add(Weight::from_parts(0, 1624))
-			// Standard Error: 349
-			.saturating_add(Weight::from_parts(112_557, 0).saturating_mul(i.into()))
+		//  Measured:  `162 + i * (10 ±0)`
+		//  Estimated: `1647 + i * (10 ±0)`
+		// Minimum execution time: 7_715_000 picoseconds.
+		Weight::from_parts(9_191_420, 0)
+			.saturating_add(Weight::from_parts(0, 1647))
+			// Standard Error: 215
+			.saturating_add(Weight::from_parts(105_937, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 10).saturating_mul(i.into()))
@@ -155,11 +155,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Membership::MembershipsExpireOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn force_valid_distance_status() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `572`
-		//  Estimated: `6512`
-		// Minimum execution time: 30_002_000 picoseconds.
-		Weight::from_parts(31_121_000, 0)
-			.saturating_add(Weight::from_parts(0, 6512))
+		//  Measured:  `539`
+		//  Estimated: `6479`
+		// Minimum execution time: 29_644_000 picoseconds.
+		Weight::from_parts(31_245_000, 0)
+			.saturating_add(Weight::from_parts(0, 6479))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -167,8 +167,8 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 98_000 picoseconds.
-		Weight::from_parts(120_000, 0)
+		// Minimum execution time: 86_000 picoseconds.
+		Weight::from_parts(105_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `System::ParentHash` (r:1 w:0)
@@ -191,11 +191,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Distance::EvaluationBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn do_evaluation_success() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `984`
-		//  Estimated: `6924`
-		// Minimum execution time: 63_300_000 picoseconds.
-		Weight::from_parts(64_975_000, 0)
-			.saturating_add(Weight::from_parts(0, 6924))
+		//  Measured:  `951`
+		//  Estimated: `6891`
+		// Minimum execution time: 62_874_000 picoseconds.
+		Weight::from_parts(65_306_000, 0)
+			.saturating_add(Weight::from_parts(0, 6891))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(8))
 	}
@@ -215,8 +215,8 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `475`
 		//  Estimated: `6126`
-		// Minimum execution time: 43_343_000 picoseconds.
-		Weight::from_parts(44_323_000, 0)
+		// Minimum execution time: 42_378_000 picoseconds.
+		Weight::from_parts(43_369_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(6))
@@ -229,11 +229,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Distance::EvaluationBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn do_evaluation_overhead() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `109`
-		//  Estimated: `1594`
-		// Minimum execution time: 3_570_000 picoseconds.
-		Weight::from_parts(3_800_000, 0)
-			.saturating_add(Weight::from_parts(0, 1594))
+		//  Measured:  `136`
+		//  Estimated: `1621`
+		// Minimum execution time: 4_389_000 picoseconds.
+		Weight::from_parts(4_695_000, 0)
+			.saturating_add(Weight::from_parts(0, 1621))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -241,11 +241,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof: `Distance::DidUpdate` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn on_finalize() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `133`
-		//  Estimated: `1618`
-		// Minimum execution time: 3_621_000 picoseconds.
-		Weight::from_parts(3_956_000, 0)
-			.saturating_add(Weight::from_parts(0, 1618))
+		//  Measured:  `157`
+		//  Estimated: `1642`
+		// Minimum execution time: 4_213_000 picoseconds.
+		Weight::from_parts(4_441_000, 0)
+			.saturating_add(Weight::from_parts(0, 1642))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/gtest/src/weights/pallet_duniter_account.rs b/runtime/gtest/src/weights/pallet_duniter_account.rs
index 6c9a41484b6ca75ae17c546e4272f873522952f2..d13bf5b85ab5dbca0094127446b74d54de82bd7f 100644
--- a/runtime/gtest/src/weights/pallet_duniter_account.rs
+++ b/runtime/gtest/src/weights/pallet_duniter_account.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_duniter_account`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_duniter_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3558`
-		// Minimum execution time: 4_245_000 picoseconds.
-		Weight::from_parts(4_407_000, 0)
+		// Minimum execution time: 4_308_000 picoseconds.
+		Weight::from_parts(4_654_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/gtest/src/weights/pallet_identity.rs b/runtime/gtest/src/weights/pallet_identity.rs
index 7476f6147c8c7fde50273c2ed4f85a4ead4b7dcc..0871837620e15a4717a488b3ba4e6922b3dc8bbd 100644
--- a/runtime/gtest/src/weights/pallet_identity.rs
+++ b/runtime/gtest/src/weights/pallet_identity.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_identity`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -69,11 +69,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn create_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1099`
-		//  Estimated: `7039`
-		// Minimum execution time: 70_942_000 picoseconds.
-		Weight::from_parts(73_952_000, 0)
-			.saturating_add(Weight::from_parts(0, 7039))
+		//  Measured:  `1042`
+		//  Estimated: `6982`
+		// Minimum execution time: 68_755_000 picoseconds.
+		Weight::from_parts(71_780_000, 0)
+			.saturating_add(Weight::from_parts(0, 6982))
 			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
@@ -87,11 +87,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn confirm_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `822`
-		//  Estimated: `6762`
-		// Minimum execution time: 36_149_000 picoseconds.
-		Weight::from_parts(37_423_000, 0)
-			.saturating_add(Weight::from_parts(0, 6762))
+		//  Measured:  `784`
+		//  Estimated: `6724`
+		// Minimum execution time: 34_442_000 picoseconds.
+		Weight::from_parts(36_111_000, 0)
+			.saturating_add(Weight::from_parts(0, 6724))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -107,11 +107,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`)
 	fn change_owner_key() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `984`
-		//  Estimated: `6924`
-		// Minimum execution time: 84_837_000 picoseconds.
-		Weight::from_parts(86_771_000, 0)
-			.saturating_add(Weight::from_parts(0, 6924))
+		//  Measured:  `964`
+		//  Estimated: `6904`
+		// Minimum execution time: 82_826_000 picoseconds.
+		Weight::from_parts(85_543_000, 0)
+			.saturating_add(Weight::from_parts(0, 6904))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
@@ -127,11 +127,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn revoke_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `731`
-		//  Estimated: `6671`
-		// Minimum execution time: 72_077_000 picoseconds.
-		Weight::from_parts(73_552_000, 0)
-			.saturating_add(Weight::from_parts(0, 6671))
+		//  Measured:  `697`
+		//  Estimated: `6637`
+		// Minimum execution time: 69_941_000 picoseconds.
+		Weight::from_parts(71_920_000, 0)
+			.saturating_add(Weight::from_parts(0, 6637))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
@@ -142,11 +142,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_146_000 picoseconds.
-		Weight::from_parts(4_326_000, 0)
+		// Minimum execution time: 4_036_000 picoseconds.
+		Weight::from_parts(4_192_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 1_351
-			.saturating_add(Weight::from_parts(1_270_066, 0).saturating_mul(i.into()))
+			// Standard Error: 1_414
+			.saturating_add(Weight::from_parts(1_234_192, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
@@ -156,8 +156,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `104`
 		//  Estimated: `3558`
-		// Minimum execution time: 7_639_000 picoseconds.
-		Weight::from_parts(7_989_000, 0)
+		// Minimum execution time: 7_560_000 picoseconds.
+		Weight::from_parts(7_947_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -170,11 +170,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`)
 	fn link_account() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `436`
-		//  Estimated: `3901`
-		// Minimum execution time: 55_336_000 picoseconds.
-		Weight::from_parts(56_976_000, 0)
-			.saturating_add(Weight::from_parts(0, 3901))
+		//  Measured:  `403`
+		//  Estimated: `3868`
+		// Minimum execution time: 54_978_000 picoseconds.
+		Weight::from_parts(56_729_000, 0)
+			.saturating_add(Weight::from_parts(0, 3868))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -182,24 +182,24 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 87_000 picoseconds.
-		Weight::from_parts(119_000, 0)
+		// Minimum execution time: 85_000 picoseconds.
+		Weight::from_parts(105_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:0)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_revoke_identity_noop() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `360`
-		//  Estimated: `3825`
-		// Minimum execution time: 5_161_000 picoseconds.
-		Weight::from_parts(5_491_000, 0)
-			.saturating_add(Weight::from_parts(0, 3825))
+		//  Measured:  `327`
+		//  Estimated: `3792`
+		// Minimum execution time: 5_215_000 picoseconds.
+		Weight::from_parts(5_477_000, 0)
+			.saturating_add(Weight::from_parts(0, 3792))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:1)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
-	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:1)
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Membership::Membership` (r:1 w:1)
 	/// Proof: `Membership::Membership` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -229,23 +229,23 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_revoke_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1930`
-		//  Estimated: `15295`
-		// Minimum execution time: 111_529_000 picoseconds.
-		Weight::from_parts(115_730_000, 0)
-			.saturating_add(Weight::from_parts(0, 15295))
+		//  Measured:  `1873`
+		//  Estimated: `15238`
+		// Minimum execution time: 106_753_000 picoseconds.
+		Weight::from_parts(110_773_000, 0)
+			.saturating_add(Weight::from_parts(0, 15238))
 			.saturating_add(T::DbWeight::get().reads(18))
-			.saturating_add(T::DbWeight::get().writes(22))
+			.saturating_add(T::DbWeight::get().writes(21))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:0)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity_noop() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `360`
-		//  Estimated: `3825`
-		// Minimum execution time: 5_161_000 picoseconds.
-		Weight::from_parts(5_453_000, 0)
-			.saturating_add(Weight::from_parts(0, 3825))
+		//  Measured:  `327`
+		//  Estimated: `3792`
+		// Minimum execution time: 4_861_000 picoseconds.
+		Weight::from_parts(5_300_000, 0)
+			.saturating_add(Weight::from_parts(0, 3792))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:1)
@@ -284,11 +284,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2355`
-		//  Estimated: `18195`
-		// Minimum execution time: 159_027_000 picoseconds.
-		Weight::from_parts(164_390_000, 0)
-			.saturating_add(Weight::from_parts(0, 18195))
+		//  Measured:  `2322`
+		//  Estimated: `18162`
+		// Minimum execution time: 153_390_000 picoseconds.
+		Weight::from_parts(165_702_000, 0)
+			.saturating_add(Weight::from_parts(0, 18162))
 			.saturating_add(T::DbWeight::get().reads(24))
 			.saturating_add(T::DbWeight::get().writes(30))
 	}
@@ -300,7 +300,7 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Membership::MembershipsExpireOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Identity::Identities` (r:1 w:1)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
-	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:1)
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `UniversalDividend::CurrentUdIndex` (r:1 w:0)
 	/// Proof: `UniversalDividend::CurrentUdIndex` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
@@ -328,13 +328,13 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn do_remove_identity_handler() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2372`
-		//  Estimated: `18212`
-		// Minimum execution time: 155_290_000 picoseconds.
-		Weight::from_parts(160_593_000, 0)
-			.saturating_add(Weight::from_parts(0, 18212))
+		//  Measured:  `2315`
+		//  Estimated: `18155`
+		// Minimum execution time: 149_574_000 picoseconds.
+		Weight::from_parts(155_209_000, 0)
+			.saturating_add(Weight::from_parts(0, 18155))
 			.saturating_add(T::DbWeight::get().reads(25))
-			.saturating_add(T::DbWeight::get().writes(29))
+			.saturating_add(T::DbWeight::get().writes(28))
 	}
 	/// Storage: `Identity::Identities` (r:1 w:1)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -342,11 +342,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn membership_removed() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `441`
-		//  Estimated: `6381`
-		// Minimum execution time: 17_262_000 picoseconds.
-		Weight::from_parts(18_084_000, 0)
-			.saturating_add(Weight::from_parts(0, 6381))
+		//  Measured:  `407`
+		//  Estimated: `6347`
+		// Minimum execution time: 17_050_000 picoseconds.
+		Weight::from_parts(18_246_000, 0)
+			.saturating_add(Weight::from_parts(0, 6347))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -354,11 +354,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn prune_identities_noop() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `165`
-		//  Estimated: `3630`
-		// Minimum execution time: 3_537_000 picoseconds.
-		Weight::from_parts(3_857_000, 0)
-			.saturating_add(Weight::from_parts(0, 3630))
+		//  Measured:  `108`
+		//  Estimated: `3573`
+		// Minimum execution time: 2_963_000 picoseconds.
+		Weight::from_parts(3_155_000, 0)
+			.saturating_add(Weight::from_parts(0, 3573))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: `Identity::IdentityChangeSchedule` (r:1 w:1)
@@ -367,11 +367,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn prune_identities_none() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `363`
-		//  Estimated: `3828`
-		// Minimum execution time: 7_992_000 picoseconds.
-		Weight::from_parts(8_540_000, 0)
-			.saturating_add(Weight::from_parts(0, 3828))
+		//  Measured:  `325`
+		//  Estimated: `3790`
+		// Minimum execution time: 7_923_000 picoseconds.
+		Weight::from_parts(8_194_000, 0)
+			.saturating_add(Weight::from_parts(0, 3790))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -393,11 +393,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: `Quota::IdtyQuota` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
 	fn prune_identities_err() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `952`
-		//  Estimated: `4417`
-		// Minimum execution time: 39_299_000 picoseconds.
-		Weight::from_parts(40_659_000, 0)
-			.saturating_add(Weight::from_parts(0, 4417))
+		//  Measured:  `914`
+		//  Estimated: `4379`
+		// Minimum execution time: 37_843_000 picoseconds.
+		Weight::from_parts(39_298_000, 0)
+			.saturating_add(Weight::from_parts(0, 4379))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(7))
 	}
diff --git a/runtime/gtest/src/weights/pallet_im_online.rs b/runtime/gtest/src/weights/pallet_im_online.rs
index 419068ac35bb8422c6695648f28ac7c5a050546b..8d3e4f80ca95739e35e58670105ef16d3e06d757 100644
--- a/runtime/gtest/src/weights/pallet_im_online.rs
+++ b/runtime/gtest/src/weights/pallet_im_online.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_im_online`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -62,11 +62,11 @@ impl<T: frame_system::Config> pallet_im_online::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `525 + k * (32 ±0)`
 		//  Estimated: `33487 + k * (1761 ±0)`
-		// Minimum execution time: 54_766_000 picoseconds.
-		Weight::from_parts(60_122_996, 0)
+		// Minimum execution time: 54_826_000 picoseconds.
+		Weight::from_parts(66_447_730, 0)
 			.saturating_add(Weight::from_parts(0, 33487))
-			// Standard Error: 983
-			.saturating_add(Weight::from_parts(58_301, 0).saturating_mul(k.into()))
+			// Standard Error: 562
+			.saturating_add(Weight::from_parts(42_980, 0).saturating_mul(k.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into()))
diff --git a/runtime/gtest/src/weights/pallet_membership.rs b/runtime/gtest/src/weights/pallet_membership.rs
index facf13502ff3777fc2233abf55b3263a13d288cb..40a2d645addf77f18340032953c523f9d10ba9cc 100644
--- a/runtime/gtest/src/weights/pallet_membership.rs
+++ b/runtime/gtest/src/weights/pallet_membership.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_membership`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -51,11 +51,11 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 84_000 picoseconds.
-		Weight::from_parts(118_000, 0)
+		// Minimum execution time: 105_000 picoseconds.
+		Weight::from_parts(137_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
-	/// Storage: `Membership::MembershipsExpireOn` (r:2 w:2)
+	/// Storage: `Membership::MembershipsExpireOn` (r:2 w:1)
 	/// Proof: `Membership::MembershipsExpireOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Membership::Membership` (r:3 w:3)
 	/// Proof: `Membership::Membership` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -63,7 +63,7 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 	/// Proof: `Membership::CounterForMembership` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::Identities` (r:3 w:3)
 	/// Proof: `Identity::Identities` (`max_values`: None, `max_size`: None, mode: `Measured`)
-	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:2)
+	/// Storage: `Identity::IdentityChangeSchedule` (r:2 w:1)
 	/// Proof: `Identity::IdentityChangeSchedule` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `UniversalDividend::CurrentUdIndex` (r:1 w:0)
 	/// Proof: `UniversalDividend::CurrentUdIndex` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
@@ -86,17 +86,17 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 	/// The range of component `i` is `[0, 3]`.
 	fn expire_memberships(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `139 + i * (992 ±0)`
-		//  Estimated: `15059 + i * (2695 ±0)`
-		// Minimum execution time: 5_415_000 picoseconds.
-		Weight::from_parts(15_365_773, 0)
-			.saturating_add(Weight::from_parts(0, 15059))
-			// Standard Error: 670_181
-			.saturating_add(Weight::from_parts(80_439_784, 0).saturating_mul(i.into()))
+		//  Measured:  `139 + i * (960 ±0)`
+		//  Estimated: `14995 + i * (2695 ±1)`
+		// Minimum execution time: 5_479_000 picoseconds.
+		Weight::from_parts(14_151_165, 0)
+			.saturating_add(Weight::from_parts(0, 14995))
+			// Standard Error: 592_743
+			.saturating_add(Weight::from_parts(76_914_637, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().reads((11_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
-			.saturating_add(T::DbWeight::get().writes((15_u64).saturating_mul(i.into())))
+			.saturating_add(T::DbWeight::get().writes((14_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 2695).saturating_mul(i.into()))
 	}
 }
diff --git a/runtime/gtest/src/weights/pallet_multisig.rs b/runtime/gtest/src/weights/pallet_multisig.rs
index 5ffd1b05dd100d1917dbe30d2ddb1957f0ece0bc..44ef717a6703283bea9e0267728b72f7b76e2730 100644
--- a/runtime/gtest/src/weights/pallet_multisig.rs
+++ b/runtime/gtest/src/weights/pallet_multisig.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_multisig`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -52,11 +52,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_267_000 picoseconds.
-		Weight::from_parts(5_684_114, 0)
+		// Minimum execution time: 5_402_000 picoseconds.
+		Weight::from_parts(5_734_667, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 3
-			.saturating_add(Weight::from_parts(341, 0).saturating_mul(z.into()))
+			// Standard Error: 2
+			.saturating_add(Weight::from_parts(334, 0).saturating_mul(z.into()))
 	}
 	/// Storage: `Multisig::Multisigs` (r:1 w:1)
 	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(457), added: 2932, mode: `MaxEncodedLen`)
@@ -66,13 +66,13 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `125 + s * (5 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 26_846_000 picoseconds.
-		Weight::from_parts(25_885_066, 0)
+		// Minimum execution time: 27_930_000 picoseconds.
+		Weight::from_parts(28_061_965, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 12_156
-			.saturating_add(Weight::from_parts(319_964, 0).saturating_mul(s.into()))
-			// Standard Error: 10
-			.saturating_add(Weight::from_parts(1_188, 0).saturating_mul(z.into()))
+			// Standard Error: 6_976
+			.saturating_add(Weight::from_parts(140_667, 0).saturating_mul(s.into()))
+			// Standard Error: 6
+			.saturating_add(Weight::from_parts(1_068, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -84,13 +84,13 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `240`
 		//  Estimated: `3922`
-		// Minimum execution time: 15_901_000 picoseconds.
-		Weight::from_parts(14_520_732, 0)
+		// Minimum execution time: 15_840_000 picoseconds.
+		Weight::from_parts(16_001_349, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 9_537
-			.saturating_add(Weight::from_parts(215_623, 0).saturating_mul(s.into()))
-			// Standard Error: 7
-			.saturating_add(Weight::from_parts(1_129, 0).saturating_mul(z.into()))
+			// Standard Error: 4_919
+			.saturating_add(Weight::from_parts(70_289, 0).saturating_mul(s.into()))
+			// Standard Error: 3
+			.saturating_add(Weight::from_parts(1_070, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -104,13 +104,13 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `259 + s * (37 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 30_646_000 picoseconds.
-		Weight::from_parts(31_247_927, 0)
+		// Minimum execution time: 30_254_000 picoseconds.
+		Weight::from_parts(31_261_609, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 17_061
-			.saturating_add(Weight::from_parts(55_714, 0).saturating_mul(s.into()))
-			// Standard Error: 14
-			.saturating_add(Weight::from_parts(1_136, 0).saturating_mul(z.into()))
+			// Standard Error: 6_677
+			.saturating_add(Weight::from_parts(73_545, 0).saturating_mul(s.into()))
+			// Standard Error: 5
+			.saturating_add(Weight::from_parts(1_061, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -121,11 +121,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `130 + s * (5 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 24_999_000 picoseconds.
-		Weight::from_parts(27_208_681, 0)
+		// Minimum execution time: 25_378_000 picoseconds.
+		Weight::from_parts(26_802_406, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 8_294
-			.saturating_add(Weight::from_parts(258_541, 0).saturating_mul(s.into()))
+			// Standard Error: 7_813
+			.saturating_add(Weight::from_parts(167_683, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -136,11 +136,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `240`
 		//  Estimated: `3922`
-		// Minimum execution time: 13_782_000 picoseconds.
-		Weight::from_parts(15_284_765, 0)
+		// Minimum execution time: 14_013_000 picoseconds.
+		Weight::from_parts(14_774_271, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 7_355
-			.saturating_add(Weight::from_parts(41_174, 0).saturating_mul(s.into()))
+			// Standard Error: 3_855
+			.saturating_add(Weight::from_parts(111_703, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -151,11 +151,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `328 + s * (5 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 27_582_000 picoseconds.
-		Weight::from_parts(28_615_382, 0)
+		// Minimum execution time: 25_931_000 picoseconds.
+		Weight::from_parts(27_792_486, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 7_910
-			.saturating_add(Weight::from_parts(239_904, 0).saturating_mul(s.into()))
+			// Standard Error: 5_947
+			.saturating_add(Weight::from_parts(132_444, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/gtest/src/weights/pallet_oneshot_account.rs b/runtime/gtest/src/weights/pallet_oneshot_account.rs
index 4d786600b1cd9c360f875355d1b79ce150b13245..4cfc554734a2ba08a255c57e9673d8a448d5fe18 100644
--- a/runtime/gtest/src/weights/pallet_oneshot_account.rs
+++ b/runtime/gtest/src/weights/pallet_oneshot_account.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_oneshot_account`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_oneshot_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3507`
-		// Minimum execution time: 21_832_000 picoseconds.
-		Weight::from_parts(22_728_000, 0)
+		// Minimum execution time: 21_166_000 picoseconds.
+		Weight::from_parts(21_892_000, 0)
 			.saturating_add(Weight::from_parts(0, 3507))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -69,8 +69,8 @@ impl<T: frame_system::Config> pallet_oneshot_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `241`
 		//  Estimated: `3706`
-		// Minimum execution time: 30_612_000 picoseconds.
-		Weight::from_parts(31_998_000, 0)
+		// Minimum execution time: 30_530_000 picoseconds.
+		Weight::from_parts(31_743_000, 0)
 			.saturating_add(Weight::from_parts(0, 3706))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -85,8 +85,8 @@ impl<T: frame_system::Config> pallet_oneshot_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `301`
 		//  Estimated: `6126`
-		// Minimum execution time: 44_470_000 picoseconds.
-		Weight::from_parts(45_865_000, 0)
+		// Minimum execution time: 44_700_000 picoseconds.
+		Weight::from_parts(47_037_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/gtest/src/weights/pallet_preimage.rs b/runtime/gtest/src/weights/pallet_preimage.rs
index 603cb2a21ef9a54839b2f78d9c5d4a1729fc9bda..8673588f3a98e39341077ea4210aef84e6c18cb4 100644
--- a/runtime/gtest/src/weights/pallet_preimage.rs
+++ b/runtime/gtest/src/weights/pallet_preimage.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_preimage`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -58,11 +58,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3548`
-		// Minimum execution time: 12_724_000 picoseconds.
-		Weight::from_parts(13_096_000, 0)
+		// Minimum execution time: 11_995_000 picoseconds.
+		Weight::from_parts(12_438_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_365, 0).saturating_mul(s.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_276, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -77,11 +77,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 16_258_000 picoseconds.
-		Weight::from_parts(16_723_000, 0)
+		// Minimum execution time: 15_871_000 picoseconds.
+		Weight::from_parts(16_038_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
-			// Standard Error: 6
-			.saturating_add(Weight::from_parts(1_453, 0).saturating_mul(s.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_277, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -96,11 +96,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 14_500_000 picoseconds.
-		Weight::from_parts(14_812_000, 0)
+		// Minimum execution time: 13_450_000 picoseconds.
+		Weight::from_parts(13_904_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_425, 0).saturating_mul(s.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_357, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -114,8 +114,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `172`
 		//  Estimated: `3548`
-		// Minimum execution time: 24_069_000 picoseconds.
-		Weight::from_parts(25_262_000, 0)
+		// Minimum execution time: 22_973_000 picoseconds.
+		Weight::from_parts(24_538_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -130,8 +130,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `144`
 		//  Estimated: `3548`
-		// Minimum execution time: 25_719_000 picoseconds.
-		Weight::from_parts(27_437_000, 0)
+		// Minimum execution time: 22_976_000 picoseconds.
+		Weight::from_parts(24_675_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -144,8 +144,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `172`
 		//  Estimated: `3548`
-		// Minimum execution time: 22_792_000 picoseconds.
-		Weight::from_parts(24_663_000, 0)
+		// Minimum execution time: 21_408_000 picoseconds.
+		Weight::from_parts(22_984_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -158,8 +158,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `144`
 		//  Estimated: `3548`
-		// Minimum execution time: 14_688_000 picoseconds.
-		Weight::from_parts(16_328_000, 0)
+		// Minimum execution time: 13_888_000 picoseconds.
+		Weight::from_parts(15_741_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -172,8 +172,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3548`
-		// Minimum execution time: 11_006_000 picoseconds.
-		Weight::from_parts(12_822_000, 0)
+		// Minimum execution time: 10_826_000 picoseconds.
+		Weight::from_parts(11_410_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -186,8 +186,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 8_902_000 picoseconds.
-		Weight::from_parts(9_526_000, 0)
+		// Minimum execution time: 9_166_000 picoseconds.
+		Weight::from_parts(10_050_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -202,8 +202,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `144`
 		//  Estimated: `3548`
-		// Minimum execution time: 22_648_000 picoseconds.
-		Weight::from_parts(25_051_000, 0)
+		// Minimum execution time: 20_526_000 picoseconds.
+		Weight::from_parts(22_704_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -216,8 +216,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 8_677_000 picoseconds.
-		Weight::from_parts(10_123_000, 0)
+		// Minimum execution time: 8_648_000 picoseconds.
+		Weight::from_parts(9_293_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -230,8 +230,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 8_494_000 picoseconds.
-		Weight::from_parts(9_416_000, 0)
+		// Minimum execution time: 8_596_000 picoseconds.
+		Weight::from_parts(9_282_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -247,11 +247,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + n * (179 ±0)`
 		//  Estimated: `990 + n * (2568 ±0)`
-		// Minimum execution time: 19_546_000 picoseconds.
-		Weight::from_parts(19_980_000, 0)
+		// Minimum execution time: 19_474_000 picoseconds.
+		Weight::from_parts(20_048_000, 0)
 			.saturating_add(Weight::from_parts(0, 990))
-			// Standard Error: 29_232
-			.saturating_add(Weight::from_parts(15_798_569, 0).saturating_mul(n.into()))
+			// Standard Error: 17_666
+			.saturating_add(Weight::from_parts(15_238_060, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into())))
 			.saturating_add(Weight::from_parts(0, 2568).saturating_mul(n.into()))
diff --git a/runtime/gtest/src/weights/pallet_provide_randomness.rs b/runtime/gtest/src/weights/pallet_provide_randomness.rs
index 7409013b980fd3137d746feeac49a1e88ffbaf97..885a31777ee6ad322e5bcae030c6bfc78d7238fc 100644
--- a/runtime/gtest/src/weights/pallet_provide_randomness.rs
+++ b/runtime/gtest/src/weights/pallet_provide_randomness.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_provide_randomness`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -65,8 +65,8 @@ impl<T: frame_system::Config> pallet_provide_randomness::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `298`
 		//  Estimated: `3763`
-		// Minimum execution time: 46_468_000 picoseconds.
-		Weight::from_parts(47_745_000, 0)
+		// Minimum execution time: 45_460_000 picoseconds.
+		Weight::from_parts(46_779_000, 0)
 			.saturating_add(Weight::from_parts(0, 3763))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(5))
@@ -86,11 +86,11 @@ impl<T: frame_system::Config> pallet_provide_randomness::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `341 + i * (59 ±0)`
 		//  Estimated: `1827 + i * (2535 ±0)`
-		// Minimum execution time: 20_912_000 picoseconds.
-		Weight::from_parts(19_132_019, 0)
+		// Minimum execution time: 20_516_000 picoseconds.
+		Weight::from_parts(18_960_016, 0)
 			.saturating_add(Weight::from_parts(0, 1827))
-			// Standard Error: 4_824
-			.saturating_add(Weight::from_parts(5_617_957, 0).saturating_mul(i.into()))
+			// Standard Error: 4_979
+			.saturating_add(Weight::from_parts(5_509_698, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -118,11 +118,11 @@ impl<T: frame_system::Config> pallet_provide_randomness::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `351 + i * (59 ±0)`
 		//  Estimated: `3817 + i * (2535 ±0)`
-		// Minimum execution time: 23_013_000 picoseconds.
-		Weight::from_parts(21_880_754, 0)
+		// Minimum execution time: 22_272_000 picoseconds.
+		Weight::from_parts(20_784_912, 0)
 			.saturating_add(Weight::from_parts(0, 3817))
-			// Standard Error: 6_890
-			.saturating_add(Weight::from_parts(5_931_426, 0).saturating_mul(i.into()))
+			// Standard Error: 9_029
+			.saturating_add(Weight::from_parts(5_915_066, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/gtest/src/weights/pallet_proxy.rs b/runtime/gtest/src/weights/pallet_proxy.rs
index 7c673c00a27b78b53e26d4cae061d3d04ec19db4..245d3a9619643d5fbd8c450af28d1e6e6374f103 100644
--- a/runtime/gtest/src/weights/pallet_proxy.rs
+++ b/runtime/gtest/src/weights/pallet_proxy.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_proxy`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -54,11 +54,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 13_710_000 picoseconds.
-		Weight::from_parts(15_287_032, 0)
+		// Minimum execution time: 13_847_000 picoseconds.
+		Weight::from_parts(14_157_757, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 2_710
-			.saturating_add(Weight::from_parts(8_236, 0).saturating_mul(p.into()))
+			// Standard Error: 11_841
+			.saturating_add(Weight::from_parts(96_916, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: `Proxy::Proxies` (r:1 w:0)
@@ -73,13 +73,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `399 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 32_726_000 picoseconds.
-		Weight::from_parts(33_365_088, 0)
+		// Minimum execution time: 32_798_000 picoseconds.
+		Weight::from_parts(33_437_104, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 2_895
-			.saturating_add(Weight::from_parts(144_354, 0).saturating_mul(a.into()))
-			// Standard Error: 2_991
-			.saturating_add(Weight::from_parts(30_152, 0).saturating_mul(p.into()))
+			// Standard Error: 2_218
+			.saturating_add(Weight::from_parts(129_003, 0).saturating_mul(a.into()))
+			// Standard Error: 2_291
+			.saturating_add(Weight::from_parts(34_559, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -93,13 +93,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `322 + a * (68 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 22_413_000 picoseconds.
-		Weight::from_parts(22_983_924, 0)
+		// Minimum execution time: 22_460_000 picoseconds.
+		Weight::from_parts(22_931_792, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 1_604
-			.saturating_add(Weight::from_parts(154_154, 0).saturating_mul(a.into()))
-			// Standard Error: 1_657
-			.saturating_add(Weight::from_parts(13_201, 0).saturating_mul(p.into()))
+			// Standard Error: 1_607
+			.saturating_add(Weight::from_parts(149_039, 0).saturating_mul(a.into()))
+			// Standard Error: 1_660
+			.saturating_add(Weight::from_parts(12_237, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -113,13 +113,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `322 + a * (68 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 22_094_000 picoseconds.
-		Weight::from_parts(22_965_053, 0)
+		// Minimum execution time: 22_374_000 picoseconds.
+		Weight::from_parts(23_055_158, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 1_693
-			.saturating_add(Weight::from_parts(158_477, 0).saturating_mul(a.into()))
-			// Standard Error: 1_749
-			.saturating_add(Weight::from_parts(4_097, 0).saturating_mul(p.into()))
+			// Standard Error: 1_686
+			.saturating_add(Weight::from_parts(136_722, 0).saturating_mul(a.into()))
+			// Standard Error: 1_742
+			.saturating_add(Weight::from_parts(11_068, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -135,13 +135,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `331 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 29_825_000 picoseconds.
-		Weight::from_parts(30_033_262, 0)
+		// Minimum execution time: 29_361_000 picoseconds.
+		Weight::from_parts(29_911_130, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 1_985
-			.saturating_add(Weight::from_parts(143_475, 0).saturating_mul(a.into()))
-			// Standard Error: 2_051
-			.saturating_add(Weight::from_parts(44_342, 0).saturating_mul(p.into()))
+			// Standard Error: 1_868
+			.saturating_add(Weight::from_parts(143_513, 0).saturating_mul(a.into()))
+			// Standard Error: 1_930
+			.saturating_add(Weight::from_parts(40_046, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -152,11 +152,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 21_216_000 picoseconds.
-		Weight::from_parts(22_204_435, 0)
+		// Minimum execution time: 21_235_000 picoseconds.
+		Weight::from_parts(22_514_912, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 2_215
-			.saturating_add(Weight::from_parts(40_720, 0).saturating_mul(p.into()))
+			// Standard Error: 1_976
+			.saturating_add(Weight::from_parts(41_364, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -167,11 +167,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 20_845_000 picoseconds.
-		Weight::from_parts(22_402_298, 0)
+		// Minimum execution time: 21_548_000 picoseconds.
+		Weight::from_parts(22_466_787, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 2_097
-			.saturating_add(Weight::from_parts(40_366, 0).saturating_mul(p.into()))
+			// Standard Error: 1_893
+			.saturating_add(Weight::from_parts(46_469, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -182,11 +182,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 19_314_000 picoseconds.
-		Weight::from_parts(20_557_819, 0)
+		// Minimum execution time: 19_311_000 picoseconds.
+		Weight::from_parts(20_351_733, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_961
-			.saturating_add(Weight::from_parts(24_604, 0).saturating_mul(p.into()))
+			// Standard Error: 1_377
+			.saturating_add(Weight::from_parts(47_135, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -197,11 +197,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `177`
 		//  Estimated: `4698`
-		// Minimum execution time: 21_998_000 picoseconds.
-		Weight::from_parts(23_614_152, 0)
+		// Minimum execution time: 22_541_000 picoseconds.
+		Weight::from_parts(23_604_024, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_659
-			.saturating_add(Weight::from_parts(4_360, 0).saturating_mul(p.into()))
+			// Standard Error: 1_187
+			.saturating_add(Weight::from_parts(13_008, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -212,11 +212,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `194 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 19_894_000 picoseconds.
-		Weight::from_parts(21_021_613, 0)
+		// Minimum execution time: 19_371_000 picoseconds.
+		Weight::from_parts(20_993_121, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_681
-			.saturating_add(Weight::from_parts(28_650, 0).saturating_mul(p.into()))
+			// Standard Error: 1_372
+			.saturating_add(Weight::from_parts(38_268, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/gtest/src/weights/pallet_scheduler.rs b/runtime/gtest/src/weights/pallet_scheduler.rs
index dfa675aae6e4573c7d72c729f95ce039cbca8ca6..18e5ac1218163e516bfe329387d998f161458ba5 100644
--- a/runtime/gtest/src/weights/pallet_scheduler.rs
+++ b/runtime/gtest/src/weights/pallet_scheduler.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_scheduler`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `30`
 		//  Estimated: `1489`
-		// Minimum execution time: 3_463_000 picoseconds.
-		Weight::from_parts(3_671_000, 0)
+		// Minimum execution time: 3_302_000 picoseconds.
+		Weight::from_parts(3_504_000, 0)
 			.saturating_add(Weight::from_parts(0, 1489))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -66,11 +66,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + s * (177 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 3_509_000 picoseconds.
-		Weight::from_parts(7_049_506, 0)
+		// Minimum execution time: 3_285_000 picoseconds.
+		Weight::from_parts(6_925_828, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 1_914
-			.saturating_add(Weight::from_parts(284_635, 0).saturating_mul(s.into()))
+			// Standard Error: 1_944
+			.saturating_add(Weight::from_parts(264_477, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -78,8 +78,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_626_000 picoseconds.
-		Weight::from_parts(2_866_000, 0)
+		// Minimum execution time: 2_830_000 picoseconds.
+		Weight::from_parts(3_038_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `Preimage::PreimageFor` (r:1 w:1)
@@ -93,11 +93,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `179 + s * (1 ±0)`
 		//  Estimated: `4197809`
-		// Minimum execution time: 17_064_000 picoseconds.
-		Weight::from_parts(17_408_000, 0)
+		// Minimum execution time: 17_515_000 picoseconds.
+		Weight::from_parts(17_805_000, 0)
 			.saturating_add(Weight::from_parts(0, 4197809))
-			// Standard Error: 3
-			.saturating_add(Weight::from_parts(1_005, 0).saturating_mul(s.into()))
+			// Standard Error: 2
+			.saturating_add(Weight::from_parts(881, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -107,8 +107,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_188_000 picoseconds.
-		Weight::from_parts(4_405_000, 0)
+		// Minimum execution time: 4_313_000 picoseconds.
+		Weight::from_parts(4_580_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -116,24 +116,24 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_692_000 picoseconds.
-		Weight::from_parts(2_909_000, 0)
+		// Minimum execution time: 2_837_000 picoseconds.
+		Weight::from_parts(3_142_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn execute_dispatch_signed() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_728_000 picoseconds.
-		Weight::from_parts(1_893_000, 0)
+		// Minimum execution time: 1_902_000 picoseconds.
+		Weight::from_parts(2_064_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn execute_dispatch_unsigned() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_791_000 picoseconds.
-		Weight::from_parts(1_968_000, 0)
+		// Minimum execution time: 1_798_000 picoseconds.
+		Weight::from_parts(1_969_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
@@ -143,11 +143,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + s * (177 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 8_797_000 picoseconds.
-		Weight::from_parts(13_159_595, 0)
+		// Minimum execution time: 9_118_000 picoseconds.
+		Weight::from_parts(12_701_049, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 3_051
-			.saturating_add(Weight::from_parts(296_131, 0).saturating_mul(s.into()))
+			// Standard Error: 1_936
+			.saturating_add(Weight::from_parts(278_755, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -162,11 +162,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + s * (177 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 15_562_000 picoseconds.
-		Weight::from_parts(16_829_049, 0)
+		// Minimum execution time: 14_061_000 picoseconds.
+		Weight::from_parts(15_394_385, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 3_042
-			.saturating_add(Weight::from_parts(447_743, 0).saturating_mul(s.into()))
+			// Standard Error: 2_000
+			.saturating_add(Weight::from_parts(422_004, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -179,11 +179,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `254 + s * (185 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 11_493_000 picoseconds.
-		Weight::from_parts(17_526_041, 0)
+		// Minimum execution time: 11_605_000 picoseconds.
+		Weight::from_parts(17_353_573, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 4_961
-			.saturating_add(Weight::from_parts(363_991, 0).saturating_mul(s.into()))
+			// Standard Error: 4_377
+			.saturating_add(Weight::from_parts(329_843, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -198,11 +198,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `280 + s * (185 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 16_069_000 picoseconds.
-		Weight::from_parts(19_363_902, 0)
+		// Minimum execution time: 16_525_000 picoseconds.
+		Weight::from_parts(19_625_188, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 3_274
-			.saturating_add(Weight::from_parts(514_442, 0).saturating_mul(s.into()))
+			// Standard Error: 2_786
+			.saturating_add(Weight::from_parts(462_345, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -215,11 +215,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `117`
 		//  Estimated: `13928`
-		// Minimum execution time: 8_660_000 picoseconds.
-		Weight::from_parts(9_215_947, 0)
+		// Minimum execution time: 8_585_000 picoseconds.
+		Weight::from_parts(9_321_715, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 2_872
-			.saturating_add(Weight::from_parts(46_735, 0).saturating_mul(s.into()))
+			// Standard Error: 619
+			.saturating_add(Weight::from_parts(26_959, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -231,8 +231,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `8927`
 		//  Estimated: `13928`
-		// Minimum execution time: 22_897_000 picoseconds.
-		Weight::from_parts(23_591_000, 0)
+		// Minimum execution time: 20_927_000 picoseconds.
+		Weight::from_parts(21_777_000, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -247,8 +247,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `9605`
 		//  Estimated: `13928`
-		// Minimum execution time: 30_176_000 picoseconds.
-		Weight::from_parts(31_277_000, 0)
+		// Minimum execution time: 28_020_000 picoseconds.
+		Weight::from_parts(29_238_000, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -261,8 +261,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `8939`
 		//  Estimated: `13928`
-		// Minimum execution time: 21_404_000 picoseconds.
-		Weight::from_parts(22_550_000, 0)
+		// Minimum execution time: 20_075_000 picoseconds.
+		Weight::from_parts(21_511_000, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -277,8 +277,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `9617`
 		//  Estimated: `13928`
-		// Minimum execution time: 29_187_000 picoseconds.
-		Weight::from_parts(30_503_000, 0)
+		// Minimum execution time: 27_430_000 picoseconds.
+		Weight::from_parts(28_593_000, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/gtest/src/weights/pallet_session.rs b/runtime/gtest/src/weights/pallet_session.rs
index a72fdfa3a1f65562537cb758bcbb1aee4381855c..fe69fdcd512f9960c643124b5fca1961530a111a 100644
--- a/runtime/gtest/src/weights/pallet_session.rs
+++ b/runtime/gtest/src/weights/pallet_session.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_session`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -55,8 +55,8 @@ impl<T: frame_system::Config> pallet_session::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `810`
 		//  Estimated: `11700`
-		// Minimum execution time: 29_037_000 picoseconds.
-		Weight::from_parts(30_485_000, 0)
+		// Minimum execution time: 29_118_000 picoseconds.
+		Weight::from_parts(29_902_000, 0)
 			.saturating_add(Weight::from_parts(0, 11700))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(5))
@@ -69,8 +69,8 @@ impl<T: frame_system::Config> pallet_session::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `477`
 		//  Estimated: `3942`
-		// Minimum execution time: 17_184_000 picoseconds.
-		Weight::from_parts(18_010_000, 0)
+		// Minimum execution time: 16_644_000 picoseconds.
+		Weight::from_parts(17_318_000, 0)
 			.saturating_add(Weight::from_parts(0, 3942))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(5))
diff --git a/runtime/gtest/src/weights/pallet_smith_members.rs b/runtime/gtest/src/weights/pallet_smith_members.rs
index d9f404f12204bc79b7c04bc61b4aa6f0b7e80ea5..53b6599324445ea2072dc1bcaba8d73b8f901739 100644
--- a/runtime/gtest/src/weights/pallet_smith_members.rs
+++ b/runtime/gtest/src/weights/pallet_smith_members.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_smith_members`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -59,11 +59,11 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 	/// Proof: `SmithMembers::ExpiresOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn invite_smith() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `834`
-		//  Estimated: `6774`
-		// Minimum execution time: 32_989_000 picoseconds.
-		Weight::from_parts(33_693_000, 0)
-			.saturating_add(Weight::from_parts(0, 6774))
+		//  Measured:  `801`
+		//  Estimated: `6741`
+		// Minimum execution time: 34_106_000 picoseconds.
+		Weight::from_parts(35_795_000, 0)
+			.saturating_add(Weight::from_parts(0, 6741))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -73,11 +73,11 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 	/// Proof: `SmithMembers::Smiths` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn accept_invitation() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `599`
-		//  Estimated: `4064`
-		// Minimum execution time: 18_137_000 picoseconds.
-		Weight::from_parts(18_925_000, 0)
-			.saturating_add(Weight::from_parts(0, 4064))
+		//  Measured:  `566`
+		//  Estimated: `4031`
+		// Minimum execution time: 18_751_000 picoseconds.
+		Weight::from_parts(19_979_000, 0)
+			.saturating_add(Weight::from_parts(0, 4031))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -91,11 +91,11 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 	/// Proof: `SmithMembers::ExpiresOn` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn certify_smith() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `644`
-		//  Estimated: `6584`
-		// Minimum execution time: 28_333_000 picoseconds.
-		Weight::from_parts(29_552_000, 0)
-			.saturating_add(Weight::from_parts(0, 6584))
+		//  Measured:  `611`
+		//  Estimated: `6551`
+		// Minimum execution time: 28_428_000 picoseconds.
+		Weight::from_parts(29_966_000, 0)
+			.saturating_add(Weight::from_parts(0, 6551))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -119,8 +119,8 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `1204`
 		//  Estimated: `14569`
-		// Minimum execution time: 69_835_000 picoseconds.
-		Weight::from_parts(72_527_000, 0)
+		// Minimum execution time: 71_994_000 picoseconds.
+		Weight::from_parts(75_523_000, 0)
 			.saturating_add(Weight::from_parts(0, 14569))
 			.saturating_add(T::DbWeight::get().reads(11))
 			.saturating_add(T::DbWeight::get().writes(15))
@@ -131,8 +131,8 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `253`
 		//  Estimated: `3718`
-		// Minimum execution time: 4_036_000 picoseconds.
-		Weight::from_parts(4_297_000, 0)
+		// Minimum execution time: 4_215_000 picoseconds.
+		Weight::from_parts(4_487_000, 0)
 			.saturating_add(Weight::from_parts(0, 3718))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
diff --git a/runtime/gtest/src/weights/pallet_sudo.rs b/runtime/gtest/src/weights/pallet_sudo.rs
index 091a4492dfeb819ec8d883e823cc9ec65ba6abd1..812048e82112fbffb1b32f7c92c6d6664ea0c235 100644
--- a/runtime/gtest/src/weights/pallet_sudo.rs
+++ b/runtime/gtest/src/weights/pallet_sudo.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_sudo`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 8_726_000 picoseconds.
-		Weight::from_parts(9_221_000, 0)
+		// Minimum execution time: 8_684_000 picoseconds.
+		Weight::from_parts(9_361_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -65,8 +65,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 9_469_000 picoseconds.
-		Weight::from_parts(9_748_000, 0)
+		// Minimum execution time: 9_133_000 picoseconds.
+		Weight::from_parts(9_729_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -76,8 +76,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 9_524_000 picoseconds.
-		Weight::from_parts(9_868_000, 0)
+		// Minimum execution time: 9_144_000 picoseconds.
+		Weight::from_parts(9_815_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -87,8 +87,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 8_336_000 picoseconds.
-		Weight::from_parts(8_814_000, 0)
+		// Minimum execution time: 8_227_000 picoseconds.
+		Weight::from_parts(8_809_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/gtest/src/weights/pallet_timestamp.rs b/runtime/gtest/src/weights/pallet_timestamp.rs
index eee39fb0cfcf654987e1b7046812128066f78138..7b233d2281e2cfc6ac22582cbe04178f6f26307f 100644
--- a/runtime/gtest/src/weights/pallet_timestamp.rs
+++ b/runtime/gtest/src/weights/pallet_timestamp.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_timestamp`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -57,8 +57,8 @@ impl<T: frame_system::Config> pallet_timestamp::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `268`
 		//  Estimated: `1493`
-		// Minimum execution time: 12_196_000 picoseconds.
-		Weight::from_parts(12_802_000, 0)
+		// Minimum execution time: 11_746_000 picoseconds.
+		Weight::from_parts(12_396_000, 0)
 			.saturating_add(Weight::from_parts(0, 1493))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -67,8 +67,8 @@ impl<T: frame_system::Config> pallet_timestamp::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `57`
 		//  Estimated: `0`
-		// Minimum execution time: 3_655_000 picoseconds.
-		Weight::from_parts(3_893_000, 0)
+		// Minimum execution time: 3_514_000 picoseconds.
+		Weight::from_parts(3_884_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/runtime/gtest/src/weights/pallet_treasury.rs b/runtime/gtest/src/weights/pallet_treasury.rs
index ef635227ba7dc060107967dd751b31f526c78702..1c1778f1269381bd7f3c383dcd639991a8c9bf20 100644
--- a/runtime/gtest/src/weights/pallet_treasury.rs
+++ b/runtime/gtest/src/weights/pallet_treasury.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_treasury`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -61,8 +61,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6`
 		//  Estimated: `1887`
-		// Minimum execution time: 3_457_000 picoseconds.
-		Weight::from_parts(3_756_000, 0)
+		// Minimum execution time: 3_319_000 picoseconds.
+		Weight::from_parts(3_658_000, 0)
 			.saturating_add(Weight::from_parts(0, 1887))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -77,11 +77,11 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `82 + p * (1 ±0)`
 		//  Estimated: `3558`
-		// Minimum execution time: 16_086_000 picoseconds.
-		Weight::from_parts(17_734_437, 0)
+		// Minimum execution time: 14_943_000 picoseconds.
+		Weight::from_parts(16_363_156, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
-			// Standard Error: 1_002
-			.saturating_add(Weight::from_parts(20_080, 0).saturating_mul(p.into()))
+			// Standard Error: 753
+			.saturating_add(Weight::from_parts(36_684, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -99,8 +99,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6`
 		//  Estimated: `3526`
-		// Minimum execution time: 4_707_000 picoseconds.
-		Weight::from_parts(5_449_000, 0)
+		// Minimum execution time: 4_739_000 picoseconds.
+		Weight::from_parts(4_875_000, 0)
 			.saturating_add(Weight::from_parts(0, 3526))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -110,8 +110,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6`
 		//  Estimated: `3526`
-		// Minimum execution time: 4_567_000 picoseconds.
-		Weight::from_parts(4_834_000, 0)
+		// Minimum execution time: 4_652_000 picoseconds.
+		Weight::from_parts(4_922_000, 0)
 			.saturating_add(Weight::from_parts(0, 3526))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -121,8 +121,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6`
 		//  Estimated: `3526`
-		// Minimum execution time: 3_928_000 picoseconds.
-		Weight::from_parts(4_244_000, 0)
+		// Minimum execution time: 4_033_000 picoseconds.
+		Weight::from_parts(4_300_000, 0)
 			.saturating_add(Weight::from_parts(0, 3526))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
diff --git a/runtime/gtest/src/weights/pallet_universal_dividend.rs b/runtime/gtest/src/weights/pallet_universal_dividend.rs
index 0ec9d472efdae7c1c6a8f246e7140f1e5703bbfc..39afd99bb1a217c6ed97cf328b45eb0075ef29ef 100644
--- a/runtime/gtest/src/weights/pallet_universal_dividend.rs
+++ b/runtime/gtest/src/weights/pallet_universal_dividend.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_universal_dividend`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -60,13 +60,13 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 	/// The range of component `i` is `[1, 160]`.
 	fn claim_uds(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `709`
-		//  Estimated: `4174`
-		// Minimum execution time: 36_468_000 picoseconds.
-		Weight::from_parts(38_417_396, 0)
-			.saturating_add(Weight::from_parts(0, 4174))
-			// Standard Error: 426
-			.saturating_add(Weight::from_parts(296, 0).saturating_mul(i.into()))
+		//  Measured:  `676`
+		//  Estimated: `4141`
+		// Minimum execution time: 36_013_000 picoseconds.
+		Weight::from_parts(37_871_239, 0)
+			.saturating_add(Weight::from_parts(0, 4141))
+			// Standard Error: 689
+			.saturating_add(Weight::from_parts(4_030, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -78,8 +78,8 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `156`
 		//  Estimated: `6126`
-		// Minimum execution time: 55_112_000 picoseconds.
-		Weight::from_parts(56_941_000, 0)
+		// Minimum execution time: 54_690_000 picoseconds.
+		Weight::from_parts(56_140_000, 0)
 			.saturating_add(Weight::from_parts(0, 6126))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -92,8 +92,8 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `93`
 		//  Estimated: `3558`
-		// Minimum execution time: 35_056_000 picoseconds.
-		Weight::from_parts(35_708_000, 0)
+		// Minimum execution time: 34_614_000 picoseconds.
+		Weight::from_parts(35_538_000, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -109,8 +109,8 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `181`
 		//  Estimated: `3558`
-		// Minimum execution time: 20_041_000 picoseconds.
-		Weight::from_parts(21_282_567, 0)
+		// Minimum execution time: 19_823_000 picoseconds.
+		Weight::from_parts(21_133_050, 0)
 			.saturating_add(Weight::from_parts(0, 3558))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/gtest/src/weights/pallet_upgrade_origin.rs b/runtime/gtest/src/weights/pallet_upgrade_origin.rs
index 4ddc86d362f4513bcbbb60938759b969d3d2896b..1487c1f904229bc72f3ae3768d9907835e79ccea 100644
--- a/runtime/gtest/src/weights/pallet_upgrade_origin.rs
+++ b/runtime/gtest/src/weights/pallet_upgrade_origin.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_upgrade_origin`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -51,8 +51,8 @@ impl<T: frame_system::Config> pallet_upgrade_origin::WeightInfo for WeightInfo<T
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_600_000 picoseconds.
-		Weight::from_parts(5_916_000, 0)
+		// Minimum execution time: 5_587_000 picoseconds.
+		Weight::from_parts(6_058_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/runtime/gtest/src/weights/pallet_utility.rs b/runtime/gtest/src/weights/pallet_utility.rs
index e11fbe310c19773f26f7f0efa8df2dba6a805a43..b12f4dcdf510f837408c53d0b64327f9ffdd122d 100644
--- a/runtime/gtest/src/weights/pallet_utility.rs
+++ b/runtime/gtest/src/weights/pallet_utility.rs
@@ -17,16 +17,16 @@
 //! Autogenerated weights for `pallet_utility`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
-//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024
+//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024
 
 // Executed Command:
 // target/release/duniter
 // benchmark
 // pallet
-// --chain=dev
+// --genesis-builder=spec-genesis
 // --steps=50
 // --repeat=20
 // --pallet=*
@@ -52,18 +52,18 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_340_000 picoseconds.
-		Weight::from_parts(10_881_678, 0)
+		// Minimum execution time: 4_430_000 picoseconds.
+		Weight::from_parts(6_831_888, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 3_495
-			.saturating_add(Weight::from_parts(2_130_340, 0).saturating_mul(c.into()))
+			// Standard Error: 726
+			.saturating_add(Weight::from_parts(2_094_088, 0).saturating_mul(c.into()))
 	}
 	fn as_derivative() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_514_000 picoseconds.
-		Weight::from_parts(3_752_000, 0)
+		// Minimum execution time: 3_664_000 picoseconds.
+		Weight::from_parts(3_785_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `c` is `[0, 1000]`.
@@ -71,18 +71,18 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_271_000 picoseconds.
-		Weight::from_parts(4_474_000, 0)
+		// Minimum execution time: 4_457_000 picoseconds.
+		Weight::from_parts(7_200_042, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 5_044
-			.saturating_add(Weight::from_parts(2_366_208, 0).saturating_mul(c.into()))
+			// Standard Error: 791
+			.saturating_add(Weight::from_parts(2_245_624, 0).saturating_mul(c.into()))
 	}
 	fn dispatch_as() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_168_000 picoseconds.
-		Weight::from_parts(6_294_000, 0)
+		// Minimum execution time: 5_798_000 picoseconds.
+		Weight::from_parts(6_062_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `c` is `[0, 1000]`.
@@ -90,10 +90,10 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_775_000 picoseconds.
-		Weight::from_parts(2_181_970, 0)
+		// Minimum execution time: 4_414_000 picoseconds.
+		Weight::from_parts(8_408_649, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 3_201
-			.saturating_add(Weight::from_parts(2_208_771, 0).saturating_mul(c.into()))
+			// Standard Error: 1_242
+			.saturating_add(Weight::from_parts(2_092_666, 0).saturating_mul(c.into()))
 	}
 }
diff --git a/runtime/gtest/src/weights/paritydb_weights.rs b/runtime/gtest/src/weights/paritydb_weights.rs
index 768ed41d4d8288f37e50bc4f10a5c82f404e171b..f7e7a1bbce4b382aabbb31db680f3f06a6bb4e9f 100644
--- a/runtime/gtest/src/weights/paritydb_weights.rs
+++ b/runtime/gtest/src/weights/paritydb_weights.rs
@@ -1,6 +1,6 @@
 
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
-//! DATE: 2024-09-28 (Y/M/D)
+//! DATE: 2024-11-14 (Y/M/D)
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //!
 //! DATABASE: `ParityDb`, RUNTIME: `ĞTest Local Testnet`
@@ -34,31 +34,31 @@ pub mod constants {
 			/// Calculated by multiplying the *Average* of all values with `2.0` and adding `0`.
 			///
 			/// Stats nanoseconds:
-			///   Min, Max: 789, 1_126_624
-			///   Average:  8_769
-			///   Median:   1_445
-			///   Std-Dev:  89219.22
+			///   Min, Max: 790, 807_925
+			///   Average:  6_727
+			///   Median:   1_441
+			///   Std-Dev:  63946.66
 			///
 			/// Percentiles nanoseconds:
-			///   99th: 11_009
-			///   95th: 2_958
-			///   75th: 1_818
-			read: 17_538 * constants::WEIGHT_REF_TIME_PER_NANOS,
+			///   99th: 8_511
+			///   95th: 2_555
+			///   75th: 1_923
+			read: 13_454 * constants::WEIGHT_REF_TIME_PER_NANOS,
 
 			/// Time to write one storage item.
 			/// Calculated by multiplying the *Average* of all values with `2.0` and adding `0`.
 			///
 			/// Stats nanoseconds:
-			///   Min, Max: 4_023, 6_748_346
-			///   Average:  52_716
-			///   Median:   10_128
-			///   Std-Dev:  534378.34
+			///   Min, Max: 3_773, 6_377_215
+			///   Average:  50_553
+			///   Median:   10_589
+			///   Std-Dev:  504932.37
 			///
 			/// Percentiles nanoseconds:
-			///   99th: 23_199
-			///   95th: 14_827
-			///   75th: 12_323
-			write: 105_432 * constants::WEIGHT_REF_TIME_PER_NANOS,
+			///   99th: 18_609
+			///   95th: 15_443
+			///   75th: 12_619
+			write: 101_106 * constants::WEIGHT_REF_TIME_PER_NANOS,
 		};
 	}
 
diff --git a/xtask/src/gen_doc.rs b/xtask/src/gen_doc.rs
index 9e4adf51bf7166cdfa8081a4f68281edc2002479..91798167d7e54bad9fc8ff6c87548075977f063b 100644
--- a/xtask/src/gen_doc.rs
+++ b/xtask/src/gen_doc.rs
@@ -313,6 +313,7 @@ pub(super) fn gen_doc() -> Result<()> {
     Command::new("cargo")
         .args([
             "doc",
+            "--package=duniter",
             "--package=pallet-*",
             "--package=*-runtime",
             "--package=*distance*",