The Wait is Over! Buy & Sell is Coming to America

Earlier today, we announced a partnership with SFOX that lays the groundwork for our users in the US to seamlessly buy and sell digital assets with greater reliability and without compromising user security or control.

At Blockchain, we are on a mission to build an open, accessible, and fair financial future, one piece of software at a time. This announcement brings us one step closer to realizing that mission by making the exchange of digital assets fast, easy, and inexpensive for millions of users across the US.

Starting today, users in 22 states will have the option to sell bitcoin quickly and easily.

 

A product shot of Blockchain's new integration that allows users in America to sell bitcoin.

 

And this is just the beginning; in the coming weeks, users will also be able to buy bitcoin, and buy and sell other assets like ether and Bitcoin Cash. As always, we’ll keep you posted while we roll out these features. In the meantime, we welcome your thoughts on how we can continue to improve.

Not in the US? Users in Europe and India are already able to buy and sell bitcoin. As we continue to expand to new countries, we’ll keep you in the loop here and on Twitter.

Don’t have a Blockchain wallet? Sign up to get started with bitcoin and other digital currencies today!

Building Cryptocurrency Agnostic Components in My-Wallet-V3 and My-Wallet-V3-Frontend

At Blockchain, we’re striving to write reusable, extendable, and flexible code. This practice has become even more important with the recent addition of Bitcoin Cash and ether to our wallet application. For our users, adhering to writing agnostic components makes project delivery speeds faster and more consistent. For our developers, it makes the code fun to work with and less buggy.

A few months ago, we added ether to the Blockchain wallet along with a crypto-to-crypto exchange integration. This feature was the first we’ve built that supports multiple cryptocurrencies (instead of just bitcoin to fiat or vice versa). In our efforts to build reusable, extendable, and flexible code we built it to support any digital currency our wallet currently offers or will offer in the future.

The components that make up our exchange integration are completely agnostic to the currencies the user wishes to shift. Any digital currency can be plugged into the integration as long as it’s “API” in the My-Wallet-V3 core supports a few basic functions. Let’s walk through how this works a little bit.

When the wallet initializes the exchange checkout process it passes the destination and origin wallets to the shift-create component from the shapeShiftCheckout controller:

My-Wallet-V3-Frontend/assets/js/controllers/shapeshift/shapeShiftCheckout.controller.js

...
this.wallets = Wallet.accounts().concat(Ethereum.defaultAccount);
...

And in My-Wallet-V3-Frontend/app/partials/shapeshift/checkout.pug

...
shift-create(wallets="vm.wallets")
...

Note: There are more attributes passed to the shift-create component, but for simplicity I’ve removed them.

The line in shapeShiftCheckout.controller.js (`this.wallets = Wallet.accounts().concat(Ethereum.defaultAccount);`) was for shifting between bitcoin and ether when we initially launched the ether integration. What it does is concatenate all the bitcoin wallets in your Blockchain wallet with the ether default wallet. In checkout.pug, we tell shift-create to load these wallets as possible origins and destinations in an exchange.

A few months later, we added full support of Bitcoin Cash to our wallet. We wanted to give users the ability to exchange their Bitcoin Cash to and from bitcoin and ether. Here is the commit that added Bitcoin Cash to our exchange integration: https://github.com/blockchain/My-Wallet-V3-Frontend/commit/0c44b5bca7951a9a298d5599d5fd872b0eff5de5.

-this.wallets = Wallet.accounts().concat(Ethereum.defaultAccount);
+this.wallets = Wallet.accounts().concat(Ethereum.defaultAccount).concat(MyWallet.wallet.bch.accounts);

Adding Bitcoin Cash was as easy as changing one line of code because we built cryptocurrency agnostic components for exchanging bitcoin <-> ether from the beginning.

