diff --git a/CellFrameDashboardGUI/DapCommandController.cpp b/CellFrameDashboardGUI/DapCommandController.cpp
index e690e439f3bacb1310db3854b4fe52d1f6c2d468..88d41c62c99f4ca921366fe4d705dede0f5fa745 100644
--- a/CellFrameDashboardGUI/DapCommandController.cpp
+++ b/CellFrameDashboardGUI/DapCommandController.cpp
@@ -79,7 +79,17 @@ void DapCommandController::changeCurrentNetwork(const QString& aNetwork)
     m_DAPRpcSocket->invokeRemoteMethod("RPCServer.changeCurrentNetwork", aNetwork);
 }
 
-#include "DapChainWallet.h"
+void DapCommandController::sendMempool(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue)
+{
+    DapRpcServiceReply *reply = m_DAPRpcSocket->invokeRemoteMethod("RPCServer.createTransaction", aFromWallet, aToAddress, aToken, aNetwork, aValue);
+    connect(reply, SIGNAL(finished()), this, SLOT(processGetResultTransaction()));
+}
+
+void DapCommandController::takeFromMempool(const QString& aNetwork)
+{
+    m_DAPRpcSocket->invokeRemoteMethod("RPCServer.takeFromMempool", aNetwork);
+}
+
 void DapCommandController::setNewWalletData(const QVariant& aData)
 {
     emit sigWalletData(QByteArray::fromHex(aData.toByteArray()));
@@ -223,6 +233,12 @@ void DapCommandController::processGetWalletData()
     emit sigWalletData(QByteArray::fromHex(result));
 }
 
+void DapCommandController::processGetResultTransaction()
+{
+    DapRpcServiceReply *reply = static_cast<DapRpcServiceReply *>(sender());
+    emit sendResponseTransaction(reply->response().toJsonValue().toBool());
+}
+
 void DapCommandController::processGetNetworkList()
 {
     DapRpcServiceReply *reply = static_cast<DapRpcServiceReply *>(sender());
diff --git a/CellFrameDashboardGUI/DapCommandController.h b/CellFrameDashboardGUI/DapCommandController.h
index 8d4f4a5a8dfb65928d3dd494665ed45dcaf08de9..e9bb6d3aff1ff882db05ebb1d44605f3a6bbb883 100644
--- a/CellFrameDashboardGUI/DapCommandController.h
+++ b/CellFrameDashboardGUI/DapCommandController.h
@@ -9,6 +9,7 @@
 #include "DapRpcSocket.h"
 #include "DapRpcServiceProvider.h"
 #include "DapRpcService.h"
+#include "DapChainWallet.h"
 
 /// Class command controller for service
 class DapCommandController : public DapRpcService, public DapRpcServiceProvider
@@ -75,6 +76,8 @@ signals:
 // ---------------------------------------------
     void sigWalletData(QByteArray data);
 
+    void sendResponseTransaction(bool result);
+
 public:
     /// Overloaded constructor.
     /// @param apIODevice Data transfer device.
@@ -113,7 +116,10 @@ private slots:
     void processGetCmdHistory();
 
  // ---------------------------------------------
+    /// Handling service response for get wallet data
     void processGetWalletData();
+    /// Handling service response for get result of putting transaction to mempool
+    void processGetResultTransaction();
 
 public slots:
     /// Show or hide GUI client by clicking on the tray icon.
@@ -171,9 +177,22 @@ public slots:
 
 
 // ---------------------------------------------
+    /// Response wallet data
+    /// @param data
     void setNewWalletData(const QVariant& aData);
-
+    /// Request wallet data
     void requestWalletData();
+    /// Request for creation new transaction
+    /// @param name of wallet
+    /// @param address of a receiver
+    /// @param name of token
+    /// @param name of network
+    /// @param sum for transaction
+    /// @return result of trying to do transaction
+    void sendMempool(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue);
+    /// Taking everything from mempool
+    /// @param network
+    void takeFromMempool(const QString& aNetwork);
 };
 
 #endif // COMMANDCONTROLLER_H
