This was a genius idea in my head at the time, I swear you guys! So the other night I was configuring a bitcoin arbitrage setup and I had the thought, “Why not just fork Mycelium and turn it into an arbitrage wallet!?” I mean it has coinapult right!? That should be a no-brainer, an app that grows your bitcoin for you! Well, as I do with all plans to modify software, I run it with stock features first so I can determine the expected behavior & how it should perform. The task certainly should be easy enough, I have the Mycelium App on my phone for small amounts of bitcoin. (I preferred the Andreas Schildbach wallet in the past, but got hooked onto Mycelium with the addition of their local trader app.) So off to these mean digital streets I go to get this metaphorical ball rolling…I sign up for coinapult the website thinking that would be a requirement for the app…(you’re not. In fact, I had problems with trying to link the same email – I used a separate email which fixed this problem). I then attempt to figure out how to configure the feature (there are no easy methods nor indication of how to enable coinapult until you look through the youtube marketing video – take note of the parallel logos)
So I do these actions and right away a few things stand out as red-flags to me:
- I can’t use the thing (my multi-sig address never appears)
- The service states that it may be subject to outage at any time and they’re not responsible
- The service states that trading activity can be halted or suspended per their discretion at any time
So I’m already a bit of a nervous nelly about trying to fork the source…but here’s the way I had it mapped out:
We make have three private strict (typesafe) variables: price_old, price_new, current_price and one function (lockstate) that would enable or disable the coinapult mechanism. I presume that the wallet has a service that runs to grab the price…(I would imagine this only happens with the app open) My idea was to copy the service and have it running at all times..It would fill in price1, then 2 minutes later it would fill in price2 and every two minutes it would set price_old = price_new, price_new = price_current, and price_current = the result price from the running service against an exchange. From there I would run it through a few if conditions along the lines of:
- if price_old and price_new are greater than price_current then set lockstate.on
- else if price_old and price new are less than price_current then set lockstate.off
- else break;
I would wrap the price updating sequence and if condition statements in a final if statement that checks if the feature is toggled on or off and set that within the ActivityMain.java. Except we have one problem, I never got the stock functionality working!
How in the world am I supposed to provide a Killer BTC app when the stock functionality is broken??? Well, lucky me to have a good friend to save the day, Trusty pal who shall remain nameless (less he decides to reveal himself) was kind enough to share that coinapult charges between 1-2% per locking transaction. Combine this with my red flag gut feelings above: Needless to say my little ‘hack’ would cause you to go broke in a matter of 50-100 trades or less. Ergo this plan is a bust.
Bonus Reading: (Taking the fee into consideration and making it set the lock is
impossible foolishly shortsighted as I would be attempting to speculate where the price would go rather than simply executing if two periods are lower/higher – imagine a market where the price is going sideways in 3% movement increments – You’re attempting to mitigate based on these small differences and each time the coinapult mechanism triggers you pay 1-2%, there is zero guarantee of earning and worse, by having a threshold before trigger, you create conditions where the lock could engage on but perhaps never engage off because the price difference between price_new and price_old never increases beyond 2% meaning you never get your cash locked back in bitcoin – maybe I’m missing something?)
Do you know Erik Voorhees? Maybe you are Erik Voorhees? Would you consider a special forked access version of coinapult such that I could build this application for users and they won’t go reasonably broke? (like say my specific master api key is set to an ultra low .001% rate so it would take thousands of trades to make someone potentially broke?) Let’s talk about this!