diff --git a/CellFrameDashboardGUI/CellFrameDashboardGUI.pro b/CellFrameDashboardGUI/CellFrameDashboardGUI.pro
index be1d35cb22dea59fadcee6dd8bafedf140526957..370cf496b28cbaff50d0bdaf77ba4b599052d8b6 100755
--- a/CellFrameDashboardGUI/CellFrameDashboardGUI.pro
+++ b/CellFrameDashboardGUI/CellFrameDashboardGUI.pro
@@ -80,7 +80,8 @@ SOURCES += \
     $$PWD/DapServiceClientNativeLinux.cpp \
     $$PWD/DapServiceClientNativeWin.cpp \
     $$PWD/DapServiceClientNativeMacOS.cpp \
-    $$PWD/DapChainWalletsModel.cpp
+    $$PWD/DapChainWalletsModel.cpp \
+    DapTransaction.cpp
 
 RESOURCES += $$PWD/qml.qrc
 
@@ -107,7 +108,8 @@ HEADERS += \
     $$PWD/DapServiceClientNativeLinux.h \
     $$PWD/DapServiceClientNativeWin.h \
     $$PWD/DapChainWalletsModel.h \
-    $$PWD/DapWalletFilterModel.h
+    $$PWD/DapWalletFilterModel.h \
+    DapTransaction.h
 
 include (../libdap/libdap.pri)
 include (../libdap-crypto/libdap-crypto.pri)
diff --git a/CellFrameDashboardGUI/DapCommandController.cpp b/CellFrameDashboardGUI/DapCommandController.cpp
index e690e439f3bacb1310db3854b4fe52d1f6c2d468..5c430992f29f0d5a401c3b9aedad66300972c67b 100644
--- a/CellFrameDashboardGUI/DapCommandController.cpp
+++ b/CellFrameDashboardGUI/DapCommandController.cpp
@@ -79,7 +79,12 @@ void DapCommandController::changeCurrentNetwork(const QString& aNetwork)
     m_DAPRpcSocket->invokeRemoteMethod("RPCServer.changeCurrentNetwork", aNetwork);
 }
 
-#include "DapChainWallet.h"
+void DapCommandController::sendTransaction(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::setNewWalletData(const QVariant& aData)
 {
     emit sigWalletData(QByteArray::fromHex(aData.toByteArray()));
@@ -223,6 +228,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..ea41c1a7c13c78b3623d7f4dd1129024a35cb019 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.
@@ -115,6 +118,8 @@ private slots:
  // ---------------------------------------------
     void processGetWalletData();
 
+    void processGetResultTransaction();
+
 public slots:
     /// Show or hide GUI client by clicking on the tray icon.
     /// @param aIsActivated Accepts true - when requesting to 
@@ -174,6 +179,8 @@ public slots:
     void setNewWalletData(const QVariant& aData);
 
     void requestWalletData();
+
+    void sendTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue);
 };
 
 #endif // COMMANDCONTROLLER_H
diff --git a/CellFrameDashboardGUI/DapServiceController.cpp b/CellFrameDashboardGUI/DapServiceController.cpp
index aaa03277b822a913b74d0e710247383c343579ec..1f21aa904d10e671e13297f0ea5bd8be07231921 100644
--- a/CellFrameDashboardGUI/DapServiceController.cpp
+++ b/CellFrameDashboardGUI/DapServiceController.cpp
@@ -73,6 +73,9 @@ void DapServiceController::init(DapServiceClient *apDapServiceClient)
 
     connect(m_pDapCommandController, &DapCommandController::sigWalletData, &DapChainWalletModel::instance(), &DapChainWalletModel::setWalletData);
 
+    connect(&DapTransaction::instance(), &DapTransaction::sendTransaction, m_pDapCommandController, &DapCommandController::sendTransaction);
+    connect(m_pDapCommandController, &DapCommandController::sendResponseTransaction, &DapTransaction::instance(), &DapTransaction::receiveResult);
+
 }
 
 QString DapServiceController::getBrand() const
diff --git a/CellFrameDashboardGUI/DapServiceController.h b/CellFrameDashboardGUI/DapServiceController.h
index f96d43b0d8d9288e23f4f32666d35f4475212123..27d08052e339d4e3a70d59cabf519f89e756074d 100644
--- a/CellFrameDashboardGUI/DapServiceController.h
+++ b/CellFrameDashboardGUI/DapServiceController.h
@@ -17,6 +17,7 @@
 #include "DapScreenHistoryModel.h"
 #include "DapSettingsNetworkModel.h"
 #include "DapConsoleModel.h"
+#include "DapTransaction.h"
 
 #include "DapChainWalletModel.h"
 