diff --git a/CellFrameDashboardGUI/DapServiceController.cpp b/CellFrameDashboardGUI/DapServiceController.cpp
index aaa03277b822a913b74d0e710247383c343579ec..d5cfc6d76e92547ac12e6e481bd3d17763a3ab0b 100644
--- a/CellFrameDashboardGUI/DapServiceController.cpp
+++ b/CellFrameDashboardGUI/DapServiceController.cpp
@@ -73,6 +73,7 @@ void DapServiceController::init(DapServiceClient *apDapServiceClient)
 
     connect(m_pDapCommandController, &DapCommandController::sigWalletData, &DapChainWalletModel::instance(), &DapChainWalletModel::setWalletData);
 
+    connect(m_pDapCommandController, &DapCommandController::sendResponseTransaction, this, &DapServiceController::resultMempool);
 }
 
 QString DapServiceController::getBrand() const
@@ -281,6 +282,16 @@ QObject *DapServiceController::singletonProvider(QQmlEngine *engine, QJSEngine *
     return &getInstance();
 }
 
+void DapServiceController::createTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue)
+{
+    m_pDapCommandController->sendMempool(aFromWallet, aToAddress, aToken, aNetwork, aValue);
+}
+
+void DapServiceController::sendToken(const QString& aNetwork)
+{
+    m_pDapCommandController->takeFromMempool(aNetwork);
+}
+
 void DapServiceController::requestWalletData()
 {
     m_pDapCommandController->requestWalletData();
diff --git a/CellFrameDashboardGUI/DapServiceController.h b/CellFrameDashboardGUI/DapServiceController.h
index f96d43b0d8d9288e23f4f32666d35f4475212123..fd767d9f13cf162279d035fdd4ea17435a220871 100644
--- a/CellFrameDashboardGUI/DapServiceController.h
+++ b/CellFrameDashboardGUI/DapServiceController.h
@@ -174,8 +174,15 @@ public slots:
     /// @param scriptEngine The QJSEngine class provides an environment for evaluating JavaScript code.
     static QObject *singletonProvider(QQmlEngine *engine, QJSEngine *scriptEngine);
 
+    void createTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue);
+    void sendToken(const QString& aNetwork);
+
 public slots:
+    /// Request wallet data
     void requestWalletData();
+
+signals:
+    void resultMempool(bool result);
 };
 
 #endif // DAPSERVICECONTROLLER_H
diff --git a/CellFrameDashboardGUI/main.cpp b/CellFrameDashboardGUI/main.cpp
index f0c0595ff04cd5675b750c75ced6fb24a701e3ed..700a203cfdc93c1d85485b64c9ab86f27e66eec1 100644
--- a/CellFrameDashboardGUI/main.cpp
+++ b/CellFrameDashboardGUI/main.cpp
@@ -96,7 +96,6 @@ int main(int argc, char *argv[])
     engine.rootContext()->setContextProperty("dapWalletModel", &DapChainWalletModel::instance());
     engine.rootContext()->setContextProperty("clipboard", &DapClipboard::instance());
     engine.rootContext()->setContextProperty("pt", 1.0);
-
     engine.load(QUrl("qrc:/screen/main.qml"));
 
     if (engine.rootObjects().isEmpty())
diff --git a/CellFrameDashboardGUI/screen/DapUiQmlScreenMainWindowForm.ui.qml b/CellFrameDashboardGUI/screen/DapUiQmlScreenMainWindowForm.ui.qml
index fefed83756ee79698c3ccb54fd451a3f8c68fa3e..2e11ad423c88e90fcd83fb4cb37eb6b437b35e02 100644
--- a/CellFrameDashboardGUI/screen/DapUiQmlScreenMainWindowForm.ui.qml
+++ b/CellFrameDashboardGUI/screen/DapUiQmlScreenMainWindowForm.ui.qml
@@ -125,7 +125,6 @@ Page {
             delegate: componentItemMainMenuTab
             clip: true
             interactive: false
-            currentIndex: 0
         }
         focus: true
     }
