diff --git a/Cargo.lock b/Cargo.lock
index 801e0864f7d4280911b83fc09235c1b93e77305a..041190584aeb4290762f21cc712839b7a6bc581d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -234,11 +234,11 @@ dependencies = [
  "dirs 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "duniter-conf 0.1.0-a0.1",
  "duniter-dal 0.1.0-a0.1",
- "duniter-documents 0.9.0-b1",
+ "duniter-documents 0.10.0-b1",
  "duniter-message 0.1.0-a0.1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b3",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "durs-network-documents 0.1.0-a0.1",
  "durs-wot 0.8.0-a0.9",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -256,9 +256,9 @@ name = "duniter-conf"
 version = "0.1.0-a0.1"
 dependencies = [
  "dirs 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "duniter-documents 0.9.0-b1",
+ "duniter-documents 0.10.0-b1",
  "duniter-module 0.1.0-a0.1",
- "dup-crypto 0.3.0-b3",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -275,7 +275,7 @@ dependencies = [
  "duniter-message 0.1.0-a0.1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b3",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "durs-network-documents 0.1.0-a0.1",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "log-panics 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -291,10 +291,10 @@ dependencies = [
 name = "duniter-dal"
 version = "0.1.0-a0.1"
 dependencies = [
- "duniter-documents 0.9.0-b1",
+ "duniter-documents 0.10.0-b1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b3",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "durs-wot 0.8.0-a0.9",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "rustbreak 2.0.0-rc3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -305,12 +305,12 @@ dependencies = [
 
 [[package]]
 name = "duniter-documents"
-version = "0.9.0-b1"
+version = "0.10.0-b1"
 dependencies = [
  "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "base64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "dup-crypto 0.3.0-b3",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pest 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "pest_derive 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -324,10 +324,10 @@ name = "duniter-message"
 version = "0.1.0-a0.1"
 dependencies = [
  "duniter-dal 0.1.0-a0.1",
- "duniter-documents 0.9.0-b1",
+ "duniter-documents 0.10.0-b1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b3",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "durs-network-documents 0.1.0-a0.1",
  "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -338,8 +338,8 @@ dependencies = [
 name = "duniter-module"
 version = "0.1.0-a0.1"
 dependencies = [
- "duniter-documents 0.9.0-b1",
- "dup-crypto 0.3.0-b3",
+ "duniter-documents 0.10.0-b1",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "durs-network-documents 0.1.0-a0.1",
  "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -351,9 +351,9 @@ dependencies = [
 name = "duniter-network"
 version = "0.1.0-a0.1"
 dependencies = [
- "duniter-documents 0.9.0-b1",
+ "duniter-documents 0.10.0-b1",
  "duniter-module 0.1.0-a0.1",
- "dup-crypto 0.3.0-b3",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "durs-network-documents 0.1.0-a0.1",
  "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -366,11 +366,11 @@ version = "0.1.0-a0.1"
 dependencies = [
  "duniter-conf 0.1.0-a0.1",
  "duniter-dal 0.1.0-a0.1",
- "duniter-documents 0.9.0-b1",
+ "duniter-documents 0.10.0-b1",
  "duniter-message 0.1.0-a0.1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b3",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "durs-network-documents 0.1.0-a0.1",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -382,7 +382,21 @@ dependencies = [
 
 [[package]]
 name = "dup-crypto"
-version = "0.3.0-b3"
+version = "0.4.0-b1"
+dependencies = [
+ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rust-crypto-wasm 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "dup-crypto"
+version = "0.4.0-b1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -410,8 +424,8 @@ version = "0.1.0-a0.1"
 dependencies = [
  "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "duniter-documents 0.9.0-b1",
- "dup-crypto 0.3.0-b3",
+ "duniter-documents 0.10.0-b1",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "pest 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "pest_derive 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -438,11 +452,11 @@ version = "0.1.0-a0.1"
 dependencies = [
  "bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "duniter-conf 0.1.0-a0.1",
- "duniter-documents 0.9.0-b1",
+ "duniter-documents 0.10.0-b1",
  "duniter-message 0.1.0-a0.1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b3",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "durs-network-documents 0.1.0-a0.1",
  "durs-ws2p-messages 0.1.0-a0.1",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -457,8 +471,8 @@ version = "0.1.0-a0.1"
 dependencies = [
  "bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "duniter-documents 0.9.0-b1",
- "dup-crypto 0.3.0-b3",
+ "duniter-documents 0.10.0-b1",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "durs-network-documents 0.1.0-a0.1",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -474,11 +488,11 @@ dependencies = [
  "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
  "duniter-conf 0.1.0-a0.1",
  "duniter-dal 0.1.0-a0.1",
- "duniter-documents 0.9.0-b1",
+ "duniter-documents 0.10.0-b1",
  "duniter-message 0.1.0-a0.1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b3",
+ "dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)",
  "durs-network-documents 0.1.0-a0.1",
  "durs-wot 0.8.0-a0.9",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1286,6 +1300,7 @@ dependencies = [
 "checksum digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90"
 "checksum dirs 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "37a76dd8b997af7107d0bb69d43903cf37153a18266f8b3fdb9911f28efb5444"
 "checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab"
+"checksum dup-crypto 0.4.0-b1 (registry+https://github.com/rust-lang/crates.io-index)" = "7956f921b9d3d760aaa650c8882503f9f3ec99c8c025fcaae76ca8c3435d3116"
 "checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0"
 "checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7"
 "checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596"
diff --git a/blockchain/Cargo.toml b/blockchain/Cargo.toml
index ea020681ce68abb27c2362846dbdefc0e34179d3..139b72eb0e37b18cb7b75ece3f49e680c783fd82 100644
--- a/blockchain/Cargo.toml
+++ b/blockchain/Cargo.toml
@@ -11,7 +11,7 @@ path = "lib.rs"
 [dependencies]
 dirs = "1.0.2"
 duniter-conf = { path = "../conf" }
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 duniter-dal = { path = "../dal" }
 duniter-documents = { path = "../documents" }
 durs-network-documents = { path = "../network-documents" }
diff --git a/conf/Cargo.toml b/conf/Cargo.toml
index 24a426c9bba8b0afcc282a0da20c665b3f33ed72..ce152b579f4ddcca8c8306625a424d8062db7e2d 100644
--- a/conf/Cargo.toml
+++ b/conf/Cargo.toml
@@ -14,7 +14,7 @@ serde = "1.0.*"
 serde_derive = "1.0.*"
 serde_json = "1.0.*"
 dirs = "1.0.2"
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 duniter-documents = { path = "../documents" }
 duniter-module = { path = "../module" }
 
diff --git a/core/Cargo.toml b/core/Cargo.toml
index 37d43e959dcb3c3620116efae31c34d6ff6dd48c..a2092cf9f3bae41ce165881ea1739ef8afdd53b5 100644
--- a/core/Cargo.toml
+++ b/core/Cargo.toml
@@ -12,7 +12,7 @@ path = "lib.rs"
 dirs = "1.0.2"
 duniter-blockchain = { path = "../blockchain" }
 duniter-conf = { path = "../conf" }
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 duniter-message =  { path = "../message" }
 duniter-module = { path = "../module" }
 duniter-network = { path = "../network" }
diff --git a/dal/Cargo.toml b/dal/Cargo.toml
index ea6bbd619378f99a30a764a7025113db4d47a8cb..b2b3831a0b58fc9175db4147a636ba5adc213279 100644
--- a/dal/Cargo.toml
+++ b/dal/Cargo.toml
@@ -9,7 +9,7 @@ license = "AGPL-3.0"
 path = "lib.rs"
 
 [dependencies]
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 duniter-documents = { path = "../documents" }
 duniter-module = { path = "../module" }
 duniter-network = { path = "../network" }
diff --git a/documents/Cargo.toml b/documents/Cargo.toml
index 042065c0a3fa54f60e1dbe7dada6e6ea8e4aaa3e..49d4c53c64476d05d0eace86884a73303322846b 100644
--- a/documents/Cargo.toml
+++ b/documents/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "duniter-documents"
-version = "0.9.0-b1"
+version = "0.10.0-b1"
 authors = ["nanocryk <nanocryk@duniter.org>", "elois <elois@ifee.fr>"]
 description = "Handles DUBP documents (DUBP: DUniter Blockhain Protocol)"
 repository = "https://git.duniter.org/nodes/rust/duniter-rs"
@@ -15,7 +15,7 @@ path = "src/lib.rs"
 base58 = "0.1.*"
 base64 = "0.9.*"
 byteorder = "1.2.3"
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 pest = "2.0"
 pest_derive = "2.0"
 serde = "1.0.*"
diff --git a/message/Cargo.toml b/message/Cargo.toml
index 79c4e074f2d503a1dc6b2abb02e18deb25929e47..bb4e0a22bd9028791b30dc0e57e7b448e2114208 100644
--- a/message/Cargo.toml
+++ b/message/Cargo.toml
@@ -9,7 +9,7 @@ license = "AGPL-3.0"
 path = "lib.rs"
 
 [dependencies]
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 duniter-dal = { path = "../dal" }
 duniter-documents = { path = "../documents" }
 duniter-module = { path = "../module" }
diff --git a/module/Cargo.toml b/module/Cargo.toml
index a49bd6d9b50d2ebbddd23493e80a75cea58c1185..a78bd241f02c5ab7d4ec8f28337e15d3df827880 100644
--- a/module/Cargo.toml
+++ b/module/Cargo.toml
@@ -9,7 +9,7 @@ license = "AGPL-3.0"
 path = "lib.rs"
 
 [dependencies]
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 duniter-documents = { path = "../documents" }
 durs-network-documents = { path = "../network-documents" }
 serde = "1.0.*"
diff --git a/network-documents/Cargo.toml b/network-documents/Cargo.toml
index 9785dbd526e7856d24b6ce57fe35e941a62be669..65a6aa4f6af3d3340aa6b2fbfa0ca13f6371506b 100644
--- a/network-documents/Cargo.toml
+++ b/network-documents/Cargo.toml
@@ -10,7 +10,7 @@ path = "src/lib.rs"
 
 [dependencies]
 base58 = "0.1.*"
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 duniter-documents = { path = "../documents" }
 hex = "0.3.*"
 pest = "2.0"
diff --git a/network/Cargo.toml b/network/Cargo.toml
index 42358ae4db29fd3519ee47ab07b4f9d9b3cf8277..782ca8cc92ddffacba0675696be960af0c71895b 100644
--- a/network/Cargo.toml
+++ b/network/Cargo.toml
@@ -9,7 +9,7 @@ license = "AGPL-3.0"
 path = "lib.rs"
 
 [dependencies]
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 duniter-documents = { path = "../documents" }
 duniter-module = { path = "../module" }
 durs-network-documents = { path = "../network-documents" }
diff --git a/tui/Cargo.toml b/tui/Cargo.toml
index f069ff32b2689e5a9c95e7e35e6bdde1b4ab93c8..eae65ff33026539b245fd4a055625947ae2195f3 100644
--- a/tui/Cargo.toml
+++ b/tui/Cargo.toml
@@ -10,7 +10,7 @@ path = "lib.rs"
 
 [dependencies]
 duniter-conf = { path = "../conf" }
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 duniter-dal = { path = "../dal" }
 duniter-documents = { path = "../documents" }
 duniter-message =  { path = "../message" }
diff --git a/ws2p-messages/Cargo.toml b/ws2p-messages/Cargo.toml
index ea73afd5e54633c93344cb2f088da9e75bac7bb9..c14e690fb83185847c9c9337051b8a37f5b5538a 100644
--- a/ws2p-messages/Cargo.toml
+++ b/ws2p-messages/Cargo.toml
@@ -11,7 +11,7 @@ path = "lib.rs"
 [dependencies]
 bincode = "1.0.*"
 byteorder = "1.2.3"
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 duniter-documents = { path = "../documents" }
 durs-network-documents = { path = "../network-documents" }
 log = "0.4.*"
diff --git a/ws2p-v1-legacy/Cargo.toml b/ws2p-v1-legacy/Cargo.toml
index 0d80b8d94ed2c251b2b7cd0740be7e8b039c7247..0c56b71432c59dd6079778cf895c7f7cdb6c8556 100644
--- a/ws2p-v1-legacy/Cargo.toml
+++ b/ws2p-v1-legacy/Cargo.toml
@@ -11,7 +11,7 @@ path = "lib.rs"
 [dependencies]
 byteorder = "1.2.3"
 duniter-conf = { path = "../conf" }
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 duniter-dal = { path = "../dal" }
 duniter-documents = { path = "../documents" }
 durs-network-documents = { path = "../network-documents" }
diff --git a/ws2p/Cargo.toml b/ws2p/Cargo.toml
index e9d05a0301ab14a3a257163541b7c27e2d1e0f1d..1161c012f13a07908e895d0d835ba94c270476b4 100644
--- a/ws2p/Cargo.toml
+++ b/ws2p/Cargo.toml
@@ -11,7 +11,7 @@ path = "lib.rs"
 [dependencies]
 bincode = "1.0.*"
 duniter-conf= { path = "../conf" }
-dup-crypto = { path = "../crypto" }
+dup-crypto = "0.4.0-b1"
 duniter-documents = { path = "../documents" }
 durs-network-documents = { path = "../network-documents" }
 durs-ws2p-messages = { path = "../ws2p-messages" }