[TLLP] Plunge GUI beta

Hi Everyone,

Over the past few weeks I’ve been working on a UI that works with the Trustless Liquidity Pool that @creon built.
I called it Plunge as that had a nice pool reference. It was later pointed out that plunge has negative connotations when used to describe market movements, but the name had already stuck.
Plunge provides a nice way to monitor your activity on the pool, and the pool activity in general. It also has the TLLP client built in and allows you to set it up and run it from within the UI.

As mentioned elsewhere, the intention for the TLLP is that its operations will expand and attempt to attract liquidity providers from outside the Nu community. i hope that a UI such as Plunge can help to lower the technical barrier to operating a TLLP client. Admittedly, the fantastic work that @creon has put in to making the client a single click affair has lowered thhat barrier already but I still feel there is room for a UI such as Plunge.

Plunge will work with any server which runs Creons software.

Here are some screen shots:

Main Page showing provided liquidity at Pool, Exchange and Personal levels. Pool stats are retrieved from the pool server. Exchange Stats can be filtered using the ‘Exchange’ and ‘Currency’ drop down lists. Personal Stats are the total across all exchnages and currencies (This is fairly meaningless for this first run as only bittrex and BTC are enabled by the pool)

Settings Page. The current Pool is set as default.

Set your API Keys.

Choose your minimal Interest rates

Minimise the UI so it doesn;t take up as much room on your desktop (Click the ‘Min’/‘Max’ button on the top bar to toggle this)