diff --git a/CellFrameDashboardService/CellFrameDashboardService.pro b/CellFrameDashboardService/CellFrameDashboardService.pro
index 58f806d02d04cac6a19fb1d5bf42028e04947e99..e03e0a07991dd1f50cae6f3ed8def0abd796c4ff 100755
--- a/CellFrameDashboardService/CellFrameDashboardService.pro
+++ b/CellFrameDashboardService/CellFrameDashboardService.pro
@@ -54,7 +54,8 @@ SOURCES += \
     $$PWD/DapChainWalletHandler.cpp \
     $$PWD/DapChainLogHandler.cpp \
     $$PWD/DapChainNetworkHandler.cpp \
-    $$PWD/DapChainConsoleHandler.cpp
+    $$PWD/DapChainConsoleHandler.cpp \
+    $$PWD/DapChainTransaction.cpp
 
 HEADERS += \
     $$PWD/DapChainDashboardService.h \
@@ -65,7 +66,8 @@ HEADERS += \
     $$PWD/DapChainWalletHandler.h \
     $$PWD/DapChainLogHandler.h \
     $$PWD/DapChainNetworkHandler.h \
-    $$PWD/DapChainConsoleHandler.h
+    $$PWD/DapChainConsoleHandler.h \
+    $$PWD/DapChainTransaction.h
 
 include (../libdap/libdap.pri)
 include (../libdap-crypto/libdap-crypto.pri)
diff --git a/CellFrameDashboardService/DapChainDashboardService.cpp b/CellFrameDashboardService/DapChainDashboardService.cpp
index 886a914b422b2d10f8ea7b71aad6a17088eeb651..d33f84b96effb9a08199c5e960ba5fcac1ec3de6 100755
--- a/CellFrameDashboardService/DapChainDashboardService.cpp
+++ b/CellFrameDashboardService/DapChainDashboardService.cpp
@@ -26,6 +26,8 @@ DapChainDashboardService::DapChainDashboardService() : DapRpcService(nullptr)
     QObject::connect(m_pDapChainWalletHandler, &DapChainWalletHandler::walletDataChanged, this, &DapChainDashboardService::doSendNewWalletData);
     m_pDapChainWalletHandler->setNetworkList(m_pDapChainNetworkHandler->getNetworkList());
 
+    m_pDapChainTransaction = new DapChainTransaction(this);
+
 }
 
 bool DapChainDashboardService::start()
@@ -222,3 +224,13 @@ QByteArray DapChainDashboardService::walletData() const
 {
     return m_pDapChainWalletHandler->walletData();
 }
+
+bool DapChainDashboardService::createTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aTokenName, const QString& aNetwork, const quint64 aValue)
+{
+    return m_pDapChainTransaction->createTransaction(aFromWallet, aToAddress, aTokenName, aNetwork, aValue);
+}
+
+void DapChainDashboardService::takeFromMempool(const QString& aNetwork)
+{
+    m_pDapChainTransaction->takeFromMempool(aNetwork);
+}
diff --git a/CellFrameDashboardService/DapChainDashboardService.h b/CellFrameDashboardService/DapChainDashboardService.h
index 27aa3f299d9e7412bcd02d1de4eff291d6e019ab..808cfbc896ce5d78604c4ef09a0eab8696612b7a 100755
--- a/CellFrameDashboardService/DapChainDashboardService.h
+++ b/CellFrameDashboardService/DapChainDashboardService.h
@@ -29,6 +29,7 @@
 #include "DapChainHistoryHandler.h"
 #include "DapChainNetworkHandler.h"
 #include "DapChainConsoleHandler.h"
+#include "DapChainTransaction.h"
 
 #include <QLocalServer>
 typedef class DapRpcLocalServer DapUiService;
@@ -65,6 +66,8 @@ class DapChainDashboardService : public DapRpcService
     /// Recipient network's name
     DapChainNetworkHandler* m_pDapChainNetworkHandler {nullptr};
 
+    DapChainTransaction* m_pDapChainTransaction {nullptr};
+
 public:
     /// Standard сonstructor.
     explicit DapChainDashboardService();
@@ -134,9 +137,24 @@ public slots:
     /// @return history of last 50 commands
     QString getCmdHistory() const;
 
+    /// Add new wallet
+    /// @param wallet name
+    /// @return sucessful or not
     bool appendWallet(const QString& aWalletName) const;
-
+    /// Wallets data
+    /// @return data
     QByteArray walletData() const;
