NuBits Android App roadmap and funding
After the successful delivery of the official NuBits Android App ( Click here for info and download ) it is time to plot the next steps. However there is a cost for development and testing. Instead of just raising one or more custodial grant proposals I like to gauge interest first by raising funds Kickstarter style. I ended up with the following:
- When we have raised NBT 250, I will raise a custodial grant proposal for the remaining cost to execute item 1 on the roadmap asap (see proposed roadmap below)
- When we have raised another NBT 2,250, I will raise a custodial grant proposal for the remaining cost to execute item 2 on the roadmap asap
- For another NBT 1,000, I will raise a custodial proposal for the remaining cost to execute of item 3 on the roadmap asap.
- Adding another NBT 1,500 and we will get to item 4.
When the total of NBT 5,000 is raised within 2 weeks (before 8 Feb 23:59 GMT) I will raise a custodial grant for all the work at once and will try to contract the developer for it. Otherwise I will only add the roadmap items according to the amount of donations as above.
Haven't added item 5 and 6 yet as that probably depends on open sourcing and given the other work is more than 6 months away. Other functionality might be required before we get to that.
The good news is that when we contacted the people behind Shapeshift ( https://shapeshift.io/ ) to discuss our proposal with them they promised us to donate NBT 1,000 towards our development. Thanks again Shapeshift. I will count that only against the NBT 2,250 for item 2, so only NBT 1,250 is still required to have this moved forward to a proposal for a custodial grant. Item 1 still requires NBT 250.
The remaining costs for each proposal are not clear and need additional estimating and design work, except for item 1 which is estimated at around NBT 1,000 and can be done in a relatively short time. Rough estimates for item 2 vary between NBT 3,000 and NBT 10,000 depending on the levels of fault tolerance and error handling required. More work on this proposal is still required.
Ok, so if you are already an Android NuBits user who like to see more or you like to support further enhancements as a shareholder please donate here:
BAKuK27iCAaNxkM5LGbAYdoY8CXSCSP8A7 -- Android NuBits donation address (or Shapeshift!)
Click here to see the latest status of the donations: Link to block explorer and QR-code
All donations will go towards NuBits Android development and will be deduced from the cost of custodial grant proposals as defined above. I hope this approach stimulates the usage of NuBits, ensures we are doing the things the community and Android users value and to reduce the increase of the money supply as a result of a custodial grant.
So I hope many get behind this and we will have a leading and unique NuBits Android App which might even be of use within other cryptocoin communities with volatile coins.
** Disclaimer, in the event the developer is not available and no one else can be found to deliver this work the community will be asked what to do with the raised funds and if undecided they will go towards general development.
Below is the proposed roadmap with some indicative timelines. The timelines are subject to the availability of the developer, the triggers on donation levels being reached in time and the passing of the custodial grant proposals. Feedback from the community might also swap or skip some releases or add new releases with functionality not listed here. It is not set in stone until a custodial grant to deliver each step have been approved by the Shareholders
- Feb/March 2015 Update repo with the latest updates from Peercoin repo (including passwords etc.)
- April/May 2015 Build API and GUI for Shapeshift support in the App
- June/July 2015 Add capability to configure a secondary server or your own server in the App and adding feature to disconnect/connect app manually when in the background.
- Late 2015 Adding multi-sig support and GUI support (this would likely require updating the
repositories from upstream (Bitcoin) to the latest)
- Adding NuBits parking functionality, liquidity info and coin control features.
- Adding NuShares and support for other coins to be launched on NuNet (e.g. NuEuro, NuCNY etc.)
More details on each step of the roadmap follow below:
1. Feb/March 2015 Update repo with the latest updates from peercoin repo (including passwords etc.)
This work is already underway for the Peercoin App, but still needs to be add to the NuBits App code. New features include:
- Deterministic wallets (BIP0032)
- Encrypt wallet with PIN code, required to send coins.
- Displaying local currency in app widget
- UI improvements
- Any bug fixes and performance enhancements
2. April/May 2015 Build API and GUI for Shapeshift support in the App
Usage of Shapehift APIs to support the following functionality:
Pay to addresses in foreign cryptocoins and receive coins from foreign cryptocoin addresses from within the Android wallet using Shapeshift API. The Android wallet will only hold NuBits and therefore be always stable in value. Some further detailing of functionality:
- Have the App recognise foreign coin addresses (e.g. in QR codes) for payments
- Option to add email address to get receipt of transaction (from Shapeshift) by email.
- Provide a return address for each coin in case the transaction couldn't complete
Dealing with following error conditions:
- Verify whether coin type is available (fixed list of coins Shapeshift currently provides or use API to verify whether available. The latter if more future proof in case coins are added or deleted).
- Verify whether adequate funds to exchange are available (test max limit in API)
- Verify rate with user by showing total amount confirmation requester (continue yes/no)
- Verify whether adequate funds are available in user's wallet based on the quoted rates
- Verify time-out for quoted amount (e.g. invalidate after 1 minute, new quote required first before transactions can be completed) e.g. with countdown presented to user
- Verify availability of Shapeshift API
Excluded functionality in this release:
- Support foreign coin addresses in address book
- Support foreign coin transaction history
- Ability to display foreign QR codes to receive payments
The above functionality is excluded for now as it would likely add significantly to the cost. This can possibly be added in another release when there is broad support for this. The objective is to get the basic and most wanted functionality in the field in the short term.
Here is an use scenario to illustrate the functionality supported:
Alice want to pay merchant Bob. Bob only accepts Bitcoin. Alice scans the Bitcoin QR code and the App recognises a foreign coin. The App queries the latest Shapeshift rate and maximum allowed coins. Based on the rate the number of NBT required to pay is presented to Alice. Alice approves the amount and the rate and sends the NBT. The App shapeshifts the NBT into BTC and sends the coins to the designated BTC address of the merchant.
Before the transaction Alice has completed the field email address in Settings. When that is true the App sends Alice a confirmation of the payment (using Shapeshift API). This details the amount in BTC and NBT and the rate she paid which can be handy for bookkeeping. The value of the NBT transaction will be visible in her App. The merchant will get the usual confirmation(s) in his Bitcoin wallet and won't even know Alice paid from a non-Bitcoin wallet.
3. June/July 2015 Add capability to configure a secondary server or your own server in the App and adding feature to disconnect/connect app manually when in the background.
Ability to configure a list of servers for centralised block validation.
The app would download hashes from either a random server or from the top of a priority list (configurable option) and if the server is unresponsive it would download from the next in the list until all servers have been tried. This would enhance availability in cases where a centralised server may go down and will allow users to choose whatever server they would like. There's nothing stopping someone running their own server, in which case I would like to create...
An easy installation script for the server software.
Ideally new server software should be created without the use of Abe. Abe was mainly used due to familiarity and ease of development. New software can interface directly with the NuBits daemon.
Ability to switch between the production network and test network within the same application
4. Adding multi-sig and GUI support
This would likely require updating the repositories from upstream to the latest.
Adding multi-sig support to the Android interface
This is still a complicated process which requires a relatively complex user interface. This covers spending from a multi-sig address, receiving funds on a multi-sig address and creating a multi-sig address.
Pulling the latest features, updates and bug fixes from upstream
Check out the repositories of the Bitcoin wallet for the latest features https://github.com/schildbach/bitcoin-wallet and https://github.com/bitcoinj/bitcoinj
Please feel free to ask for other functionality. Simple requests should be easily added to one of the first four proposed releases. The definition of simple is strongly related to the cost to develop it.