Click on any of the numbers on the main page to display a nice chart. Clicking on ‘Ask Liquidity’ will show both Ask and Bid liquidity on the same graph. Clicking on ‘Bid Liquidity’ will show the total liquidity at that level. All others show a single line for that figure. (If charts don’t show for you, try turning the ‘SmoothLine Charts’ option OFF in the settings


I have built a single click installer for Windows. It downloads and unpacks the Kivy portable files (~200MB) so can take a while. (Kivy is the python package I used to build the UI). It’s still buggy (hence the beta label) but should install Plunge on your Windows machine with a minimum of fuss. I would like to revisit this as there are other ways of packaging Kivy projects but after several days of trying, they eluded me.

###Linux (Ubuntu)
Install Kivy
$ sudo add-apt-repository ppa:kivy-team/kivy-daily
$ sudo apt-get install python-kivy
Get the code and run it
$ git clone https://github.com/inuitwallet/plunge.git
$ cd plunge
$ python plunge.py

Install Kivy
Get the code and run it
$ git clone https://github.com/inuitwallet/plunge.git
$ cd plunge
$ kivy plunge.py


There are two main ways of using Plunge.

  1. If you are new to the TLLP it can help you set up and run your client so that you can start providing liquidity.
  2. If you are already providing liquidity and have your client running somewhere else, you can add the same api keys to Plunge and allow it to just monitor your pool account

Option 1 - To set up Plunge to run the TLLP client on your behalf

  • Install Plunge using the instructions above and run it.

  • Access the setting panel by clicking on the top bar of the UI

  • Ensure that ‘Monitor’ is set to ‘OFF’ (monitor removes the portion of the UI that allows you to start and monitor the client)

  • Click on the number to the right of the Exchange you want to configure (only Bittrex is available in this first release). The number will update to indicate the number of valid config lines you have set up. Config lines allow you to use multiple exchange api accounts set up with different parameters if you so wish.

  • On the page that appears start entering details

  • Enter your API Keys by clicking the ‘Set Keys’ button then the ‘Add Keys’ button on the new popup. They will be saved so that in future you can simply select them from the drop down list

  • Enter a valid NuBit payout address. The text will turn red if the address is invalid or black when valid

  • Choose a unit (only BTC available for this first run0

  • Set your rates by clicking the ‘Set Rates’ button and using the sliders

  • Choose a bot (only pybot available for Bittrex)

  • You can add a new row using the ‘Add Row’ button at the bottom right of the page. You can remove a row by removing characters from the NuBits address to make it invalid (any invalid or missing data causes the row to fail saving)

  • Click ‘OK’ to save your rows. You will see a pop up indicating which data is saved and reasons for failure to save if any. To dismiss this pop up, click outside of it

  • Click the ‘Close’ button on the top right of the Settings page to go back to the main page

  • Towards the bottom of the main page there is a ‘Start’ button. Click this to start the client. A green notification that the client has started will show next to the button and the console output of the client will appear in the black section at the bottom of the main window.

  • Once the client is running your stats should start to update.

  • Click on any of the numbers to see a chart of the data collected since Plunge was started.

  • Click on the ‘Pool Stats’ or ‘Exchange Stats’ text to see some more detailed stats

Option 2 - To set up Plunge to monitor your already running client

  • Ensure your client is running as normal

  • Install Plunge using the instructions above and run it

  • Go to the settings page by clicking the top bar on the main page

  • Turn ‘Monitor’ ON, This will shrink the UI to remove the ‘Start’ button and log output area from the bottom of the main page

  • Click on the number to the right of the exchange for which you wish to add API keys

  • Click on the ‘Set Keys’ button and then the ‘Add Keys’ button on the next popup

  • Enter your API keys and save

  • Click ‘OK’ or ‘Cancel’ to return to the Settings page (the API keys get saved either way. It is the act of adding the keys that saves them, seperately to the row data)

  • Click ‘Close’ on the settings page

  • Plunge should now be displaying your client stats. It does this by requesting your personal details from the pool server rather than interacting with the client at all

##Known Issues and Intended features

Plunge is still beta software so expect there to be some rough edges. I would appreciate feedback about your experience with setting up and running Plunge as I would like to make it as frictionless as possible to attract as many liquidity providers we can.
There are some issues that I know about and some features I would stil like to impliment.

  • Sometimes the charts don’t display straight away. In my experience leaving Plunge alone will eventually show the chart. until that point, you can;t close the chart window (balance and rate charts seem to be particularly prone to this)
  • It would be nice to hook into theconsole log of a client that isn’t being run by plunge so that the ‘Running’ indicator can be updated and the log output shown.
  • Add detailed personal stats.
  • Encrypt the files that contain secret API details to hide the details from a casual observer.
  • Better windows Installer
  • Android client. Kivy compiles well for Android and i have a preliminary apk that works. It is very rough and pre-alpha at the moment though.


This is an incredible piece of software and I am very glad that its open to the public now. I can only encourage everyone to give it a try, it really brings a lot of fun to the whole process.

1 Like

Nice job!

I got Traceback (most recent call last):
File “plunge.py”, line 15, in
from kivy.uix.actionbar import ActionBar
ImportError: No module named actionbar

on ubuntu.

Any idea?

1 Like

ah yes. You’ll need the development version of kivy. Have a look on kivy.org.
I’ll update the instructions in a bit. (Done. The repo you add needs to be the nightly build rather than the stable one)

1 Like

All right. Tks

Still getting the same error …:frowning:

This is a wonderful surprise! This makes the trustless pool created by @creon accessible and appealing to a much larger crowd. Great work @woolly_sammoth!

@cryptog, did you remove the existing repo before adding the nightly one?
When you start Plunge it should print out the kivy version as the first line. Could you post that here and I’ll compare to mine.

@JordanLee, thank you. I hope it does have that effect. Creons pool software is really good and hopefully, by allowing interaction like this, liquidity provision can be made into an attractive alternative to mining for those who feel they missed the boat.

Yes I did remove the stable repository and install the nightly one.
I am getting Kivy v1.7.2 .

ah, I’m getting Kivy v1.9.1-dev. I think the ActionBar was added in v1.8.
Which Ubuntu are you running?

congrats guys! this is a real candidate to be a barrier killer and a distribute liquidity provision to a wider audience.

It can also be packaged into a MacOSX application, we should try that one day.

I love the option

  1. : If you are already providing liquidity and have your client running somewhere else

But I am not sure I do understand it fully : What do you mean by “somewhere else”? can it monitor a remoe machine?

Why does it need api keys?

PS: @assistant tip 5 @woolly_sammoth

you can specify xxx as secret. It only needs your key, because it greps eu.nupool.net/yourkey from the server website. You don’t even start the client.

Ok, so my question made sense !

absolutely :wink: we had some discussions about the key management system but once you are managing multiple keys on different exchanges, woollys interface is just the best solution to handle it, while it may be a bit “too much” if you are only using a single exchange or just want to monitor a key.

trying it now, suggestion : edit OP and documentation with a direct link to the only dependency you need to install : http://cython.org/release/Cython-0.22.tar.gz , uncompress it and

 $ sudo pip install -I Cython==0.21.2


EDIT: I am now on the same version as you but i am getting “TDev is not supported by your version of linux” now. I guess I cannot run your GUI on a remote machine (droplet).

EDIT2: I tried installing it on my local mac but I cannot get kivy to boot up for some reason. :frowning:

Wow, these screenshots are getting me excited! This is the way to make it easier for people! :smile:

@cryptog I think you could run it from a remote droplet but you’d have to forward X server over your ssh session to your local machine. Probably better to run it on your Mac anyway as it doesn’t need to be on the same machine as your running pool client. Did you install Cython as @desrever suggested?

@Sentinelrv, thanks. I hope it does that.

Yes I did.

In the mean time I have installed the package on Win.
I can get the GUI to open up now.
However, in monitoring mode, I input a payout address. Then I realized it is not necessary.
Then the next thing that happens is that I cannot get to input keys any more…

Edit: typos