+    /// Putting new transaction in mempool
+    /// @param name of wallet
+    /// @param address of a receiver
+    /// @param name of token
+    /// @param name of network
+    /// @param sum for transaction
+    /// @return sucessful or not
+    bool createTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aTokenName, const QString& aNetwork, const quint64 aValue);
+    /// Taking everything from mempool
+    /// @param network
+    void takeFromMempool(const QString& aNetwork);
 
 private slots:
     /// Request new history request by handle wallet's name
@@ -144,7 +162,8 @@ private slots:
     /// Send new history transaction to client
     /// @param New history transaction
     void doSendNewHistory(const QVariant& aData);
-
+    /// Taking everything from mempool
+    /// @param network
     void doSendNewWalletData(const QByteArray& aData);
 };
 
diff --git a/CellFrameDashboardService/DapChainTransaction.cpp b/CellFrameDashboardService/DapChainTransaction.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..62f0ef9638aec207d30134d2e390f31de732ff15
--- /dev/null
+++ b/CellFrameDashboardService/DapChainTransaction.cpp
@@ -0,0 +1,38 @@
+#include "DapChainTransaction.h"
+
+DapChainTransaction::DapChainTransaction(QObject *parent) : QObject(parent)
+{
+
+}
+
+bool DapChainTransaction::createTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aTokenName, const QString& aNetwork, const quint64 aValue) const
+{
+    QProcess processCreate;
+    processCreate.start(QString("%1 tx_create -net %2 -chain gdb -from_wallet %3 -to_addr %4 -token %5 -value %6")
+                  .arg(CLI_PATH)
+                  .arg(aNetwork)
+                  .arg(aFromWallet)
+                  .arg(aToAddress)
+                  .arg(aTokenName)
+                  .arg(QString::number(aValue)));
+    processCreate.waitForFinished(-1);
+    QByteArray result = processCreate.readAll();
+
+    QRegExp rx("transfer=(\\w+)");
+    rx.indexIn(result, 0);
+
+    if(rx.cap(1) == "Ok")
+    {
+        return true;
+    }
+
+    return false;
+}
+
+void DapChainTransaction::takeFromMempool(const QString& aNetwork)
+{
+    QProcess processMempool;
+    processMempool.start(QString("%1 mempool_proc -net " + aNetwork +" -chain gdb").arg(CLI_PATH));
+    processMempool.waitForFinished(-1);
+    processMempool.readAll();
+}
diff --git a/CellFrameDashboardService/DapChainTransaction.h b/CellFrameDashboardService/DapChainTransaction.h
new file mode 100644
index 0000000000000000000000000000000000000000..e7a3a3a5e4418fccd02acf59208a65fd733e21fd
--- /dev/null
+++ b/CellFrameDashboardService/DapChainTransaction.h
@@ -0,0 +1,29 @@
+#ifndef DAPCHAINTRANSACTION_H
+#define DAPCHAINTRANSACTION_H
+
+#include <QObject>
+#include <QProcess>
+#include <QDebug>
+
+class DapChainTransaction : public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit DapChainTransaction(QObject *parent = nullptr);
+
+    /// Request for creation new transaction
+    /// @param name of wallet
+    /// @param address of a receiver
+    /// @param name of token
+    /// @param name of network
+    /// @param sum for transaction
+    /// @return result of trying to do transaction
+    bool createTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aTokenName, const QString& aNetwork, const quint64 aValue) const;
+
+    /// Taking everything from mempool
+    /// @param network
+    void takeFromMempool(const QString& aNetwork);
+};
+
+#endif // DAPCHAINTRANSACTION_H
diff --git a/CellFrameDashboardService/DapChainWalletHandler.cpp b/CellFrameDashboardService/DapChainWalletHandler.cpp
index f3815d37d0b8e74dc1178af2c7944c51a8b7cd0b..fd61172fe0e2c4b658922572d765ad74ddb94baa 100755
--- a/CellFrameDashboardService/DapChainWalletHandler.cpp
+++ b/CellFrameDashboardService/DapChainWalletHandler.cpp
@@ -21,41 +21,6 @@ bool DapChainWalletHandler::appendWallet(const QString& aWalletName)
     return rx.indexIn(result, 0);
 }
 
