diff --git a/Cargo.lock b/Cargo.lock
index 5908de9086cfdc2b2aa58acbf873b2fc9ef8c49a..62f5f2bc1841bf0765b6586b0f81e478cfebaa65 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -810,7 +810,6 @@ dependencies = [
  "async-bincode",
  "async_io_stream",
  "bincode",
- "dubp",
  "duniter-core",
  "duniter-gva-db",
  "duniter-gva-dbs-reader",
@@ -929,7 +928,6 @@ dependencies = [
  "async-mutex",
  "async-trait",
  "bytes 1.0.1",
- "dubp",
  "duniter-bda",
  "duniter-core",
  "duniter-gva-conf",
@@ -971,7 +969,6 @@ version = "0.1.0"
 dependencies = [
  "bincode",
  "chrono",
- "dubp",
  "duniter-core",
  "parking_lot",
  "paste",
@@ -987,7 +984,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "arrayvec 0.7.0",
- "dubp",
  "duniter-core",
  "duniter-gva-db",
  "flate2",
@@ -1007,7 +1003,6 @@ dependencies = [
  "arrayvec 0.7.0",
  "async-graphql",
  "async-trait",
- "dubp",
  "duniter-core",
  "duniter-gva-db",
  "duniter-gva-dbs-reader",
@@ -1030,7 +1025,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "bincode",
- "dubp",
  "duniter-core",
  "duniter-gva-db",
  "duniter-gva-dbs-reader",
diff --git a/Cargo.toml b/Cargo.toml
index a1fe609450db44f1f3fa740fecb3dede829c52ab..e534190a0c9977f54670e615649de03b1f32635d 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,7 +13,6 @@ async-graphql = { version = "2.8", features = ["log"] }
 async-mutex = "1.4.0"
 async-trait = "0.1.41"
 bytes = "1.0"
-dubp = { version = "0.55.1", features = ["duniter"] }
 duniter-bda = { path = "./bda" }
 duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
 duniter-gva-conf = { path = "./conf" }
diff --git a/bda/Cargo.toml b/bda/Cargo.toml
index bd7864ee7ea235dff92c32b888f689631cc7ee1b..d6e1a7187eaf81a3498a8a076b55f64a02c9343e 100644
--- a/bda/Cargo.toml
+++ b/bda/Cargo.toml
@@ -11,7 +11,6 @@ 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.55.1", features = ["duniter"] }
 duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
 duniter-gva-db = { path = "../db" }
 duniter-gva-dbs-reader = { path = "../dbs-reader" }
diff --git a/bda/src/exec_req_type.rs b/bda/src/exec_req_type.rs
index b33cef205b843c0b7ae5b5c101d507c3fc4b87cf..ca826b09f26febf3d675baa1d92e865805d1111e 100644
--- a/bda/src/exec_req_type.rs
+++ b/bda/src/exec_req_type.rs
@@ -22,7 +22,7 @@ mod prepare_simple_payment;
 mod send_txs;
 mod utxos;
 
-use dubp::crypto::keys::KeyPair;
+use duniter_core::crypto::keys::KeyPair;
 
 use crate::*;
 
diff --git a/bda/src/exec_req_type/balances.rs b/bda/src/exec_req_type/balances.rs
index 5b6ee11486dda2c380faddb08ed558d7a393d064..70ecf452b74d0d2123173cb073ad2f2ea8fb10f7 100644
--- a/bda/src/exec_req_type/balances.rs
+++ b/bda/src/exec_req_type/balances.rs
@@ -14,7 +14,7 @@
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 use crate::*;
-use dubp::{crypto::keys::ed25519::PublicKey, wallet::prelude::WalletScriptV10};
+use duniter_core::{crypto::keys::ed25519::PublicKey, wallet::prelude::WalletScriptV10};
 
 pub(super) async fn exec_req_balances_of_pubkeys(
     bda_executor: &BdaExecutor,
diff --git a/bda/src/exec_req_type/last_blockstamp_out_of_fork_window.rs b/bda/src/exec_req_type/last_blockstamp_out_of_fork_window.rs
index d071cb8400052d56738e781865d8fdce2d1daf3f..6d5d763f3579aba1db986b4c3977571cf13828ce 100644
--- a/bda/src/exec_req_type/last_blockstamp_out_of_fork_window.rs
+++ b/bda/src/exec_req_type/last_blockstamp_out_of_fork_window.rs
@@ -14,7 +14,7 @@
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 use crate::*;
-use dubp::common::prelude::*;
+use duniter_core::common::prelude::*;
 
 pub(super) async fn exec_req_last_blockstamp_out_of_fork_window(
     bda_executor: &BdaExecutor,
diff --git a/bda/src/exec_req_type/prepare_simple_payment.rs b/bda/src/exec_req_type/prepare_simple_payment.rs
index 7a5130a714dfe8e6c34f7cf7cdeb40c15a3186be..8e55f7a4cfb3d89a750240d389ac7a03957f57c2 100644
--- a/bda/src/exec_req_type/prepare_simple_payment.rs
+++ b/bda/src/exec_req_type/prepare_simple_payment.rs
@@ -14,8 +14,8 @@
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 use crate::*;
-use dubp::bda_types::prepare_payment::{PrepareSimplePayment, PrepareSimplePaymentResp};
-use dubp::wallet::prelude::*;
+use duniter_core::bda_types::prepare_payment::{PrepareSimplePayment, PrepareSimplePaymentResp};
+use duniter_core::wallet::prelude::*;
 
 pub(super) async fn exec_req_prepare_simple_payment(
     bda_executor: &BdaExecutor,
diff --git a/bda/src/exec_req_type/send_txs.rs b/bda/src/exec_req_type/send_txs.rs
index 73aae212dd6da85b3353703e9954dbf3a0c4a95c..b14f5c39ae38bf3bfe2a010fbc649f654bc6aa2f 100644
--- a/bda/src/exec_req_type/send_txs.rs
+++ b/bda/src/exec_req_type/send_txs.rs
@@ -14,11 +14,14 @@
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 use crate::*;
-use dubp::bda_types::{
-    rejected_tx::{RejectedTx, RejectedTxReason},
-    Txs,
+use duniter_core::{
+    bda_types::{
+        rejected_tx::{RejectedTx, RejectedTxReason},
+        Txs,
+    },
+    crypto::keys::KeyPair,
+    documents::transaction::TransactionDocumentTrait,
 };
-use dubp::{crypto::keys::KeyPair, documents::transaction::TransactionDocumentTrait};
 
 pub(super) async fn send_txs(
     bda_executor: &BdaExecutor,
diff --git a/bda/src/exec_req_type/utxos.rs b/bda/src/exec_req_type/utxos.rs
index 9c3678f393b06bba96ab6aa85ae3718849e8beb5..106d87294aee0ef36bf1a327f9530af63f9237bd 100644
--- a/bda/src/exec_req_type/utxos.rs
+++ b/bda/src/exec_req_type/utxos.rs
@@ -14,7 +14,7 @@
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 use crate::*;
-use dubp::{crypto::keys::ed25519::PublicKey, wallet::prelude::WalletScriptV10};
+use duniter_core::{crypto::keys::ed25519::PublicKey, wallet::prelude::WalletScriptV10};
 
 pub(super) async fn exec_req_first_utxos_of_pubkeys(
     bda_executor: &BdaExecutor,
diff --git a/bda/src/lib.rs b/bda/src/lib.rs
index fd964a91b64d1e5bc9c966bd6aeb289356451846..81de5db4335cdddd78df90934fd177de3fbe1ad9 100644
--- a/bda/src/lib.rs
+++ b/bda/src/lib.rs
@@ -35,11 +35,11 @@ use arrayvec::ArrayVec;
 use async_bincode::AsyncBincodeReader;
 use async_io_stream::IoStream;
 use bincode::Options as _;
-use dubp::bda_types::{
+use duniter_core::bda_types::{
     amount::Amount, bincode_opts, identity::Identity, BcaReq, BcaReqExecError, BcaReqTypeV0,
     BcaResp, BcaRespTypeV0, BcaRespV0,
 };
-use dubp::crypto::keys::{ed25519::Ed25519KeyPair, Signator};
+use duniter_core::crypto::keys::{ed25519::Ed25519KeyPair, Signator};
 pub use duniter_core::dbs::kv_typed::prelude::*;
 use duniter_core::dbs::{FileBackend, SharedDbs};
 #[cfg(not(test))]
@@ -224,8 +224,13 @@ impl BdaExecutor {
 #[cfg(test)]
 mod tests {
     use super::*;
-    pub use dubp::bda_types::BcaReqV0;
-    pub use dubp::{
+    pub use duniter_core::dbs::databases::bc_v2::{BcV2DbReadable, BcV2DbRo};
+    pub use duniter_core::dbs::databases::cm_v1::{CmV1Db, CmV1DbReadable};
+    pub use duniter_core::dbs::databases::txs_mp_v2::{TxsMpV2Db, TxsMpV2DbReadable};
+    pub use duniter_core::dbs::BlockMetaV2;
+    pub use duniter_core::global::{CurrentMeta, MockAsyncAccessor};
+    pub use duniter_core::{
+        bda_types::BcaReqV0,
         block::prelude::*,
         crypto::{
             hashs::Hash,
@@ -234,11 +239,6 @@ mod tests {
         documents::transaction::TransactionInputV10,
         wallet::prelude::*,
     };
-    pub use duniter_core::dbs::databases::bc_v2::{BcV2DbReadable, BcV2DbRo};
-    pub use duniter_core::dbs::databases::cm_v1::{CmV1Db, CmV1DbReadable};
-    pub use duniter_core::dbs::databases::txs_mp_v2::{TxsMpV2Db, TxsMpV2DbReadable};
-    pub use duniter_core::dbs::BlockMetaV2;
-    pub use duniter_core::global::{CurrentMeta, MockAsyncAccessor};
     pub use duniter_gva_dbs_reader::MockDbsReader;
     pub use futures::TryStreamExt;
 
diff --git a/db/Cargo.toml b/db/Cargo.toml
index 8458834c9c66006bbab515ddf8a8e5807737c36a..1cb967e1afff925dbe56840e8ab01137f9be482c 100644
--- a/db/Cargo.toml
+++ b/db/Cargo.toml
@@ -14,7 +14,6 @@ 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.55.1", features = ["duniter"] }
 parking_lot = "0.11.0"
 paste = "1.0.2"
 serde = { version = "1.0.105", features = ["derive"] }
diff --git a/db/src/lib.rs b/db/src/lib.rs
index f6e899fdda527ef1c6fb69daaad1cf2fa1942a42..5c64cd70ec1bdcb6072fb31d9ce2a8292f827489 100644
--- a/db/src/lib.rs
+++ b/db/src/lib.rs
@@ -34,9 +34,8 @@ pub use values::wallet_script_array::WalletScriptArrayV2;
 pub use values::HashDb;
 
 pub(crate) use bincode::Options as _;
-pub(crate) use dubp::common::prelude::*;
-pub(crate) use dubp::crypto::hashs::Hash;
-pub(crate) use dubp::wallet::prelude::*;
+pub(crate) use duniter_core::common::prelude::*;
+pub(crate) use duniter_core::crypto::hashs::Hash;
 pub(crate) use duniter_core::dbs::kv_typed;
 pub(crate) use duniter_core::dbs::kv_typed::db_schema;
 pub(crate) use duniter_core::dbs::kv_typed::prelude::*;
@@ -45,6 +44,7 @@ pub(crate) use duniter_core::dbs::{
     bincode_db, CorruptedBytes, HashKeyV2, PubKeyKeyV2, SourceAmountValV2, ToDumpString,
     WalletConditionsV2,
 };
+pub(crate) use duniter_core::wallet::prelude::*;
 pub(crate) use duniter_core::wot::WotId;
 pub(crate) use serde::{Deserialize, Serialize};
 pub(crate) use std::collections::BTreeSet;
diff --git a/db/src/values/gva_block_db.rs b/db/src/values/gva_block_db.rs
index 7b51e3e1ee1220df9124c8f3534324b4645bf829..26230d6aa8b0b376784491a5cc0fc1d55e0e8454 100644
--- a/db/src/values/gva_block_db.rs
+++ b/db/src/values/gva_block_db.rs
@@ -14,7 +14,7 @@
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 use crate::*;
-use dubp::block::{DubpBlock, DubpBlockV10};
+use duniter_core::block::{DubpBlock, DubpBlockV10};
 
 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
 #[repr(transparent)]
diff --git a/db/src/values/gva_tx.rs b/db/src/values/gva_tx.rs
index b17d40e94568a67ea3c014d2888da691c200c53e..cf1849dcfd59b9349b188bbbea729bada01c25b6 100644
--- a/db/src/values/gva_tx.rs
+++ b/db/src/values/gva_tx.rs
@@ -15,7 +15,7 @@
 
 use crate::*;
 
-use dubp::documents::transaction::TransactionDocumentV10;
+use duniter_core::documents::transaction::TransactionDocumentV10;
 
 #[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
 pub struct GvaTxDbV1 {
diff --git a/dbs-reader/Cargo.toml b/dbs-reader/Cargo.toml
index 7e1d13023623e52ff602db6bf1f16a47f0403d91..3063442a07a7a650a472217a0502283c05341d9e 100644
--- a/dbs-reader/Cargo.toml
+++ b/dbs-reader/Cargo.toml
@@ -19,7 +19,6 @@ anyhow = "1.0.34"
 arrayvec = { version = "0.7", features = ["serde"] }
 duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
 duniter-gva-db = { path = "../db" }
-dubp = { version = "0.55.1", features = ["duniter"] }
 flate2 = { version = "1.0", features = ["zlib-ng-compat"], default-features = false }
 mockall = { version = "0.9.1", optional = true }
 resiter = "0.4.0"
diff --git a/dbs-reader/src/find_inputs.rs b/dbs-reader/src/find_inputs.rs
index ac628ac355b2741e92a7a3255e3cf13322a18ea9..4f320bf92f38ca57697d4b3296538b0989fe8a40 100644
--- a/dbs-reader/src/find_inputs.rs
+++ b/dbs-reader/src/find_inputs.rs
@@ -18,7 +18,7 @@ use crate::{
     utxos::{UtxoCursor, UtxosWithSum},
     *,
 };
-use dubp::{documents::transaction::TransactionInputV10, wallet::prelude::*};
+use duniter_core::{documents::transaction::TransactionInputV10, wallet::prelude::*};
 
 pub(super) const MIN_AMOUNT: i64 = 100;
 
diff --git a/dbs-reader/src/idty.rs b/dbs-reader/src/idty.rs
index 13d4097bd0b5c15844f4dae5ac61d902c12596c6..1af8d6f50290fd70112bf524c74bf52f46e6760d 100644
--- a/dbs-reader/src/idty.rs
+++ b/dbs-reader/src/idty.rs
@@ -31,8 +31,8 @@ impl DbsReaderImpl {
 #[cfg(test)]
 mod tests {
     use super::*;
-    use dubp::common::prelude::Blockstamp;
-    use dubp::crypto::keys::ed25519::Signature;
+    use duniter_core::common::prelude::Blockstamp;
+    use duniter_core::crypto::keys::ed25519::Signature;
     use duniter_core::dbs::databases::bc_v2::BcV2DbWritable;
 
     #[test]
diff --git a/dbs-reader/src/lib.rs b/dbs-reader/src/lib.rs
index 05737371595ee03eeec398f7ae0b9faf8753052a..98fba11ae5bb0d79a9865cce023731a3ef86c758 100644
--- a/dbs-reader/src/lib.rs
+++ b/dbs-reader/src/lib.rs
@@ -34,15 +34,12 @@ pub mod uds_of_pubkey;
 pub mod utxos;
 
 pub use crate::pagination::{PageInfo, PagedData};
-pub use dubp::bda_types::MAX_FIRST_UTXOS;
+pub use duniter_core::bda_types::MAX_FIRST_UTXOS;
 
 use crate::pagination::{has_next_page, has_previous_page};
 use arrayvec::ArrayVec;
-use dubp::bda_types::utxo::Utxo;
-use dubp::common::crypto::keys::ed25519::PublicKey;
-use dubp::documents::transaction::TransactionDocumentV10;
-use dubp::{block::DubpBlockV10, common::crypto::hashs::Hash};
-use dubp::{common::prelude::BlockNumber, wallet::prelude::*};
+use duniter_core::bda_types::utxo::Utxo;
+use duniter_core::common::crypto::keys::ed25519::PublicKey;
 use duniter_core::dbs::{databases::network_v1::NetworkV1DbReadable, FileBackend};
 use duniter_core::dbs::{
     databases::{
@@ -55,6 +52,9 @@ use duniter_core::dbs::{
 use duniter_core::dbs::{
     kv_typed::prelude::*, HashKeyV2, PubKeyKeyV2, SourceAmountValV2, UtxoIdDbV2,
 };
+use duniter_core::documents::transaction::TransactionDocumentV10;
+use duniter_core::{block::DubpBlockV10, common::crypto::hashs::Hash};
+use duniter_core::{common::prelude::BlockNumber, wallet::prelude::*};
 use duniter_gva_db::{GvaIdtyDbV1, GvaTxDbV1, GvaUtxoIdDbV1, GvaV1DbReadable, GvaV1DbRo};
 use rand::seq::SliceRandom;
 use resiter::filter::Filter;
@@ -105,7 +105,7 @@ pub trait DbsReader {
         script: &WalletScriptV10,
         use_mempool_sources: bool,
     ) -> anyhow::Result<(
-        Vec<dubp::documents::transaction::TransactionInputV10>,
+        Vec<duniter_core::documents::transaction::TransactionInputV10>,
         SourceAmount,
     )>;
     fn find_script_utxos<TxsMpDb: 'static + TxsMpV2DbReadable>(
@@ -228,7 +228,7 @@ impl DbsReader for DbsReaderImpl {
         script: &WalletScriptV10,
         use_mempool_sources: bool,
     ) -> anyhow::Result<(
-        Vec<dubp::documents::transaction::TransactionInputV10>,
+        Vec<duniter_core::documents::transaction::TransactionInputV10>,
         SourceAmount,
     )> {
         self.find_inputs_(bc_db, txs_mp_db, amount, script, use_mempool_sources)
diff --git a/dbs-reader/src/network.rs b/dbs-reader/src/network.rs
index fc0aab728251bdc7dcbeb11a6501353398124aa5..9333970c31e7fce7d90c6fcf04999759dcc90a16 100644
--- a/dbs-reader/src/network.rs
+++ b/dbs-reader/src/network.rs
@@ -89,9 +89,9 @@ impl DbsReaderImpl {
 #[cfg(test)]
 mod tests {
     use super::*;
-    use dubp::{crypto::keys::PublicKey as _, peer::PeerV10};
     use duniter_core::dbs::databases::network_v1::NetworkV1DbWritable;
     use duniter_core::dbs::PeerCardDbV1;
+    use duniter_core::{crypto::keys::PublicKey as _, peer::PeerV10};
     use smallvec::smallvec;
 
     #[test]
diff --git a/dbs-reader/src/txs_history.rs b/dbs-reader/src/txs_history.rs
index 795a599aac8158174b70702d227eb2fdd6e811b6..1f533e3e0168ffff53ae54b1259b6131f5eedaa9 100644
--- a/dbs-reader/src/txs_history.rs
+++ b/dbs-reader/src/txs_history.rs
@@ -513,7 +513,7 @@ pub fn get_transactions_history_for_bma<GvaDb: GvaV1DbReadable, TxsMpDb: TxsMpV2
 #[cfg(test)]
 mod tests {
     use super::*;
-    use dubp::{
+    use duniter_core::{
         common::prelude::{BlockHash, Blockstamp},
         crypto::keys::ed25519::PublicKey,
         documents::transaction::{TransactionDocumentV10, TransactionDocumentV10Stringified},
diff --git a/dbs-reader/src/utxos.rs b/dbs-reader/src/utxos.rs
index a2f72ef7e1423937836f66e896d0ea0e7258cb6c..09ebbe766fd1069bfc38ad5827e3eabcccd37ba3 100644
--- a/dbs-reader/src/utxos.rs
+++ b/dbs-reader/src/utxos.rs
@@ -13,8 +13,8 @@
 // You should have received a copy of the GNU Affero General Public License
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
-use dubp::documents::dubp_wallet::prelude::*;
 use duniter_core::dbs::SourceAmountValV2;
+use duniter_core::documents::dubp_wallet::prelude::*;
 
 use crate::*;
 
@@ -286,7 +286,7 @@ where
 mod tests {
 
     use super::*;
-    use dubp::crypto::keys::PublicKey as _;
+    use duniter_core::crypto::keys::PublicKey as _;
     use duniter_core::dbs::databases::txs_mp_v2::TxsMpV2DbWritable;
     use duniter_gva_db::GvaV1DbWritable;
     use unwrap::unwrap;
diff --git a/gql/Cargo.toml b/gql/Cargo.toml
index d8e30d64d79ab9e165fdbfbafb6107b0e9ade4c4..8d6179680513ae96e032fd43a869ae1a4f14089f 100644
--- a/gql/Cargo.toml
+++ b/gql/Cargo.toml
@@ -10,7 +10,6 @@ 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.55.1", features = ["duniter"] }
 duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
 duniter-gva-db = { path = "../db" }
 duniter-gva-dbs-reader = { path = "../dbs-reader" }
diff --git a/gql/src/entities/block_gva.rs b/gql/src/entities/block_gva.rs
index 58d4f74caad19f201608fea12f1e9c21f0ccb74a..fd489896c95cc7289ae768456ef41eaafe656ba7 100644
--- a/gql/src/entities/block_gva.rs
+++ b/gql/src/entities/block_gva.rs
@@ -15,7 +15,7 @@
 
 use super::tx_gva::WrittenTxGva;
 use crate::*;
-use dubp::block::DubpBlockV10;
+use duniter_core::block::DubpBlockV10;
 use duniter_core::dbs::BlockMetaV2;
 
 #[derive(async_graphql::SimpleObject)]
diff --git a/gql/src/entities/network.rs b/gql/src/entities/network.rs
index 7f532a7cae683e4a50a117f552fc6012681a5c32..50e4374a5eeec51f351e457890359744743a4c39 100644
--- a/gql/src/entities/network.rs
+++ b/gql/src/entities/network.rs
@@ -1,4 +1,4 @@
-use dubp::crypto::{bases::b58::ToBase58, keys::Signature};
+use duniter_core::crypto::{bases::b58::ToBase58, keys::Signature};
 
 //  Copyright (C) 2020 Éloïs SANCHEZ.
 //
diff --git a/gql/src/entities/tx_gva.rs b/gql/src/entities/tx_gva.rs
index af16297192a0537b464b7bee9764ae0d84b40077..89066f91066c303ee9ecd14862bc8875fedd69bf 100644
--- a/gql/src/entities/tx_gva.rs
+++ b/gql/src/entities/tx_gva.rs
@@ -14,8 +14,8 @@
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 use crate::*;
-use dubp::documents::transaction::TransactionDocumentV10Stringified;
 use duniter_core::dbs::PendingTxDbV2;
+use duniter_core::documents::transaction::TransactionDocumentV10Stringified;
 use duniter_gva_db::GvaTxDbV1;
 
 #[derive(async_graphql::SimpleObject)]
diff --git a/gql/src/lib.rs b/gql/src/lib.rs
index 6948264e2b4d747c21bb8e7f89f7b9472838c570..e801b819e0f9e4f2f534d88fe342658ab66a4e94 100644
--- a/gql/src/lib.rs
+++ b/gql/src/lib.rs
@@ -54,20 +54,20 @@ use crate::tests::AsyncAccessor;
 use crate::tests::DbsReaderImpl;
 use async_graphql::connection::{Connection, Edge, EmptyFields};
 use async_graphql::validators::{IntGreaterThan, IntRange, ListMaxLength, ListMinLength};
-use dubp::bda_types::MAX_FIRST_UTXOS;
-use dubp::common::crypto::keys::{ed25519::PublicKey, PublicKey as _};
-use dubp::common::prelude::*;
-use dubp::crypto::hashs::Hash;
-use dubp::documents::prelude::*;
-use dubp::documents::transaction::{TransactionDocumentTrait, TransactionDocumentV10};
-use dubp::documents_parser::prelude::*;
-use dubp::wallet::prelude::*;
+use duniter_core::bda_types::MAX_FIRST_UTXOS;
+use duniter_core::common::crypto::keys::{ed25519::PublicKey, PublicKey as _};
+use duniter_core::common::prelude::*;
+use duniter_core::crypto::hashs::Hash;
 use duniter_core::dbs::databases::txs_mp_v2::TxsMpV2DbReadable;
 use duniter_core::dbs::prelude::*;
 use duniter_core::dbs::{kv_typed::prelude::*, FileBackend};
+use duniter_core::documents::prelude::*;
+use duniter_core::documents::transaction::{TransactionDocumentTrait, TransactionDocumentV10};
+use duniter_core::documents_parser::prelude::*;
 #[cfg(not(test))]
 use duniter_core::global::AsyncAccessor;
 use duniter_core::mempools::TxsMempool;
+use duniter_core::wallet::prelude::*;
 use duniter_gva_dbs_reader::pagination::PageInfo;
 use duniter_gva_dbs_reader::DbsReader;
 #[cfg(not(test))]
diff --git a/gql/src/queries/gen_tx.rs b/gql/src/queries/gen_tx.rs
index 7f4a1b981ad287327517c7274b11117e9dece5ef..73ff2fad0326e24a7154496e57ba022e4e78f5b3 100644
--- a/gql/src/queries/gen_tx.rs
+++ b/gql/src/queries/gen_tx.rs
@@ -14,12 +14,12 @@
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 use crate::*;
-use dubp::{
+use duniter_core::dbs::smallvec::SmallVec;
+use duniter_core::{
     crypto::bases::BaseConversionError,
     documents::transaction::v10_gen::{TransactionDocV10ComplexGen, TxV10ComplexIssuer},
     documents::transaction::UnsignedTransactionDocumentTrait,
 };
-use duniter_core::dbs::smallvec::SmallVec;
 
 struct TxIssuerTyped {
     script: WalletScriptV10,
@@ -42,7 +42,7 @@ impl TryFrom<TxIssuer> for TxIssuerTyped {
             .map(|s| PublicKey::from_base58(s))
             .collect::<Result<_, BaseConversionError>>()?;
         let script = if let Some(ref script_str) = input.script {
-            dubp::documents_parser::wallet_script_from_str(script_str)?
+            duniter_core::documents_parser::wallet_script_from_str(script_str)?
         } else if signers.len() <= 3 && codes.is_empty() {
             match signers.len() {
                 1 => WalletScriptV10::single(WalletConditionV10::Sig(signers[0])),
@@ -76,7 +76,7 @@ impl TryFrom<TxRecipient> for TxRecipientTyped {
     type Error = async_graphql::Error;
 
     fn try_from(input: TxRecipient) -> async_graphql::Result<Self> {
-        let script = dubp::documents_parser::wallet_script_from_str(&input.script)?;
+        let script = duniter_core::documents_parser::wallet_script_from_str(&input.script)?;
         Ok(Self {
             amount: input.amount,
             script,
diff --git a/gql/src/queries/txs_history.rs b/gql/src/queries/txs_history.rs
index 3d28421f64b44f52d949478f58e9edadcc1ea86f..a88c4d97f5b699519e903149ca9348d058194817 100644
--- a/gql/src/queries/txs_history.rs
+++ b/gql/src/queries/txs_history.rs
@@ -251,9 +251,9 @@ mod tests {
     use std::collections::VecDeque;
 
     use crate::tests::*;
-    use dubp::documents::transaction::TransactionDocumentV10;
-    use dubp::documents::transaction::TransactionDocumentV10Stringified;
-    use dubp::documents_parser::prelude::FromStringObject;
+    use duniter_core::documents::transaction::TransactionDocumentV10;
+    use duniter_core::documents::transaction::TransactionDocumentV10Stringified;
+    use duniter_core::documents_parser::prelude::FromStringObject;
     use duniter_gva_db::GvaTxDbV1;
     use duniter_gva_dbs_reader::pagination::PagedData;
 
diff --git a/gql/src/scalars.rs b/gql/src/scalars.rs
index f58a79ba540f72b6b54648e70aa92799a1e14cec..471c4c3b5fa7f4b99a59989e9a6702fb6d063034 100644
--- a/gql/src/scalars.rs
+++ b/gql/src/scalars.rs
@@ -15,7 +15,7 @@
 
 use crate::*;
 use async_graphql::{InputValueError, InputValueResult, Scalar, ScalarType};
-use dubp::crypto::bases::b58::ToBase58;
+use duniter_core::crypto::bases::b58::ToBase58;
 
 #[derive(Clone, Copy, Debug)]
 pub(crate) struct PubKeyGva(pub(crate) PublicKey);
@@ -65,10 +65,10 @@ impl ScalarType for PkOrScriptGva {
                     if let Ok(pubkey) = PublicKey::from_base58(&value_str) {
                         WalletScriptV10::single_sig(pubkey)
                     } else {
-                        dubp::documents_parser::wallet_script_from_str(&value_str)?
+                        duniter_core::documents_parser::wallet_script_from_str(&value_str)?
                     }
                 } else {
-                    dubp::documents_parser::wallet_script_from_str(&value_str)?
+                    duniter_core::documents_parser::wallet_script_from_str(&value_str)?
                 },
             ))
         } else {
diff --git a/indexer/Cargo.toml b/indexer/Cargo.toml
index f6bc0f7822be0fe3e8913d738f010330a102ec6e..49732e45d41bbaea9e0600d7b04e952faa3b6e31 100644
--- a/indexer/Cargo.toml
+++ b/indexer/Cargo.toml
@@ -17,7 +17,6 @@ bincode = "1.3"
 duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
 duniter-gva-db = { path = "../db" }
 duniter-gva-dbs-reader = { path = "../dbs-reader" }
-dubp = { version = "0.55.1", features = ["duniter"] }
 flate2 = { version = "1.0", features = ["zlib-ng-compat"], default-features = false }
 log = "0.4"
 once_cell = "1.7"
diff --git a/indexer/src/lib.rs b/indexer/src/lib.rs
index 74f97dc2650ad4ad1d4d9d4d9423cee8e1975f4d..87cb8c20f90a1188ce79c7c5fc0e0d9404fb0194 100644
--- a/indexer/src/lib.rs
+++ b/indexer/src/lib.rs
@@ -30,7 +30,7 @@ mod utxos;
 pub use blocks_chunks::{apply_block_blocks_chunk, revert_block_blocks_chunk};
 
 use bincode::Options as _;
-use dubp::{
+use duniter_core::{
     block::prelude::*,
     common::{crypto::hashs::Hash, currency_params::CurrencyParameters, prelude::*},
     documents::{
@@ -284,7 +284,7 @@ fn apply_block_txs<B: Backend>(
 #[cfg(test)]
 mod tests {
     use super::*;
-    use dubp::{
+    use duniter_core::{
         crypto::keys::{ed25519::PublicKey, PublicKey as _},
         documents::transaction::TransactionDocumentV10Stringified,
         documents_parser::prelude::FromStringObject,
diff --git a/indexer/src/tx.rs b/indexer/src/tx.rs
index 627d8cb2191423a781828d573c73a8183a138e08..b00553e2b90935b89fc0624e33e8e33c8ab018ef 100644
--- a/indexer/src/tx.rs
+++ b/indexer/src/tx.rs
@@ -154,7 +154,7 @@ pub(crate) fn revert_tx<B: Backend>(
     tx_hash: &Hash,
 ) -> KvResult<Option<TransactionDocumentV10>> {
     if let Some(tx_db) = gva_db.txs.get(&HashKeyV2::from_ref(tx_hash))? {
-        use dubp::documents::transaction::TransactionDocumentTrait as _;
+        use duniter_core::documents::transaction::TransactionDocumentTrait as _;
         for (output_index, output) in tx_db.tx.get_outputs().iter().enumerate() {
             let script = &output.conditions.script;
             let utxo_script_hash = get_script_hash(&script, scripts_hash);
@@ -295,12 +295,12 @@ fn decrease_account_balance<B: Backend>(
 mod tests {
 
     use super::*;
-    use dubp::{
+    use duniter_core::dbs::BlockMetaV2;
+    use duniter_core::{
         crypto::keys::ed25519::Ed25519KeyPair, crypto::keys::KeyPair as _,
         documents::smallvec::smallvec as svec, documents::transaction::v10::*,
         documents::transaction::UTXOConditions,
     };
-    use duniter_core::dbs::BlockMetaV2;
     use maplit::btreeset;
 
     #[test]
diff --git a/src/lib.rs b/src/lib.rs
index f6d1b27610ce3ebacfb19a2fe0327e3d85756cac..26b5f531a070d6503cdd4f26079c800911c81af0 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -26,20 +26,20 @@ mod anti_spam;
 mod warp_;
 
 use async_graphql::http::GraphQLPlaygroundConfig;
-use dubp::common::{currency_params::CurrencyParameters, prelude::*};
-use dubp::documents::transaction::TransactionDocumentV10;
-use dubp::{block::DubpBlockV10, crypto::hashs::Hash};
-use dubp::{
-    common::crypto::keys::{ed25519::PublicKey, KeyPair as _},
-    crypto::keys::ed25519::Ed25519KeyPair,
-};
+use duniter_core::common::{currency_params::CurrencyParameters, prelude::*};
 use duniter_core::dbs::databases::txs_mp_v2::TxsMpV2DbReadable;
 use duniter_core::dbs::prelude::*;
 use duniter_core::dbs::{kv_typed::prelude::*, FileBackend};
+use duniter_core::documents::transaction::TransactionDocumentV10;
 use duniter_core::global::AsyncAccessor;
 use duniter_core::mempools::Mempools;
 #[cfg(not(test))]
 use duniter_core::module::public_ips::get_public_ips;
+use duniter_core::{block::DubpBlockV10, crypto::hashs::Hash};
+use duniter_core::{
+    common::crypto::keys::{ed25519::PublicKey, KeyPair as _},
+    crypto::keys::ed25519::Ed25519KeyPair,
+};
 use duniter_core::{conf::DuniterMode, module::Endpoint};
 use duniter_gva_conf::GvaConf;
 use duniter_gva_db::*;