OPTN - A Badger Mobile Wallet Rewrite by Bitcoin Bay
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 **https://github.com/BitcoinBay/rewriteOptn** 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. Our Links Website https://bitcoinbay.ca/ Meetup https://www.meetup.com/The-Bitcoin-Bay/ LinkedIn https://www.linkedin.com/company/bitcoinbay Twitter https://twitter.com/thebitcoinbay BlockHack 2021 (May) https://blockhack-2021.devpost.com/
6 comments
Very cool. I'd personally love to see the browser extension get some love too, maybe your next flipstarter? =)
I'm honestly not very familiar with extension development, but def can take a look at the repo. I know a lot of the Badger mobile wallet functions were directly ripped from the browser extension though so there should be enough similarities
It's cool. But I think a lot people would like to have the browser plugin/desktop wallet updated as well. BCH really misses a good desktop wallet with SLP tokens etc. The current Badget Wallet Chrome plugin is sorely outdated.
For desktop, I would use either Electrum Cash or Electrum Cash - SLP edition.
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
Thanks. We had an issue resolving the domain name. Just got another name and redirected that to the flipstarter ip address. I'll message you on telegram