diff --git a/Cargo.lock b/Cargo.lock
index 20d3ef475afe37eca90423e30a5c20b2bfc575a2..2f81f68d9d4c9e8627c409803494a47c1e4f7fb9 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -365,9 +365,9 @@ checksum = "6736e2428df2ca2848d846c43e88745121a6654696e349ce0054a420815a7409"
 
 [[package]]
 name = "bincode"
-version = "1.3.1"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d"
+checksum = "d175dfa69e619905c4c3cdb7c3c203fa3bdd5d51184e3afdb2742c0280493772"
 dependencies = [
  "byteorder",
  "serde",
@@ -519,9 +519,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
 
 [[package]]
 name = "byteorder"
-version = "1.4.2"
+version = "1.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
 
 [[package]]
 name = "bytes"
@@ -821,6 +821,12 @@ dependencies = [
  "subtle",
 ]
 
+[[package]]
+name = "cryptoxide"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46212f5d1792f89c3e866fb10636139464060110c568edd7f73ab5e9f736c26d"
+
 [[package]]
 name = "cslice"
 version = "0.2.0"
@@ -974,9 +980,9 @@ checksum = "4bb454f0228b18c7f4c3b0ebbee346ed9c52e7443b0999cd543ff3571205701d"
 
 [[package]]
 name = "dubp"
-version = "0.47.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4546872a56a90e7c3cbfc8dbe3d7c032d83b1d8f808139baf5270db0efd3ed0e"
+checksum = "e3e3fe6a250aaa17de9d86c77028ae2b22f4f7d3b9716659d89d82fb72b2db68"
 dependencies = [
  "dubp-block",
  "dubp-common",
@@ -988,9 +994,9 @@ dependencies = [
 
 [[package]]
 name = "dubp-block"
-version = "0.47.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80f8effaacc1836b11545f239bd03d98de738671434fddf268f1b42a88bd5bdb"
+checksum = "1157cd956b2f7734067e12fe6df23f8710e4543fa29c5e95162964862cc063ba"
 dependencies = [
  "dubp-documents",
  "dubp-documents-parser",
@@ -1003,9 +1009,9 @@ dependencies = [
 
 [[package]]
 name = "dubp-common"
-version = "0.47.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6129b6390317f4d82e04c7154e4d33566d30369871d867ad7fd1f10136ac601"
+checksum = "c83386c1914b8f3d4a1fb2895b6e31899019b05de3fb6c7ec45d0f13238e6c64"
 dependencies = [
  "dup-crypto",
  "serde",
@@ -1016,9 +1022,9 @@ dependencies = [
 
 [[package]]
 name = "dubp-documents"
-version = "0.47.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ab8de546678145b64b521094f5f4901d93d9270ff8d68ecd71db5f68ccbe9ee"
+checksum = "eeabf1395e31c3e2a1dfabc1f97a933c361312e65f65ca843092b94a32e4ce19"
 dependencies = [
  "beef",
  "dubp-wallet",
@@ -1030,9 +1036,9 @@ dependencies = [
 
 [[package]]
 name = "dubp-documents-parser"
-version = "0.47.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bdc20246a391211616d949cfd2219e74eab95effe2cf9c90a3d0f31b5269640"
+checksum = "f441e42514531d4b04001ff95e20d9b681198bc8f13872af24281c350d2e96f2"
 dependencies = [
  "dubp-documents",
  "json-pest-parser",
@@ -1044,9 +1050,9 @@ dependencies = [
 
 [[package]]
 name = "dubp-wallet"
-version = "0.47.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd0c8044481a682172e4ee7ec9f9e16bf144063b606282e5df0ecb1920b41891"
+checksum = "b89b1d3262a26156de5edcd97e20c2cd747a24ee1244e929b5ac3aada5519b94"
 dependencies = [
  "byteorder",
  "dubp-common",
@@ -1366,14 +1372,15 @@ dependencies = [
 
 [[package]]
 name = "dup-crypto"
-version = "0.47.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0ff835eaa4f2af01e612d12c2c711b75a1fa060d31ec0eae9b5df13d78a57c6"
+checksum = "093aa174cc3792e029e5deabf83986842595279840e5eab58e845efe33d75b48"
 dependencies = [
  "base64 0.13.0",
  "blake3",
  "bs58 0.4.0",
  "byteorder",
+ "cryptoxide",
  "getrandom 0.2.2",
  "ring",
  "serde",
diff --git a/neon/native/Cargo.toml b/neon/native/Cargo.toml
index 059775daaede308ac37b063ef383b1ddbc84b0d2..7b44f384072ccdc49ae711c3b74eace4cc9f7266 100644
--- a/neon/native/Cargo.toml
+++ b/neon/native/Cargo.toml
@@ -17,7 +17,7 @@ neon-build = "0.4.0"
 [dependencies]
 bincode = "1.2.1"
 bs58 = "0.3.0"
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 dubp-wot = { path = "../../rust-libs/dubp-wot" }
 duniter-server = { path = "../../rust-libs/duniter-server" }
 flate2 = "1.0.16"
diff --git a/rust-bins/duniter-dbex/Cargo.toml b/rust-bins/duniter-dbex/Cargo.toml
index cff69e8a781943da56d9bd8c06f4b7ac19b302e9..d5949eaf12178d6ff66b419cc7db47c8da8f046b 100644
--- a/rust-bins/duniter-dbex/Cargo.toml
+++ b/rust-bins/duniter-dbex/Cargo.toml
@@ -22,7 +22,7 @@ anyhow = "1.0.33"
 arrayvec = "0.5.1"
 comfy-table = "2.1.0"
 dirs = "3.0.1"
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 duniter-dbs = { path = "../../rust-libs/duniter-dbs", default-features = false, features = ["explorer", "leveldb_backend", "sled_backend"] }
 duniter-dbs-write-ops = { path = "../../rust-libs/duniter-dbs-write-ops", default-features = false, features = ["explorer", "leveldb_backend", "sled_backend"] }
 duniter-gva-db = { path = "../../rust-libs/modules/gva/db", default-features = false, features = ["explorer", "leveldb_backend"] }
diff --git a/rust-libs/duniter-bc-reader/Cargo.toml b/rust-libs/duniter-bc-reader/Cargo.toml
index d5dad45d3e08489938d34ebf2b2c0cf07b9f9c83..41e1c96a49676a853afef2bf720605cbc7a37777 100644
--- a/rust-libs/duniter-bc-reader/Cargo.toml
+++ b/rust-libs/duniter-bc-reader/Cargo.toml
@@ -14,7 +14,7 @@ path = "src/lib.rs"
 [dependencies]
 anyhow = "1.0.34"
 duniter-dbs = { path = "../duniter-dbs" }
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 resiter = "0.4.0"
 
 [dev-dependencies]
diff --git a/rust-libs/duniter-conf/Cargo.toml b/rust-libs/duniter-conf/Cargo.toml
index 29966a4f6e3733521f9d89d261455e771d504aac..4f4226fd84d1ba15ca44413cd3427cebea0eb341 100644
--- a/rust-libs/duniter-conf/Cargo.toml
+++ b/rust-libs/duniter-conf/Cargo.toml
@@ -6,5 +6,5 @@ license = "AGPL-3.0"
 edition = "2018"
 
 [dependencies]
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 serde = { version = "1.0.105", features = ["derive"] }
diff --git a/rust-libs/duniter-dbs-write-ops/Cargo.toml b/rust-libs/duniter-dbs-write-ops/Cargo.toml
index 22e9f0aa15437f8d67e4176514ee6e995c16fe1f..c032738710f40c55ad96a7d0794bbbb74eef4a9c 100644
--- a/rust-libs/duniter-dbs-write-ops/Cargo.toml
+++ b/rust-libs/duniter-dbs-write-ops/Cargo.toml
@@ -13,7 +13,7 @@ path = "src/lib.rs"
 
 [dependencies]
 chrono = "0.4.19"
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 duniter-dbs = { path = "../duniter-dbs" }
 fast-threadpool = "0.2.3"
 log = "0.4.11"
diff --git a/rust-libs/duniter-dbs/Cargo.toml b/rust-libs/duniter-dbs/Cargo.toml
index a02d9bf3ae0a6c7dceb82945c167e6d853570167..99135749d1e5e491fdf708d7f40526ecf6c3e8a0 100644
--- a/rust-libs/duniter-dbs/Cargo.toml
+++ b/rust-libs/duniter-dbs/Cargo.toml
@@ -16,7 +16,7 @@ arrayvec = "0.5.1"
 bincode = "1.2.1"
 byteorder = "1.3.4"
 chrono = { version = "0.4.15", optional = true }
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 kv_typed = { path = "../tools/kv_typed", default-features = false }
 log = "0.4.8"
 mockall = { version = "0.8.0", optional = true }
diff --git a/rust-libs/duniter-mempools/Cargo.toml b/rust-libs/duniter-mempools/Cargo.toml
index 98a4df984aa957d8df44e135e9c1be4df4528209..35a608e9eac7d27e666c7e25f2ec1327beef708f 100644
--- a/rust-libs/duniter-mempools/Cargo.toml
+++ b/rust-libs/duniter-mempools/Cargo.toml
@@ -12,7 +12,7 @@ edition = "2018"
 path = "src/lib.rs"
 
 [dependencies]
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 duniter-dbs = { path = "../duniter-dbs" }
 duniter-bc-reader = { path = "../duniter-bc-reader" }
 duniter-dbs-write-ops = { path = "../duniter-dbs-write-ops" }
diff --git a/rust-libs/duniter-module/Cargo.toml b/rust-libs/duniter-module/Cargo.toml
index eec08fc9be4d403cf8f1cf1d7270d8ef3df5fefc..de61e84bf21c639ea10c0daa837dbfd6fbc296a4 100644
--- a/rust-libs/duniter-module/Cargo.toml
+++ b/rust-libs/duniter-module/Cargo.toml
@@ -8,7 +8,7 @@ edition = "2018"
 [dependencies]
 anyhow = "1.0.34"
 async-trait = "0.1.41"
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 duniter-conf = { path = "../duniter-conf" }
 duniter-dbs = { path = "../duniter-dbs" }
 duniter-mempools = { path = "../duniter-mempools" }
diff --git a/rust-libs/duniter-server/Cargo.toml b/rust-libs/duniter-server/Cargo.toml
index b3fba8865149fbd5b06e4da3ec44c55a0be411f1..bfe4e968dc32566877467ac5f4a99a9e679f72f2 100644
--- a/rust-libs/duniter-server/Cargo.toml
+++ b/rust-libs/duniter-server/Cargo.toml
@@ -8,7 +8,7 @@ edition = "2018"
 [dependencies]
 anyhow = "1.0.34"
 cfg-if = "1.0.0"
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 duniter-conf = { path = "../duniter-conf" }
 duniter-dbs = { path = "../duniter-dbs" }
 duniter-bc-reader = { path = "../duniter-bc-reader" }
diff --git a/rust-libs/modules/gva/Cargo.toml b/rust-libs/modules/gva/Cargo.toml
index 04715fcb6181aae1dc0df1ae2330911e23740e0a..7fa91a091225af09466c3adbd8ae6971d53a8b80 100644
--- a/rust-libs/modules/gva/Cargo.toml
+++ b/rust-libs/modules/gva/Cargo.toml
@@ -11,7 +11,7 @@ arrayvec = "0.5.1"
 async-graphql = "2.2.0"
 async-mutex = "1.4.0"
 async-trait = "0.1.41"
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 duniter-conf = { path = "../../duniter-conf" }
 duniter-dbs = { path = "../../duniter-dbs" }
 duniter-gva-db = { path = "./db" }
diff --git a/rust-libs/modules/gva/db/Cargo.toml b/rust-libs/modules/gva/db/Cargo.toml
index 2044e0a12f2437bf5e02a20456cdeaa979c2a9e7..0fe201680d0ed7056f3963d57119fcf69a238448 100644
--- a/rust-libs/modules/gva/db/Cargo.toml
+++ b/rust-libs/modules/gva/db/Cargo.toml
@@ -14,7 +14,7 @@ path = "src/lib.rs"
 bincode = "1.2.1"
 chrono = { version = "0.4.15", optional = true }
 duniter-dbs = { path = "../../../duniter-dbs" }
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 kv_typed = { path = "../../../tools/kv_typed", default-features = false, features = ["sled_backend"] }
 parking_lot = "0.11.0"
 paste = "1.0.2"
diff --git a/rust-libs/modules/gva/dbs-reader/Cargo.toml b/rust-libs/modules/gva/dbs-reader/Cargo.toml
index 11061d270f4df95ce2545c75c5b7cac0507b8b4e..8207978250f229a027bb8165272cc4dd4684ffa6 100644
--- a/rust-libs/modules/gva/dbs-reader/Cargo.toml
+++ b/rust-libs/modules/gva/dbs-reader/Cargo.toml
@@ -16,7 +16,7 @@ anyhow = "1.0.34"
 arrayvec = "0.5.1"
 duniter-dbs = { path = "../../../duniter-dbs" }
 duniter-gva-db = { path = "../db" }
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 resiter = "0.4.0"
 
 [dev-dependencies]
diff --git a/rust-libs/modules/gva/gql/Cargo.toml b/rust-libs/modules/gva/gql/Cargo.toml
index 26bac1b95f646e6e38bd3d3ceb7f3cf2d76684b5..958fa6cd77ea6fc9d84c79b3b04ddd2c2bca6990 100644
--- a/rust-libs/modules/gva/gql/Cargo.toml
+++ b/rust-libs/modules/gva/gql/Cargo.toml
@@ -10,7 +10,7 @@ anyhow = "1.0.33"
 arrayvec = "0.5.1"
 async-graphql = "2.2.0"
 async-trait = "0.1.41"
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 duniter-conf = { path = "../../../duniter-conf" }
 duniter-dbs = { path = "../../../duniter-dbs" }
 duniter-bc-reader = { path = "../../../duniter-bc-reader" }
diff --git a/rust-libs/modules/gva/gql/src/queries/gen_tx.rs b/rust-libs/modules/gva/gql/src/queries/gen_tx.rs
index 4e9a6ce11a58c13cbd4a7f349d70cb38c1e91290..45947882ae77855b635b146f01a754a3aca2ab3a 100644
--- a/rust-libs/modules/gva/gql/src/queries/gen_tx.rs
+++ b/rust-libs/modules/gva/gql/src/queries/gen_tx.rs
@@ -153,14 +153,17 @@ impl GenTxsQuery {
             recipient,
             (amount, comment),
             cash_back_address.map(|pubkey_gva| pubkey_gva.0),
-        ))
+        )
+        .into_iter()
+        .map(|tx| tx.as_text().to_owned())
+        .collect())
     }
     /// Generate complex transaction document
     async fn gen_complex_tx(
         &self,
         ctx: &async_graphql::Context<'_>,
         #[graphql(desc = "Transaction issuers")] issuers: Vec<TxIssuer>,
-        #[graphql(desc = "Transaction issuers")] recipients: Vec<TxRecipient>,
+        #[graphql(desc = "Transaction recipients")] recipients: Vec<TxRecipient>,
         #[graphql(desc = "Transaction comment", validator(TxCommentValidator))] comment: Option<
             String,
         >,
@@ -257,9 +260,14 @@ impl GenTxsQuery {
         .gen()?;
 
         if let Some(final_tx) = final_tx_opt {
-            Ok(RawTxOrChanges::FinalTx(final_tx))
+            Ok(RawTxOrChanges::FinalTx(final_tx.as_text().to_owned()))
         } else {
-            Ok(RawTxOrChanges::Changes(changes_txs))
+            Ok(RawTxOrChanges::Changes(
+                changes_txs
+                    .into_iter()
+                    .map(|tx| tx.as_text().to_owned())
+                    .collect(),
+            ))
         }
     }
 }
diff --git a/rust-libs/modules/gva/indexer/Cargo.toml b/rust-libs/modules/gva/indexer/Cargo.toml
index 43a591cd3a6b7c3cb9eaa5b3095660b500df7556..ed4bc446dc3ecf89d831b8471670e91e1423b04c 100644
--- a/rust-libs/modules/gva/indexer/Cargo.toml
+++ b/rust-libs/modules/gva/indexer/Cargo.toml
@@ -15,7 +15,7 @@ path = "src/lib.rs"
 anyhow = "1.0.34"
 duniter-dbs = { path = "../../../duniter-dbs" }
 duniter-gva-db = { path = "../db" }
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 once_cell = "1.5.2"
 resiter = "0.4.0"
 
diff --git a/rust-libs/tests/duniter-integration-tests/Cargo.toml b/rust-libs/tests/duniter-integration-tests/Cargo.toml
index 085f717f21732ee210904270f5f953368090a05c..7101e6275096b5a75e5930e9e6dedff95e059885 100644
--- a/rust-libs/tests/duniter-integration-tests/Cargo.toml
+++ b/rust-libs/tests/duniter-integration-tests/Cargo.toml
@@ -7,7 +7,7 @@ edition = "2018"
 
 [dependencies]
 anyhow = "1.0.34"
-dubp = { version = "0.47.0" }
+dubp = { version = "0.48.0", features = ["duniter"] }
 duniter-conf = { path = "../../duniter-conf" }
 duniter-dbs = { path = "../../duniter-dbs" }
 duniter-bc-reader = { path = "../../duniter-bc-reader" }