If you check the shift-create component where the wallets are passed, you won’t find any reference towards a specific cryptocurrency itself: (https://github.com/blockchain/My-Wallet-V3-Frontend/blob/master/assets/js/components/shapeshift/shift-create.component.js). You’ll only see functions called on the wallets that the API in My-Wallet-V3 core requires them to have.

  1. `getAvailableBalance` -> How the component calculates the total amount the outgoing wallet has available to send/exchange. Below are the functions for each cryptocurrency:
    1. bitcoin: https://github.com/blockchain/My-Wallet-V3/blob/master/src/hd-account.js#L311
    2. ether: https://github.com/blockchain/My-Wallet-V3/blob/master/src/eth/eth-account.js#L138
    3. Bitcoin Cash: https://github.com/blockchain/My-Wallet-V3/blob/master/src/bch/bch-account.js#L68
  2. coinCode -> The wallet’s coinCode to be used later in the cryptoCurrencyMap.
    1. bitcoin: ‘btc’
    2. ether: ‘eth’
    3. Bitcoin Cash: ‘bch’
  3. Balance -> Used to check for balance updates in the wallet. If a user’s balance changes, the component calls getAvailableBalance.
  4. cryptoCurrencyMap -> Used to calculate conversions between each digital currency and their fiat values.

When everything comes together, the final result looks like this:

Screenshot of initial Blockchain exchange integration using agnostic components

Despite the ease of adding new currencies, we wanted to continue improving the exchange experience for our users.

In version 1 of our exchange integration, there was no loading state to tell users that the component was working on getting a quote. Under good network conditions requests like these can seem instantaneous and a loading state might even seem a little jarring. However, because of the high traffic on digital currency networks, requests can take up to 5 seconds to resolve. Bitcoin, ether, Bitcoin Cash, and other digital currencies are handling more transactions than they ever have before. Record high transaction volumes are leading to network congestion, in turn leading to slow loading times from services like ShapeShift.

Depending on how long a request took to make, it could look like the component was frozen or that something broke and no error was returned. In reality, a request was being made and we weren’t correctly indicating that to the user. We decided to add a loading state to the component as you can see in version 1 vs version 2 below.

GIF showing Blockchain's initial exchange integration using agnostic components with a loading screen
Version 2
GIF showing Blockchain's initial exchange integration using agnostic components without a loading screen
Version 1

 

 

 

 

 

 

 

Users were relieved to see an indication of the app working to get a quote after the launch of version 2. Our transaction volume increased by 10% the week after we rolled out these changes, ~30% over the 2 weeks after, and 75% over the following month. Seemingly small improvements like this make a big difference to users.

Building components that are resilient to cryptocurrency’s rapid growth and constant change is just one of the many ways we ensure our users are getting a best-in-class experience on our platform. We hope you’ve enjoyed learning a little more about our process and look forward to continuing to deliver new and innovative solutions in our effort to create an open, fair, and accessible financial future.

Sound exciting? Check out our open positions available to join our incredible UX development team.

Product Update: Q4 2017

Amidst holiday festivities and New Year’s preparations, we want to quickly revisit the assortment of great new features that made their way into the Blockchain wallet during Q4. Grab a fresh mug of hot cocoa (and maybe that sugar cookie you’ve been eyeing) and we’ll get into all the exciting Q4 product update details.

Read more “Product Update: Q4 2017”

A Look Back: Blockchain’s 2017 Year in Review

There’s no doubt that we will look back on 2017 was one of the most exciting and important years for the digital assets ecosystem. Together we made significant progress and are even closer to a fairer financial future.

We want to thank all of our customers, our team, and the industry for making 2017 such a memorable one. Blockchain wouldn’t be where it is today without all of you and we look forward to continuing to serve you in the years ahead!

Introducing Our First Dedicated Open Source Developer

It’s a great joy to welcome (back) Sjors to the family. Sjors joined our team as one of our earliest engineers and was at the center of rewriting and scaling our web wallet for three years. After some time off for exploring, Sjors has decided to focus on open source protocol development. I know he’ll bring a valuable perspective from his time working on our platform.

Sjors has been passionate about contributing to open source for a long-time. In fact, that’s how we met him – he made a pull request on an early version of our iOS wallet. He’s already contributing to Bitcoin Core and has previously run some really fun smart contract experiments on Ethereum.

We want to make sure Sjors is independent, so we’ve been clear that:

  1. Sjors is sponsored for the work and is an independent from our main engineering team
  2. Sjors can work on any protocol that we’re currently supporting on our wallet
  3. Everything Sjors does under the sponsorship is open sourced

Sjors has already had a tremendous impact on the way millions of people use digital currencies, but I’m excited to see him continue making that impact, across an even greater user base by shifting his focus to the protocols themselves. To the OS community, you should know you’re getting one of the best – a person I don’t always agree with, but a person whose opinion I’ve always found to be of the highest quality, and whose integrity is without a doubt.  

5 Holiday Tips for Bitcoin Enthusiasts (or How to Get Your Family Excited About Bitcoin)

Market value isn’t the only reason digital assets like bitcoin stand out, but it’s certainly a newsworthy conversation starter. As you catch up with family over the holidays, bitcoin’s epic 2017 price increase will likely be a hot topic. To entertain their curiosity, we’ve got the following holiday tips to get your loved ones as excited about bitcoin and digital assets as you are.

Read more “5 Holiday Tips for Bitcoin Enthusiasts (or How to Get Your Family Excited About Bitcoin)”

Cash in on Bitcoin Cash

At Blockchain, we’re always looking for ways to empower our users to interact with the digital economy in new, meaningful ways. In November, we revealed our plan to deliver on the growing demand we’ve seen for Bitcoin Cash. Starting today, we’re supporting Bitcoin Cash with full functionality through the same web wallet users know and love.

With Bitcoin Cash joining our existing lineup of digital currencies, users now have a full suite of options and can easily toggle between digital currencies to send and request funds, safely manage balances, and monitor market prices – all from one central place.

If you had bitcoin in your Blockchain wallet prior to August 1st, get excited because you’ll see an equal amount of Bitcoin Cash in your wallet now! New to Bitcoin Cash? Users can get started by simply trading bitcoin and ether for Bitcoin Cash using our exchange integration.

Just like with bitcoin and ether, users hold their Bitcoin Cash private keys, meaning they always have full, exclusive access to their funds with their backup phrase.

Not on web? Don’t fret. We’ll be rolling out full support for Bitcoin Cash on mobile by the end of Q1 2018. We’ll keep you in the loop here and on Twitter as we continue to build on this new addition to our wallet. Still have questions about how Bitcoin Cash works in your Blockchain wallet? Visit our Support Center.

Don’t have a Blockchain wallet? Sign up to get started with Bitcoin Cash and other digital currencies today!   

11 Festive Bitcoin-Friendly Gift Ideas for the 2017 Holiday Season

Since our first Bitcoin Holiday Gift Guide, digital currency has continued to transform the world of online payments and e-commerce. This year we’re excited to bring you a festive mix of gift ideas that will help you spread the joy of Bitcoin this holiday season.

Read more “11 Festive Bitcoin-Friendly Gift Ideas for the 2017 Holiday Season”

Set it & Collect it with Recurring Orders

At Blockchain we’re always looking for ways to make digital currency more accessible. It’s part of our commitment to creating an open, accessible, and fair financial future – and helping you, our users, Be Your Own Bank™.

Today, we’re excited to introduce Recurring Orders, a new feature that gives our European users greater purchasing power by allowing them to automatically buy bitcoin on a regular basis. Whether you’re just getting started or regularly purchase bitcoin, this feature will make it even easier to invest little by little in a better financial future.

Here’s how it works:

  • Log into your Blockchain wallet
  • Select ‘Buy’ powered by Coinify
  • Enter the desired amount you’d like to purchase with your credit card
  • Select ‘Make this a recurring order’
  • Choose your frequency whether on a daily, weekly, or monthly basis
  • Select the duration you’d like the recurring order to last (you can cancel anytime!)
  • Then click ‘Buy Bitcoin’

Taking small, incremental steps can add up to big results over time. With recurring orders, you can find your comfort zone and watch your wallet accrue additional bitcoin – without having to worry about a large upfront cost.

Log-in or sign up at www.blockchain.com to get started with recurring bitcoin orders on web or mobile today!

Forking, Cashing, and Witnessing

At Blockchain, our priority is always our users and the safety of their funds. We recently communicated that our service would be unavailable during the Segwit2x hard fork. While plans for the hard fork have been suspended, there may be some network instability at block height 494,784.

We’ll be monitoring the network closely. Should network instability threaten the safety of our users’ funds, we may briefly suspend outgoing bitcoin transactions but anticipate any suspension to last no more than 1 hour.

Moving forward, we are prioritizing two major initiatives to improve our users’ experiences in the digital currency ecosystem:

SegWit

Our block explorer, Blockchain.info, has supported SegWit from the day it activated. In 2018 we will be rolling out support for SegWit within our wallet products. This will be a major and complex update to some of the most sensitive parts of our codebase, across a wide variety of platforms and devices, affecting billions in user transactions with potentially significant privacy implications. We will do this cautiously but also with consideration for the rising miner’s fees within the bitcoin ecosystem. We are excited about the advances SegWit offers and we plan to begin making it available within our wallets in as soon as possible in 2018, with an eye towards rollout in Q1.

Bitcoin Cash

We launched partial Bitcoin Cash support on October 11th and said we would monitor market demand for fully featured support. Market demand for Bitcoin Cash has proven strong and, in our view, it’s likely here to stay.

We plan to offer full support for Bitcoin Cash before the end of year on web with support across all our platforms before end of the end of Q1 2018. Stay tuned for product launch announcements!