OPTN - A Badger Mobile Wallet Rewrite by Bitcoin Bay

6 257
Avatar for lightswarm
3 years ago
Topics: Bitcoin Cash, BCH

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

Meetup

LinkedIn

Twitter

BlockHack 2021 (May)

5
$ 16.50
$ 10.00 from @Ekliptor
$ 5.00 from @blockparty-sh
$ 1.00 from @btcfork
+ 1
Avatar for lightswarm
3 years ago
Topics: Bitcoin Cash, BCH

Comments

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

$ 0.00
3 years ago

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

$ 0.00
3 years ago

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.

$ 0.00
3 years ago

For desktop, I would use either Electrum Cash or Electrum Cash - SLP edition.

$ 0.00
3 years ago

Very cool. I'd personally love to see the browser extension get some love too, maybe your next flipstarter? =)

$ 0.00
3 years ago

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

$ 0.00
3 years ago