The Badger Mobile wallet has been one of the earliest mobile wallet apps that supported SLP tokens and transactions. Written in React Native, it provides app builds for both Android and iOS platforms, and allowed an easy platform for developers to implement new transactional features. Many early development choices are still visible within the codebase, such as raw BitDB queries (and the associated output formatting). Unfortunately, while these choices worked at the time of development, many functional upgrades have been made to reflect on NFT tokens and overall performance. Additionally, many libraries use long-depreciated versions, particularly the BitBox-SDK
and React-Navigation
packages.
This Flipstarter campaign intends to raise development funds to rewrite the Badger Mobile wallet project. The aim is to 1) port over and update existing wallet functionalities and 2) to add in new features such as SLP (and NFT) token minting and CashScript contract support. Ultimately, we want to be able to relaunch the wallet onto the various app stores. The project will remain open-source under the existing MIT licensing throughout the development lifecycles.
Check out the Flipstarter campaign with the following link: https://flipstarter.optn.app
EDIT: We had an issue resolving the *.app domain name. We have redirected the flipstarter page to http://flipstarter.optn.tech/. Apologies for the confusion and inconveniences
Current Status
The rewrite effort is currently underway within the following repository
and is due to the dependency conflicts that kept arising from our CashScript integration for Badger Mobile. We have made an early demo APK of the CashScript integration, which can be found at the following link.
https://github.com/BitcoinBay/OPTN-Wallet/releases/tag/v0.1-CashScript
This release contains the last updated and working version of our CashScript integration for the wallet. It contains 2 CashScript contracts (a P2PKH-equivalent contract and a BIP38-like contract utilizing passwords) which can send and receive basic BCH payments. Internally, it is set up so that only the source contract application binary interface (ABI) and a working frontend interface is required to have additional contracts functional.
Currently, the repository for the wallet rewrite has transferred over most of the screen UI layouts and navigation routing, and is functional for wallet generation plus backup. The transaction and UTXO redux states have also been upgraded from the BitDB queries to reflect the BCH-JS API responses and MINT/NFT token transactions.
Package Dependency Updates
We have switched to using the BCH-JS
library and apis to handle keys, transactions, balances and broadcasting. Additionally, we included the slp-mdm
package to help create custom SLP transactions, including multi-recipient SLP transactions. This replaces the Bitbox-SDK
and SLPJS
dependency libraries that exist in the current Badger Mobile wallet.
The react-navigation
package has also been upgraded from v3.x
to v5.x
. React Navigation 5 has completely changed the API and structural setup to be more component-friendly with React. These changes have been functionally implemented, with minor bugs in screen transition from one stack to another.
Features & Roadmap
The core of the work will focus around the basic wallet transaction capabilities, supporting features such as the SLP TokenType-1 GENESIS
and MINT
transactions, and all the SLP-NFT transaction types. Additionally, we are looking to support multi-recipient output transactions as well as control over the input UTXOs. This is inherently needed for the various SLP transactions, such as the MINT
transaction and MINT
baton UTXO. Lastly, we want CashScript compatibility with the wallet in such a way that other people can contribute their own contracts to the wallet. We are aiming to build a repository of contracts, along with their respective frontend interfaces, that people can download from a fresh wallet install.
A more detailed table of features can be found on our Flipstarter page https://flipstarter.optn.app http://flipstarter.optn.tech/
Cost Estimates
3 months of 1 developer work to add in BCH features - 24 BCH
2 months of 1 developer work to add in SLP features - 16 BCH
2 months of 1 developer work to add in CashScript features - 16 BCH
1 month of 1 technical writing to add in Documentation - 8 BCH
Bug Bounty / QA and Contingency reserve - 11 BCH
Total is 75 BCH
Note: this cost estimate is based on a BCHUSD price of $625/BCH
What does OPTN stand for?
It is an abbreviated form of "Opt In". Before going about rewriting the Badger Mobile core code, it was a placeholder name to rebrand the Badger Mobile wallet after the development support ended in 2020. We chose this name to emphasize the user control we want to provide for people.
What is Bitcoin Bay?
Created in 2014, Bitcoin Bay is one of the oldest Bitcoin and blockchain meetup communities in Toronto. We incorporated into a startup in 2017, helping people and companies with blockchain expertise, development and investor relations. On top of our meetups, which we do every 2 weeks, we also organize the BlockHack Hackathons, whereby we aim to promote continued development of projects through investment funding.
your flipstarter has been down (expired?) for days now.
Either way I would really love to help with such a wallet. But I would love to have it for web too. Did consider react-native-web to render your components in HTML? (still requires some rewrites though mostly). Feel free to hit me up on telegram @ekliptor