-bool DapChainWalletHandler::createTransaction(const QString& aFromAddress, const QString& aToAddress, const QString& aTokenName, const QString& aNetwork, const quint64 aValue) const
-{
-    QString fromWalletName;
-    for(int i = 0; i < m_walletList.count(); i++)
-    {
-        if(m_walletList[i].first.Address == aFromAddress)
-            fromWalletName = m_walletList[i].first.Name;
-    }
-
-    if(fromWalletName.isEmpty() || !m_networkList.contains(aNetwork)) return false;
-    QProcess processCreate;
-    processCreate.start(QString("%1 tx_create -net %2 -chain gdb -from_wallet %3 -to_addr %4 -token %5 -value %6")
-                  .arg(CLI_PATH)
-                  .arg(aNetwork)
-                  .arg(fromWalletName)
-                  .arg(aToAddress)
-                  .arg(aTokenName)
-                  .arg(QString::number(aValue)));
-    processCreate.waitForFinished(-1);
-    QByteArray result = processCreate.readAll();
-    QRegExp rx("transfer=(\\w+)");
-    rx.indexIn(result, 0);
-
-    if(rx.cap(1) == "Ok") {
-
-        QProcess processMempool;
-        processMempool.start(QString("%1 mempool_proc -net " + aNetwork +" -chain gdb").arg(CLI_PATH));
-        processMempool.waitForFinished(-1);
-        processMempool.readAll();
-        return true;
-    }
-
-    return false;
-}
-
 QByteArray DapChainWalletHandler::walletData() const
 {
     QByteArray data;
diff --git a/CellFrameDashboardService/DapChainWalletHandler.h b/CellFrameDashboardService/DapChainWalletHandler.h
index 5a57b924abb8519b2a9a7d7d008bbc5d1d356eed..5b3d3cd46be657ce045f1870d50c0eda761f2f68 100755
--- a/CellFrameDashboardService/DapChainWalletHandler.h
+++ b/CellFrameDashboardService/DapChainWalletHandler.h
@@ -24,8 +24,6 @@ public:
 
     bool appendWallet(const QString& aWalletName);
 
-    bool createTransaction(const QString& aFromAddress, const QString& aToAddress, const QString& aTokenName, const QString& aNetwork, const quint64 aValue) const;
-
     QByteArray walletData() const;
 
 private slots:
diff --git a/libdap b/libdap
index 1c0614797a3a2a2f4c179630025600e177637a65..ee6e8617e1f589b45f15e327ed18cddfa87915f8 160000
--- a/libdap
+++ b/libdap
@@ -1 +1 @@
-Subproject commit 1c0614797a3a2a2f4c179630025600e177637a65
+Subproject commit ee6e8617e1f589b45f15e327ed18cddfa87915f8
diff --git a/libdap-crypto b/libdap-crypto
index c81202ba5d48e5d77afcc8aea9962a10560527f3..16a16e71b9cfae4fd8df530ed8cd6146010ae7e0 160000
--- a/libdap-crypto
+++ b/libdap-crypto
@@ -1 +1 @@
-Subproject commit c81202ba5d48e5d77afcc8aea9962a10560527f3
+Subproject commit 16a16e71b9cfae4fd8df530ed8cd6146010ae7e0
diff --git a/libdap-qt b/libdap-qt
index 5f661c223be1ccd39f0dfa104a44de0d9f9dfb35..7129934993bef42104cffbef8f983cde724afce2 160000
--- a/libdap-qt
+++ b/libdap-qt
@@ -1 +1 @@
-Subproject commit 5f661c223be1ccd39f0dfa104a44de0d9f9dfb35
+Subproject commit 7129934993bef42104cffbef8f983cde724afce2
diff --git a/libdap-qt-ui-qml b/libdap-qt-ui-qml
index af9704c2619c8d8395625a72f16489f106fc487b..dd91e44d482c478322350fba08d8cf65292f163f 160000
--- a/libdap-qt-ui-qml
+++ b/libdap-qt-ui-qml
@@ -1 +1 @@
-Subproject commit af9704c2619c8d8395625a72f16489f106fc487b
+Subproject commit dd91e44d482c478322350fba08d8cf65292f163f