Why did we create simple-bitcoin-wallet at Honest?

2018-12-02T18:56:41.000Z Honest Cash

I'm a quite experienced software engineer but I am relatively new to blockchain technology. I consulted companies about web technologies, build digital products, managed and trained developer teams. Personally, I see bitcoin space as a very hard space to enter from a technical point of view. It's not like starting to build a website or write a smart contract (not yet).

It makes me wonder because the complexity of the underlying technologies is not necessarily higher than the complexity of an HTTP protocol. And we all know that it is quite easy to build an API or a website. It's because of all the available resources out there.

Missing developer tooling

It's plain simple. Bitcoin ecosystem is missing developer tools. Libraries are missing. Libraries that hide the complexity and expose high-level interfaces.

Bitbox is a great effort to bring more developer friendliness to this space. Still, making a transaction with Bitbox for a (web) developer that is new to bitcoin can be quite cumbersome.

Start building a wallet in under 5 minutes

When we were creating the wallet for Honest Cash we made the call to extract the blockchain integration completely from the code into a completely separate package: simple-bitcoin-wallet (published on npm). The main goal of this package is to give the developers high-level and easy to interact with interfaces:

1. Bootstrapping the work with Bitcoin blockchain (yes, it can be that easy):

2. Creating a new wallet

const simpleWallet = new SimpleWallet();
console.log(simpleWallet.mnemonic);
console.log(simpleWallet.cashAddress);
console.log(simpleWallet.legacyAddress);
console.log(simpleWallet.privateKey);

3. Sending transactions

const receivers = [
    {
        address: "bitcoincash:qp2rmj8heytjrksxm2xrjs0hncnvl08xwgkweawu9h",
        amountSat: 1000
    }
];

const tx = await simpleWallet.send(receivers);
console.log(tx.txid);

4. Uploading data on the blockchain

const data = {
  title: "Hello wordl",
  body: "Hello world",
  author: "honest_cash"
};

const meta = { title: "hello wordl", extUri: "https://honest.cash" };

const { fileId } = await simpleWallet.upload(data, meta);

You can explore the whole package here: https://www.npmjs.com/package/simple-bitcoin-wallet

Why Bitcoin Cash?

We decided to work with the Cash (BCH) flavour of bitcoin exclusively because of:

1. It has the best developer support trailing only the Ethereum ecosystem.

2. It costs almost nothing to do transactions and it has most convincing scaling proposals.

3. Open standards

4. Other bitcoins flavours are either broken, corrupted or scam.

5. The people I know from the ecosystem believe in permissionless digital cash for the entire world. You want to have this positive vibe. And it fits much more our Honest vision.

Honest bets on Bitcoin Cash as the blockchain with the biggest growth potential. I believe that the growth will be driven by a number of applications that will be built on top of it.

Our contribution to the ecosystem is to give back the learnings and the libraries so it gets easier to build applications and customer-facing products.

Just think about it. Honest hitting 1MM users, every user making 3 upvotes a day and a 1/10th of them submitting a story a month. This makes up for around 40MM transactions a month which is 15 transactions a second.

I say we just need one or two killer applications to trigger a wave of new applications being built on BCH and a global adoption.

Hopefully with simple-bitcoin-wallet :)

Responses


My honest.cash wallet is still with ballance 0

by @Telesfor

It's a good idea with honest.cash, yours.org ist unfortunately broken and doesn't support BCH anymore. Unfortunately I can not  upvote. I connected my bitcoin.com wallet with my mnemonic seed, but my balance on honest.cash is 0 BCH. If I click on btc.com or blockchair I see my confirmed balance. What am I doing wrong?


Bitcoin.com and Honest wallet

by @honest_cash

Ihr Wallet bei bitcoin.com beinhaltet viele Addressen, die aus der "Mnemonic" bzw. Sicherheitsphrase generiert werden. Bei Honest, wir generieren nur eine Addresse und zwar die erste (mit dem Index 0). Es kann passieren dass diese Addresse kein Saldo ausweist. Wir würden Ihnen empfehlen einen neuen Wallet zu generieren und einen kleinen Betrag in BCH darauf zu überweisen.

Wir ünterstützen Transaktionen mit 0 Bestätigungen. Das heißt, dass Sie direkt die Stories ohne Wartezeit upvoten können.

Falls Sie weitere Probleme haben, können Sie uns unter info@honest.cash erreichen.

Beste Grüße aus Heidelberg!


Danke für die Antwort

by @Telesfor

Vielen Dank für die Antwort. Das Problem besteht nur mit Android und Chrome. Ich nutze jetzbt einen anderen Browser und jetzt funktioniert es.


Maybe this...

by @danigocrypto

Missing developer tooling

by @tom

Great work on Honest, loving it and so happy to see it grow every day/week!

You make a point about developer tooling being missing, and this is something I completely agree with and have been trying to work on for months/years. The tricky part is that to do it properly you need to start at a low level base. Which in the Bitcoin space is a fully validating node (typically running in the cloud).

My hope is that we can create one (set of) tools that developers can go and find. The point of there being one place is that lots of people create partial solutions which are not integrated and in the end they are not helpful.

I'm not a Javascript developer, but I do know about APIs and architecture. So while my hope is to get a good set of well integrated libraries and tools on flowee.org and allow people to find well integrated tools, all in one place. The best tools are those that are in production and done with people with the most experience in a certain language.

If you are looking for a place to maintain your library, one that allows other developers to find it easier, please consider using a new product on the Flowee gitlab group.