diff --git a/Cargo.lock b/Cargo.lock
index 7eefce4fecc10dcca45cf0d6e120298ef6628ff5..3cf5426e3c8751e913be36be24df155fcbe934a8 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -273,6 +273,7 @@ dependencies = [
  "constant_time_eq",
  "crypto-mac",
  "digest 0.9.0",
+ "rayon",
 ]
 
 [[package]]
@@ -687,9 +688,9 @@ checksum = "4bb454f0228b18c7f4c3b0ebbee346ed9c52e7443b0999cd543ff3571205701d"
 
 [[package]]
 name = "dubp"
-version = "0.53.1"
+version = "0.54.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5cee825e59cde21a3622de781d15f74cbea92f01eb1554a8c73818eb61a5998"
+checksum = "c5dca084e135ee5ea38d64e5e665cac6fc23570a66ed22ce5021b5d14c4f9443"
 dependencies = [
  "dubp-block",
  "dubp-common",
@@ -701,9 +702,9 @@ dependencies = [
 
 [[package]]
 name = "dubp-block"
-version = "0.53.1"
+version = "0.54.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4b26027dafcf4631bd7d7a2b1b25e54453c475a613b5ef7db4356f51f71c0eb"
+checksum = "5fa8e2b1d9728832dd4696f9eff1348085d162d5f98fe025e9c9a2caeffd9c89"
 dependencies = [
  "dubp-documents",
  "dubp-documents-parser",
@@ -716,9 +717,9 @@ dependencies = [
 
 [[package]]
 name = "dubp-common"
-version = "0.53.1"
+version = "0.54.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dc000f2a3366c1bd985015f95adb3520e8e0b007ca5f77882eea1ea119d84f4"
+checksum = "49a12c0842c7c4e61e75755476b782d09e282275cab187376b3cc0da405b6afb"
 dependencies = [
  "dup-crypto",
  "serde",
@@ -729,9 +730,9 @@ dependencies = [
 
 [[package]]
 name = "dubp-documents"
-version = "0.53.1"
+version = "0.54.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e96808a8ced0617ba93ed6fee00d88902f33e2f61a36ec9a841e8972ef5cd3a"
+checksum = "450f2b268c979264ef098f00532faf0015d281d9c8ebabf227f57ecc35d0076c"
 dependencies = [
  "beef",
  "dubp-wallet",
@@ -743,9 +744,9 @@ dependencies = [
 
 [[package]]
 name = "dubp-documents-parser"
-version = "0.53.1"
+version = "0.54.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9c60f5c2804a9906777f96a62514c1f9f58abaab4c57f01db4fa7c45624e6fb"
+checksum = "067bba5a1e34566871128b7157642a643264e4aeaba1db5034634ef6461f797b"
 dependencies = [
  "dubp-documents",
  "json-pest-parser",
@@ -757,9 +758,9 @@ dependencies = [
 
 [[package]]
 name = "dubp-wallet"
-version = "0.53.1"
+version = "0.54.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f277bed6bc228981f76f207f4112051656302b5c50c0a858ab138ae2215d49fe"
+checksum = "7552a1c1cca8498dc9266fdb6b10ee98ef841e363a1e3c0cd319ead3fa2aeef4"
 dependencies = [
  "byteorder",
  "dubp-common",
@@ -769,10 +770,22 @@ dependencies = [
  "zerocopy",
 ]
 
+[[package]]
+name = "dubp-wot"
+version = "0.11.0"
+source = "git+https://git.duniter.org/nodes/rust/duniter-core#ce0cb755acd91c2e91fe6fc89ea57ae7d7e3eaef"
+dependencies = [
+ "log",
+ "once_cell",
+ "parking_lot",
+ "rayon",
+ "serde",
+]
+
 [[package]]
 name = "duniter-bc-reader"
 version = "0.1.0"
-source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8"
+source = "git+https://git.duniter.org/nodes/rust/duniter-core#ce0cb755acd91c2e91fe6fc89ea57ae7d7e3eaef"
 dependencies = [
  "anyhow",
  "dubp",
@@ -818,7 +831,7 @@ dependencies = [
 [[package]]
 name = "duniter-conf"
 version = "0.1.0"
-source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8"
+source = "git+https://git.duniter.org/nodes/rust/duniter-core#ce0cb755acd91c2e91fe6fc89ea57ae7d7e3eaef"
 dependencies = [
  "anyhow",
  "dubp",
@@ -832,8 +845,9 @@ dependencies = [
 [[package]]
 name = "duniter-core"
 version = "1.8.1"
-source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8"
+source = "git+https://git.duniter.org/nodes/rust/duniter-core#ce0cb755acd91c2e91fe6fc89ea57ae7d7e3eaef"
 dependencies = [
+ "dubp-wot",
  "duniter-bc-reader",
  "duniter-conf",
  "duniter-dbs",
@@ -845,7 +859,7 @@ dependencies = [
 [[package]]
 name = "duniter-dbs"
 version = "0.1.0"
-source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8"
+source = "git+https://git.duniter.org/nodes/rust/duniter-core#ce0cb755acd91c2e91fe6fc89ea57ae7d7e3eaef"
 dependencies = [
  "arrayvec 0.7.0",
  "bincode",
@@ -868,7 +882,7 @@ dependencies = [
 [[package]]
 name = "duniter-dbs-write-ops"
 version = "0.1.0"
-source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8"
+source = "git+https://git.duniter.org/nodes/rust/duniter-core#ce0cb755acd91c2e91fe6fc89ea57ae7d7e3eaef"
 dependencies = [
  "chrono",
  "dubp",
@@ -883,7 +897,7 @@ dependencies = [
 [[package]]
 name = "duniter-global"
 version = "1.8.1"
-source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8"
+source = "git+https://git.duniter.org/nodes/rust/duniter-core#ce0cb755acd91c2e91fe6fc89ea57ae7d7e3eaef"
 dependencies = [
  "async-rwlock",
  "dubp",
@@ -1018,7 +1032,7 @@ dependencies = [
 [[package]]
 name = "duniter-mempools"
 version = "0.1.0"
-source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8"
+source = "git+https://git.duniter.org/nodes/rust/duniter-core#ce0cb755acd91c2e91fe6fc89ea57ae7d7e3eaef"
 dependencies = [
  "dubp",
  "duniter-bc-reader",
@@ -1031,7 +1045,7 @@ dependencies = [
 [[package]]
 name = "duniter-module"
 version = "0.1.0"
-source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8"
+source = "git+https://git.duniter.org/nodes/rust/duniter-core#ce0cb755acd91c2e91fe6fc89ea57ae7d7e3eaef"
 dependencies = [
  "anyhow",
  "async-mutex",
@@ -1050,9 +1064,9 @@ dependencies = [
 
 [[package]]
 name = "dup-crypto"
-version = "0.53.1"
+version = "0.54.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c530e25cc0a03ae36229401ca322002931b55fc180e6001bdab20a9087f297c"
+checksum = "be4b9746489f2564086fffce1cc67de3b867a098eaf4dbcce15dc85f85542c9c"
 dependencies = [
  "arrayvec 0.5.2",
  "base64",
@@ -1602,7 +1616,7 @@ dependencies = [
 [[package]]
 name = "kv_typed"
 version = "0.1.0"
-source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8"
+source = "git+https://git.duniter.org/nodes/rust/duniter-core#ce0cb755acd91c2e91fe6fc89ea57ae7d7e3eaef"
 dependencies = [
  "byteorder",
  "cfg-if 0.1.10",
diff --git a/Cargo.toml b/Cargo.toml
index 198045f04cc4d79af55c4328b70514c9998d4c78..333a51cdb0e7c8d618f4f13e7f896a8341d908ad 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,7 +13,7 @@ async-graphql = { version = "2.8", features = ["log"] }
 async-mutex = "1.4.0"
 async-trait = "0.1.41"
 bytes = "1.0"
-dubp = { version = "0.53.1", features = ["duniter"] }
+dubp = { version = "0.54.1", features = ["duniter"] }
 duniter-bca = { path = "./bca" }
 duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
 duniter-gva-conf = { path = "./conf" }
diff --git a/bca/Cargo.toml b/bca/Cargo.toml
index de60e8a7e0e4b7bb8d88f528177cc77a54f1201d..0d98bfad36df17f3952a3ec30307387c13ab37c8 100644
--- a/bca/Cargo.toml
+++ b/bca/Cargo.toml
@@ -11,7 +11,7 @@ arrayvec = { version = "0.7", features = ["serde"] }
 async-bincode = "0.6.1"
 async_io_stream = { version = "0.3.1", features = [ "tokio_io"] }
 bincode = "1.3"
-dubp = { version = "0.53.1", features = ["duniter"] }
+dubp = { version = "0.54.1", features = ["duniter"] }
 duniter-bca-types = { path = "types", features = ["duniter"] }
 duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
 duniter-gva-db = { path = "../db" }
diff --git a/bca/types/Cargo.toml b/bca/types/Cargo.toml
index 38ba5072725fde1a93f85dc8a40ad5c1d79d4365..a15139866e71f974137977ec29a44ac84a2d4684 100644
--- a/bca/types/Cargo.toml
+++ b/bca/types/Cargo.toml
@@ -8,7 +8,7 @@ edition = "2018"
 [dependencies]
 arrayvec = { version = "0.7", features = ["serde"] }
 bincode = "1.3"
-dubp = { version = "0.53.1" }
+dubp = { version = "0.54.1" }
 serde = { version = "1.0.105", features = ["derive"] }
 smallvec = { version = "1.4.0", features = ["serde"] }
 thiserror = "1.0.20"
diff --git a/db/Cargo.toml b/db/Cargo.toml
index 04ceb645c222354339e01a60ed34b553790d4b96..24e4e92373553a30744727f5722c8fb880735d83 100644
--- a/db/Cargo.toml
+++ b/db/Cargo.toml
@@ -14,7 +14,7 @@ path = "src/lib.rs"
 bincode = "1.3"
 chrono = { version = "0.4.15", optional = true }
 duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
-dubp = { version = "0.53.1", features = ["duniter"] }
+dubp = { version = "0.54.1", features = ["duniter"] }
 parking_lot = "0.11.0"
 paste = "1.0.2"
 serde = { version = "1.0.105", features = ["derive"] }
diff --git a/dbs-reader/Cargo.toml b/dbs-reader/Cargo.toml
index 1fe254e6a4f83a4ef0adccde8b6c3cbb88fed591..21332a65014b4ff3be12847303ba3b6fab58980d 100644
--- a/dbs-reader/Cargo.toml
+++ b/dbs-reader/Cargo.toml
@@ -20,7 +20,7 @@ arrayvec = { version = "0.7", features = ["serde"] }
 duniter-bca-types = { path = "../bca/types" }
 duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
 duniter-gva-db = { path = "../db" }
-dubp = { version = "0.53.1", features = ["duniter"] }
+dubp = { version = "0.54.1", features = ["duniter"] }
 mockall = { version = "0.9.1", optional = true }
 resiter = "0.4.0"
 
diff --git a/gql/Cargo.toml b/gql/Cargo.toml
index 1fab7cc7c4f9a4674fe432d2034d0d725c2d74ca..68a1401c5b931714bbdb38956a2ce42bac566a2f 100644
--- a/gql/Cargo.toml
+++ b/gql/Cargo.toml
@@ -10,7 +10,7 @@ anyhow = "1.0.33"
 arrayvec = { version = "0.7", features = ["serde"] }
 async-graphql = { version = "2.8", features = ["log"] }
 async-trait = "0.1.41"
-dubp = { version = "0.53.1", features = ["duniter"] }
+dubp = { version = "0.54.1", features = ["duniter"] }
 duniter-bca-types = { path = "../bca/types" }
 duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
 duniter-gva-db = { path = "../db" }
diff --git a/indexer/Cargo.toml b/indexer/Cargo.toml
index 86391302365848aa11d216abd2305f6e0f2711f0..25d49999a90ad330c341f8d7e30989e58a53f2ef 100644
--- a/indexer/Cargo.toml
+++ b/indexer/Cargo.toml
@@ -16,7 +16,7 @@ anyhow = "1.0.34"
 bincode = "1.3"
 duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
 duniter-gva-db = { path = "../db" }
-dubp = { version = "0.53.1", features = ["duniter"] }
+dubp = { version = "0.54.1", features = ["duniter"] }
 lz4_flex = { version = "0.7", default-features = false }
 once_cell = "1.5.2"
 resiter = "0.4.0"
diff --git a/indexer/src/lib.rs b/indexer/src/lib.rs
index c67cfa4670a1f34635bfe537522799ae490fe139..07f8ca9bc34b7f08410e14c2230e2779149a6052 100644
--- a/indexer/src/lib.rs
+++ b/indexer/src/lib.rs
@@ -28,13 +28,14 @@ mod tx;
 mod utxos;
 
 use bincode::Options as _;
-use dubp::block::prelude::*;
-use dubp::common::crypto::hashs::Hash;
-use dubp::common::prelude::*;
-use dubp::documents::{
-    prelude::*, transaction::TransactionDocumentTrait, transaction::TransactionDocumentV10,
+use dubp::{
+    block::prelude::*,
+    common::{crypto::hashs::Hash, currency_params::CurrencyParameters, prelude::*},
+    documents::{
+        prelude::*, transaction::TransactionDocumentTrait, transaction::TransactionDocumentV10,
+    },
+    wallet::prelude::*,
 };
-use dubp::wallet::prelude::*;
 use duniter_core::dbs::{
     bincode_db, kv_typed::prelude::*, prelude::*, FileBackend, HashKeyV2, PubKeyKeyV2,
     SourceAmountValV2, WalletConditionsV2,
@@ -71,7 +72,11 @@ pub struct UtxoV10<'s> {
     pub written_block: BlockNumber,
 }
 
-pub fn apply_block<B: Backend>(block: &DubpBlockV10, gva_db: &GvaV1Db<B>) -> KvResult<()> {
+pub fn apply_block<B: Backend>(
+    block: &DubpBlockV10,
+    _currency_params: CurrencyParameters,
+    gva_db: &GvaV1Db<B>,
+) -> KvResult<()> {
     let blockstamp = Blockstamp {
         number: block.number(),
         hash: block.hash(),
@@ -103,7 +108,11 @@ pub fn apply_block<B: Backend>(block: &DubpBlockV10, gva_db: &GvaV1Db<B>) -> KvR
     Ok(())
 }
 
-pub fn revert_block<B: Backend>(block: &DubpBlockV10, gva_db: &GvaV1Db<B>) -> KvResult<()> {
+pub fn revert_block<B: Backend>(
+    block: &DubpBlockV10,
+    _currency_params: CurrencyParameters,
+    gva_db: &GvaV1Db<B>,
+) -> KvResult<()> {
     gva_db.write(|mut db| {
         blocks_chunks::revert_block_blocks_chunk::<B>(block, &mut db)?;
         db.blocks_by_common_time.remove(U64BE(block.common_time()));
@@ -269,8 +278,9 @@ mod tests {
             hash: Some("0000000000000000000000000000000000000000000000000000000000000000".to_owned()),
             ..Default::default()
         })?;
+        let currency_params = CurrencyParameters::default();
 
-        apply_block(&b0, &gva_db)?;
+        apply_block(&b0, currency_params, &gva_db)?;
 
         assert_eq!(gva_db.blocks_by_common_time().count()?, 1);
         assert_eq!(gva_db.blocks_by_common_time().get(&U64BE(5_243))?, Some(0));
@@ -308,7 +318,7 @@ mod tests {
             ..Default::default()
         })?;
 
-        apply_block(&b1, &gva_db)?;
+        apply_block(&b1, currency_params, &gva_db)?;
 
         assert_eq!(gva_db.blocks_by_common_time().count()?, 2);
         assert_eq!(gva_db.blocks_by_common_time().get(&U64BE(5_245))?, Some(1));
@@ -372,7 +382,7 @@ mod tests {
             ..Default::default()
         })?;
 
-        apply_block(&b2, &gva_db)?;
+        apply_block(&b2, currency_params, &gva_db)?;
 
         assert_eq!(gva_db.blocks_by_common_time().count()?, 3);
         assert_eq!(gva_db.blocks_by_common_time().get(&U64BE(5_247))?, Some(2));
@@ -439,8 +449,9 @@ mod tests {
             hash: Some("0000000000000000000000000000000000000000000000000000000000000000".to_owned()),
             ..Default::default()
         })?;
+        let currency_params = CurrencyParameters::default();
 
-        apply_block(&b0, &gva_db)?;
+        apply_block(&b0, currency_params, &gva_db)?;
 
         let b1 = DubpBlockV10::from_string_object(&DubpBlockV10Stringified {
             number: 1,
@@ -467,7 +478,7 @@ mod tests {
             ..Default::default()
         })?;
 
-        apply_block(&b1, &gva_db)?;
+        apply_block(&b1, currency_params, &gva_db)?;
 
         let b2 = DubpBlockV10::from_string_object(&DubpBlockV10Stringified {
             number: 2,
@@ -493,7 +504,7 @@ mod tests {
             ..Default::default()
         })?;
 
-        apply_block(&b2, &gva_db)?;
+        apply_block(&b2, currency_params, &gva_db)?;
 
         let b3 = DubpBlockV10::from_string_object(&DubpBlockV10Stringified {
             number: 3,
@@ -519,9 +530,9 @@ mod tests {
             ..Default::default()
         })?;
 
-        apply_block(&b3, &gva_db)?;
+        apply_block(&b3, currency_params, &gva_db)?;
 
-        revert_block(&b3, &gva_db)?;
+        revert_block(&b3, currency_params, &gva_db)?;
 
         assert_eq!(gva_db.blockchain_time().count()?, 3);
         assert_eq!(gva_db.blockchain_time().get(&U32BE(2))?, Some(5_247));
@@ -551,7 +562,7 @@ mod tests {
             ]
         );
 
-        revert_block(&b2, &gva_db)?;
+        revert_block(&b2, currency_params, &gva_db)?;
 
         assert_eq!(gva_db.blockchain_time().count()?, 2);
         assert_eq!(gva_db.blockchain_time().get(&U32BE(1))?, Some(5_245));
@@ -581,7 +592,7 @@ mod tests {
             ]
         );
 
-        revert_block(&b1, &gva_db)?;
+        revert_block(&b1, currency_params, &gva_db)?;
 
         assert_eq!(gva_db.blockchain_time().count()?, 1);
         assert_eq!(gva_db.blockchain_time().get(&U32BE(0))?, Some(5_243));
diff --git a/src/lib.rs b/src/lib.rs
index 90b51099709e8d4d8e7702fb6eb567a71e83eefc..c15d587399cd1f2197183939b5bd31e01366b425 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -26,7 +26,7 @@ mod anti_spam;
 mod warp_;
 
 use async_graphql::http::GraphQLPlaygroundConfig;
-use dubp::common::prelude::*;
+use dubp::common::{currency_params::CurrencyParameters, prelude::*};
 use dubp::documents::transaction::TransactionDocumentV10;
 use dubp::{block::DubpBlockV10, crypto::hashs::Hash};
 use dubp::{
@@ -73,18 +73,20 @@ impl duniter_core::module::DuniterModule for GvaModule {
     fn apply_block(
         block: &DubpBlockV10,
         _conf: &duniter_core::conf::DuniterCoreConf,
+        currency_params: CurrencyParameters,
         profile_path_opt: Option<&Path>,
     ) -> KvResult<()> {
         let gva_db = get_gva_db_rw(profile_path_opt);
-        duniter_gva_indexer::apply_block(&block, gva_db)
+        duniter_gva_indexer::apply_block(&block, currency_params, gva_db)
     }
     fn revert_block(
         block: &DubpBlockV10,
         _conf: &duniter_core::conf::DuniterCoreConf,
+        currency_params: CurrencyParameters,
         profile_path_opt: Option<&Path>,
     ) -> KvResult<()> {
         let gva_db = get_gva_db_rw(profile_path_opt);
-        duniter_gva_indexer::revert_block(&block, gva_db)
+        duniter_gva_indexer::revert_block(&block, currency_params, gva_db)
     }
     async fn init(
         conf: Self::Conf,