On this page

latest contributor to this doc

Last Edit:

@gcharang

How to Query the MM2 SQLite Database

The Komodo DeFi Framework API stores historical information such as swaps and orders within an SQLite database, located under the DB user data folder (e.g. {folder continaing mm2 binary}/DB/{wallet identifying hex string}/MM2.db').

There are a variety of methods to query sqlite databases. Examples below show how to do a sqlite query in Linux terminal, but first you might need to install sqlite with sudo apt install sqlite3.

The tables and columns available to query are as follows:

This table keeps a record of all swaps successfully performed in this pubkey's MM2.db

IDNameTypeDescription
0idINTEGERPrimary Key
1my_coinVARCHAR(255)Coin sent
2other_coinVARCHAR(255)Coin received
3uuidVARCHAR(255)Swap UUID
4started_atINTEGERTimestamp

sqlite3 ${PATH_TO_MM2_DB_FILE} "SELECT * FROM my_swaps WHERE id=2 LIMIT 1"

2|MARTY|DOC|7086bc8e-bdaa-44b0-ac9b-01aa8760b62b|1636956829

This table keeps a detailed record of all swaps performed (including failed) in this pubkey's MM2.db

IDNameTypeDescription
0idINTEGERPrimary key
1maker_coinVARCHAR(255)Maker coin
2taker_coinVARCHAR(255)Taker coin
3uuidVARCHAR(255)Swap UUID
4started_atINTEGERTimestamp
5finished_atINTEGERTimestamp
6maker_amountDECIMALMaker coin
7taker_amountDECIMALTaker coin
8is_successINTEGER1 for successful, 0 for failed
9maker_coin_tickerVARCHAR(255)Maker coin ticker
10maker_coin_platformVARCHAR(255)Maker coin platform
11taker_coin_tickerVARCHAR(255)Taker coin ticker
12taker_coin_platformVARCHAR(255)Taker coin platform
13maker_coin_usd_priceDECIMALUSD price of maker coin at the time of the swap
14taker_coin_usd_priceDECIMALUSD price of taker coin at the time of the swap
15taker_pubkeyDECIMALTaker pubkey
16maker_pubkeyDECIMALMaker pubkey

sqlite3 ${PATH_TO_MM2_DB_FILE} "SELECT * FROM stats_swaps WHERE taker_coin = 'DOGE' and maker_coin = 'DGB' ORDER BY finished_at DESC LIMIT 1;"

8|DGB|DOGE|c9515636-f5a4-4767-a0af-c69e59086899|1678815183|1678815631|200|28|1|DGB||DOGE||0.0108|0.07673|02d8064eece4fa5c0f8dc0267f68cee9bdd527f9e88f3594a323428718c391ecc2|03a93f666b9030958f282edd2904f0a33278c0c676ae132d2094840fe722f011c3

This table keeps a detailed record of all orders placed in this pubkey's MM2.db

IDNameTypeDescription
0idINTEGERPrimary Key
1uuidVARCHAR(255)Order UUID
2typeVARCHAR(255)Order Type
3initial_actionVARCHAR(255)Buy or Sell. Setprice maker orders are Sell
4baseVARCHAR(255)Base Coin
5relVARCHAR(255)Rel Coin
6priceDECIMALOrder Price
7volumeDECIMALOrder Volume
8created_atINTEGERTimestamp
9last_updatedINTEGERTimestamp
10was_takerINTEGER1 if taker, 2 if maker
11statusVARCHAR(255)Order status

sqlite3 ${PATH_TO_MM2_DB_FILE} "SELECT * FROM my_orders WHERE base = 'DOC' and rel= 'MARTY' LIMIT 6"

154|6053016b-e1ba-490f-9501-eafb69b4d3a7|Taker|Buy|DOC|MARTY|0.03|1|1640159991278|1640160021808|0|TimedOut
266|77d79265-da87-48bb-aee3-7cc87f442a55|Maker|Buy|DOC|MARTY|0.0505|3|1640857934304|1640874662778|1|InsufficientBalance
267|4c6341d6-1e89-4c3b-8612-a930754701f2|Taker|Sell|DOC|MARTY|1|2|1640872463330|1640872467129|0|Fulfilled
290|57c2b270-ee73-4a21-8fa4-4b8c2d76fc02|Maker|Buy|DOC|MARTY|0.1|0.1|1641539601576|1641539631823|1|ToMaker
291|9cba3b40-2426-4fbf-80c8-2a65c8661eed|Maker|Sell|DOC|MARTY|1|1|1641539652421|1641539813001|0|Cancelled
294|fedcc1e0-a059-47c6-bbfc-3a61454f1208|Maker|Sell|DOC|MARTY|1|12|1641546891912|1641546891912|0|Created

This table stores a record of all nodes added for stats collection in this pubkey's MM2.db

IDNameTypeDescription
0idINTEGERPrimary Key
1nameVARCHAR(255)Node name
2addressVARCHAR(255)Node IP
3peer_idVARCHAR(255)Node PeerID

sqlite3 ${PATH_TO_MM2_DB_FILE} "SELECT * FROM nodes WHERE name = 'dragonhound_DEV'"

37|dragonhound_DEV|104.238.221.61|12D3KooWEnrvbqvtTowYMR8FnBeKtryTj9RcXGx8EPpFZHou2ruP

This table stores a record of results returned by registered nodes tracked for node stats collection in this pubkey's MM2.db

IDNameTypeDescription
0idINTEGERPrimary Key
1nameVARCHAR(255)Node name
2versionVARCHAR(255)Node Komodo DeFi Framework API (mm2) version
3timestampINTEGERTimestamp
4errorVARCHAR(255)Error details

sqlite3 ${PATH_TO_MM2_DB_FILE} "SELECT * FROM stats_nodes WHERE name = 'dragonhound_DEV'" LIMIT 3

540|dragonhound_DEV||1638542507|DialFailure
70638|dragonhound_DEV|2.1.4401_mm2.1_87837cb54_Linux_Release|1640270702|
70692|dragonhound_DEV||1640271615|Error on request the peer PeerId("12D3KooWEnrvbqvtTowYMR8FnBeKtryTj9RcXGx8EPpFZHou2ruP"): "Canceled". Request next peer