diff --git a/CellFrameDashboardGUI/DapTransaction.cpp b/CellFrameDashboardGUI/DapTransaction.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..858e352e37a07539134273e3c049e94fa1b0a7ec
--- /dev/null
+++ b/CellFrameDashboardGUI/DapTransaction.cpp
@@ -0,0 +1,22 @@
+#include "DapTransaction.h"
+
+DapTransaction::DapTransaction(QObject *parent) : QObject(parent)
+{
+
+}
+
+DapTransaction& DapTransaction::instance()
+{
+    static DapTransaction instance;
+    return instance;
+}
+
+void DapTransaction::createRequestTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue)
+{
+    emit sendTransaction(aFromWallet, aToAddress, aToken, aNetwork, aValue);
+}
+
+void DapTransaction::receiveResult(const bool aSuccessful)
+{
+    emit sendResult(aSuccessful);
+}
diff --git a/CellFrameDashboardGUI/DapTransaction.h b/CellFrameDashboardGUI/DapTransaction.h
new file mode 100644
index 0000000000000000000000000000000000000000..a370b0d246a8706a91bbf3e457534a99f3ae5447
--- /dev/null
+++ b/CellFrameDashboardGUI/DapTransaction.h
@@ -0,0 +1,22 @@
+#ifndef DAPTRANSACTION_H
+#define DAPTRANSACTION_H
+
+#include <QObject>
+
+class DapTransaction : public QObject
+{
+    Q_OBJECT
+public:
+    explicit DapTransaction(QObject *parent = nullptr);
+    static DapTransaction& instance();
+
+public slots:
+    void createRequestTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue);
+    void receiveResult(const bool aSuccessful);
+
+signals:
+    void sendResult(bool result);
+    void sendTransaction(const QString& fromWallet, const QString& toAddress, const QString& token, const QString& network, const quint64 value);
+};
+
+#endif // DAPTRANSACTION_H
diff --git a/CellFrameDashboardGUI/main.cpp b/CellFrameDashboardGUI/main.cpp
index 5551f314584da2b900c747d295db3cff93dd3ed7..19f74a60582dfbbf8b70c3c90be74d50a9db95bc 100644
--- a/CellFrameDashboardGUI/main.cpp
+++ b/CellFrameDashboardGUI/main.cpp
@@ -25,6 +25,7 @@
 #include "DapConsoleModel.h"
 #include "DapChainConvertor.h"
 #include "DapClipboard.h"
+#include "DapTransaction.h"
 
 #include "DapChainWalletModel.h"
 #include "DapWalletFilterModel.h"
@@ -95,6 +96,7 @@ int main(int argc, char *argv[])
     engine.rootContext()->setContextProperty("dapWalletFilterModel", &DapWalletFilterModel::instance());
     engine.rootContext()->setContextProperty("dapWalletModel", &DapChainWalletModel::instance());
     engine.rootContext()->setContextProperty("clipboard", &DapClipboard::instance());
+    engine.rootContext()->setContextProperty("dapTransaction", &DapTransaction::instance());
     engine.rootContext()->setContextProperty("pt", 1.3);
     engine.load(QUrl("qrc:/screen/main.qml"));
 
diff --git a/CellFrameDashboardService/CellFrameDashboardService.pro b/CellFrameDashboardService/CellFrameDashboardService.pro
index 58f806d02d04cac6a19fb1d5bf42028e04947e99..e59c75465048ead095d1160fd176d4b27408d934 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 \
+    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 \
+    DapChainTransaction.h
 
 include (../libdap/libdap.pri)
 include (../libdap-crypto/libdap-crypto.pri)
diff --git a/CellFrameDashboardService/DapChainDashboardService.cpp b/CellFrameDashboardService/DapChainDashboardService.cpp
index 886a914b422b2d10f8ea7b71aad6a17088eeb651..28aa41c4993274d15c4f561bae781f45614d977e 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,8 @@ 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);
+}
diff --git a/CellFrameDashboardService/DapChainDashboardService.h b/CellFrameDashboardService/DapChainDashboardService.h
index 27aa3f299d9e7412bcd02d1de4eff291d6e019ab..825e5b2d54e6a8a75f5c7567fc499f73a9397e18 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();
@@ -138,6 +141,8 @@ public slots:
 
     QByteArray walletData() const;
 
+    bool createTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aTokenName, const QString& aNetwork, const quint64 aValue);
+
 private slots:
     /// Request new history request by handle wallet's name
     void doRequestWallets();
diff --git a/CellFrameDashboardService/DapChainTransaction.cpp b/CellFrameDashboardService/DapChainTransaction.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..4bbc0f5ff0de6f035bd21205c85f4321293409cc
--- /dev/null
+++ b/CellFrameDashboardService/DapChainTransaction.cpp
@@ -0,0 +1,34 @@
+#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") {
+
+        QProcess processMempool;
+        processMempool.start(QString("%1 mempool_proc -net " + aNetwork +" -chain gdb").arg(CLI_PATH));
+        processMempool.waitForFinished(-1);
+        processMempool.readAll();
+        return true;
+    }
+
+    return false;
+}
diff --git a/CellFrameDashboardService/DapChainTransaction.h b/CellFrameDashboardService/DapChainTransaction.h
new file mode 100644
index 0000000000000000000000000000000000000000..0434dee20c139f1dbb4fa2dae43b1a601f4d5a15
--- /dev/null
+++ b/CellFrameDashboardService/DapChainTransaction.h
@@ -0,0 +1,25 @@
+#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;
+};
+
+#endif // DAPCHAINTRANSACTION_H
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 8dfd465e991656dca083c0fd3a0ff5825d61fe86..4c38710d45f7e5e7c3ba8139a964c886b4061f10 160000
--- a/libdap-qt-ui-qml
+++ b/libdap-qt-ui-qml
@@ -1 +1 @@
-Subproject commit 8dfd465e991656dca083c0fd3a0ff5825d61fe86
+Subproject commit 4c38710d45f7e5e7c3ba8139a964c886b4061f10