Launching Casa

It was one of the wildest 9 month periods of my life. Made a big leap stepping away from Fount to join Casa full time. We built several prototypes before landing on one that raised a seed round, saw Bitcoin hit $20k at around the same time, built our production app, flew to Berlin to pitch it, and signed our first customers. Oh, and my wife had a baby.

The clock was ticking. It was October 2017 and we only had a few months of runway before the company was out of cash.  LS and I were building a proof of concept home node – a consumer-friendly device capable of running multiple blockchains. After weeks of banging our heads against the wall, we were finally able to get 3 chains running reliably on a single Raspberry Pi 3.

When you don't have a heat sink, a ziplock bag full of ice can do the job.

We even built an iOS and web app for view activity, connection status, and interacting with RPC interfaces.

iOS App connected to Live 'Casa Block'

This was the first Casa plug-and-play node (but not the last). By the end of October, we had a stable operating system. We cloned the software, assembled about 20 nodes, and shipped them out across the country. Meanwhile, JW was flying all over to meet with investors and demo the device.

Subsequent version of the 'Casa Block' iOS App

There were pockets of interest, but sadly our impressive prototype failed to bring home new investments.

That brings us to November. It was back to the drawing board. We were exhausted. The Casa node was the third major product iteration we'd pivoted towards in so many months, and the idea of scrapping our work again had me wondering whether it made more sense to just hang it up and give investors back what little money remained. The odds of our startup surviving long enough to raise a round were probably 1:100, but that was enough for one final hail mary.

There was one final problem we decided to take swing at – private key management. Months earlier we realized this was a major problem as we designed a smart contract protocol for home-sharing and we'd just encountered it again while working on the home node. There was simply no existing software that made it easy for non-technical people to manage their private keys. This was nowhere near as exciting as designing a home node, but there clearly seemed to be a need so we started work. Fundraising typically needs to happen before Thanksgiving, so we had about three weeks to build a consumer-friendly key management solution for Bitcoin.

Early whiteboard sketch of keyshield

LS, JW and I went hard into research mode. We spent a few days compiling all existing software, reading technical papers, and hacking on established solutions like  Shamir's Secret Sharing Scheme (SSSS) and Glacier Protocol among others.

After weighing the existing approaches, we decided that a user-friendly version of something like the Glacier Protocol would strike the best balance between usability and security. We would be creating our own 3-of-5 multisig service (originally called for a 4-of-6 approach) and super smooth mobile app for key management.

The Casa Key Shield was born (see the updated Wealth Security Protocol).

Early mockup of Casa Key Shield

Here we were, building a bitcoin focused business with minimal runway remaining, and VCs were going home for the holidays. In Q4 of 2017, Bitcoin was old news to most VC funds. There was so much noise around ICOs, tokens, Ethereum, . ... Venture Capital was pouring money into anything related to an ICO, SAFT, CryptoKitties, etc... It was the whole Blockchain-not-bitcoin trend...  Most believed Bitcoin was destined to the fate of MySpace where ETH or something else would be the Facebook.

It's a miracle we were able to pull this off. In less than a month, we built a barebones prototype, JW made a final round of 11th hour pitches, and we got our first investment. After that first check, we had some breathing room to refine the pitch, work on hardware device signing, and add more polish to the iOS app. Within a few weeks, we were able to close the rest of the round.

By late December/ early January, we were getting into the weeds – working on technology that no one had built before. I was in uncharted territory working on the nuances of hardware signing over a web client. At one point, I probably spent 50 hours staring at hexadecimal signature output.

So many hardware devices to test

I had to go into Rambo Hacker mode to figure this one out. It was an error specific to Testnet transactions when using Trezor's JavaScript library.

Really deep in the weeds debugging hardware signing quirks.

Once I applied the fix, I also had to copy and modify the Trezor Chrome extension to bypass whitelist rules. JW even managed to give a few investor demoes with that hacked together chrome extension. Fortunately, Trezor approved my fix and merged it within a few weeks. 💪

Fix Signing of Multisig Testnet Transactions by nickfogle · Pull Request #100 · trezor/connect
This addresses the "Invalid network value" error described in #81 (comment).When using https://connect.trezor.io/4/connect.js and attempting to sign a multisig testnet transaction, HDNod...

NOW IT WORKS.

Early version of iOS Keymaster

We got a fully functioning app working just in time for a meeting with Lopp. JW, LS, and I planned to show off what we were building and pitch him on joining Casa. Of course we got a freakish snowstorm the day before we're supposed to go on our road trip.

Wild snow storm and icy roads almost put a damper on our impromptu recruiting trip.

But did dangerous icy roads stop us?

Final prep for morning's pitch and triple bunking-it for the night.
Technical overview, Keymaster demo, and Casa pitch.
Grabbed donuts on the way.

I still think it was the donuts that proved most persuasive in getting Lopp to join.

We kept building throughout January. On Jan 26th, I sent our first 3-of-5 transaction over mainnet.

{{title}} {{sandboxTitle}}{{current_page.title}} - Smartbit
{{metaDescription}}

Through February, it was full steam ahead to have a production app ready to demo for Blockstack Berlin. Time remaining - 5 weeks.

Testing. Testing. And more testing. We had 3 environments and mobile apps for each one. The possibilities became seemingly endless as we tried a variety of hardware devices and web browsers.

So much testing!!!

In fast-paced startups, you've gotta work whenever you can.

That might mean working on low-hanging UI issues from beside my wife's hospital bed. It was her first pregnancy and she had a scare with our son which sent us to the hospital one evening. Turned out everything was fine, but once you're admitted, you're basically stuck there for like 5 hours so gotta make use of my time.

Polishing up hardware signing from the hospital

Finally, it was time for Blockstack Berlin.

I drove to Atlanta and boarded my flight to Berlin (by way of Istanbul 😖)

In hindsight, ATL to Istanbul was not ideal. Longest Flight Ever...

One day of flying later...

Berlin.

Exhausted from travel, but the conference started the next morning. Ran through one final transaction before going to bed. Success!

Was up early and running more test transactions with JW before his pitch. We decided to do a large BTC donation from the app as part of the demo, and minutes before our time to present, we couldn't figure out why the QR reader didn't work. After a few moments of sheer panic, we realized it wasn't a problem with the app. The pitch and live demo went better than expected. See full video below.

We returned from Berlin amped and ready to keep building. We kept the momentum going with a team retreat to get everyone together for the first time. We rented a beach house and made that our HQ for a week. LS, JW, and I see each other daily but it was a nice opportunity to work out of the same space as Scott and Lopp. Got everyone synced on vision, security, infrastructure, and managed to write quite a bit of code. Also found time to hit the shooting range, play some competitive N64 (Lopp destroyed us on GoldenEye), and take advantage of an elite hot tub.

April sort of marks the end of that first era in Casa's life. The app worked, we had a growing customer list, and we even managed to add Segwit support before Coinbase and many of the big players. It was time to grow the team by bringing another Nick (Neuman) for Product and Carolyn to help us with Ops.

Growing Fast

That first 9 month period at Casa was one of the most mentally challenging in my life. I'd just bought a house and was taking a big risk, stepping away from my cushy Fount gig to join Casa full time. With minimal runway, we iterated through multiple products/ prototypes before finding one that got us seed funding. AND these months happened to be during the peak heat of 2017 bull market. After the seed round in January, we went into crazy buidl mode on our production app with just 2 of us. Then we flew to Berlin to pitch it and signed our first customers. Couple all that with my first child being born and still needing to spend 20-30 hours per week on Wavve... I really don't know how I kept my sanity. 🤯