STORY
Dreams to Reality: Presenting Kumuly's Bitcoin Expedition
AUTHOR
Joined 2023.10.02
DATE
VOTES
sats
COMMENTS

Dreams to Reality: Presenting Kumuly's Bitcoin Expedition

Hi everyone!

In this post we would like to share some of the journey we have been on with Kumuly and express what the Legends of Lightning Tournament means to us.

Let's start from the beginnings.

The Genesis of Kumuly

In the closing months of 2021, Kumuly was conceived. At that time, a group of friends and colleagues in Medellin, Colombia, envisioned an all-encompassing Bitcoin app for everyday use and for merchants to embrace Bitcoin and the Lightning Network in an original way.

From the start, our focus has always been on user experience. We aspired to make Bitcoin transactions as intuitive as sending messages on WhatsApp. Our unique approach hinged on the Lightning Network, allowing for spontaneous payment requests by encoding invoices in keysend TLV data. This feature enabled users to both send and request payments spontaneously to their contact list like some kind of chat.

Furthermore, users could share their node ID with their preferred merchants. This allowed merchants to send tailored invoices for promotions or products, enhancing the customer experience. To incentivize users, merchants could send a considerable amount of sats with the keysend they would send their promotions with, turning promotional messages into earning opportunities for their customers. And with the choice to share node IDs resting with the users, spam was effectively curtailed.

Wallet Features and Challenges

Aside for the contacts and promotions features, our ambition was to integrate both a Lightning and an on-chain wallet. Drawing inspiration from local terminology, we labeled the Lightning wallet as “monedero” (Spanish for coin purse) and the on-chain wallet as “ahorros” (meaning savings). However, the journey wasn't without its challenges. We had to navigate the complexities of building a non-custodial Lightning wallet, an on-chain wallet, and various merchant-centric features in a decentralised way running on a phone. All this while grappling with the nuances of getting a non-custodial Lightning node operational on mobile and acquainting ourselves with Lightning's liquidity intricacies.

Technical Hurdles and Progress

Our initial efforts led us to LND’s mobile package in Golang for the Lightning node implementation. While we successfully integrated it into our Flutter app, we faced limitations in configurability and observed that the package was resource-intensive for low-end phones at that moment. This prompted us to explore the Lightning Development Kit (LDK). Additionally, we identified scalability issues when sending promotions to multiple users, since for the same promo a different invoice had to be generated to send to every user, indicating a need for solutions like BOLT12.

A Pause in Our Journey

Life, with its myriad responsibilities, coupled with financial constraints and our bootstrapped status, made it challenging to sustain momentum. Thus, we decided to take a hiatus from active development for a while.

For a glimpse of our journey's outcome at that stage, check out one of our development progress demo's from that time: Demo Wallet App 2022

From Bootstrapped Beginnings to Bitcoin Dreams

The journey of a bootstrapped venture is never without its challenges. Balancing personal commitments, work, and financial constraints can be a tightrope walk. As a result, since the pause, not all original team members are actively involved anymore. While Kumuly's roots trace back to Colombia, it now stands as a single-owner entity, established in Belgium. Currently, Kumuly sustains itself by offering general software development services. However, our passion lies in building our own Bitcoin products during our free time. The ultimate dream? To fully immerse ourselves in the Bitcoin space, focusing solely on our proprietary Bitcoin projects.

Refining Vision: Kumuly's Year of Exploration and Adaptation

On a technical level, 2023 has been mostly a year of learning, investigating and experimenting. Going from learning more about mobile development to delving deeper into Lightning, to experimenting and making our first small contributions to LDK and BDK, to building some very basic wallets with them, for example this one: https://github.com/kumulynja/ldk_node_flutter_demo

But being pretty user and UX focused, and feeling better equipped now technically, we wanted to build a product again. The idea of an e-commerce/delivery app with a built- in non-custodial Lightning node came up. This led to the conceptualisation of a “Store” platform. We developed backend services and a proof-of-concept for a "Login with Lightning" feature to be able to combine the decentralised nature for the user to control its funds with a backend and authentication to manage other data, such as store products.

However, a full-fledged e-commerce and delivery platform would again be quite a big challenge considering our resources. It wasn't a project we could rapidly finalise to a standard we'd be proud to unveil to the public and be used by real end-users.

Then, the Legends of Lightning v2 Tournament appeared on our horizon. This opportunity to publicly build and showcase our work over three months, while garnering feedback from prominent figures in the Bitcoin community, was too enticing to ignore.

We revisited our e-commerce concept for the tournament, scaling it down to enabling merchants to send bitcoin-only claimable promotions. Interestingly, this brought us back to our original app idea. Instead of the previous keysend method though, which targeted only past customers, our new approach will manage all promotions in our backend through a Lightning Login. This will ensure visibility of all promos for all users, utilising LNURLpay links for each promotion instead of individual invoices for every promo for every user, which didn't scale well.

In future iterations, we might use a Nostr account for each merchant. This would allow them to publish their promos and products. Additionally, we're considering the use of BOLT12 offers instead of LNURLpay. This shift would eliminate the need for a centralised backend. However, we're cautious not to repeat past mistakes of aiming too high too quickly.

Drawing from our initial "Monedero/Coin purse" concept for the Lightning wallet, we also wanted to use a symbol to transmit that this app is for money you want to spend, not save - just like pocket money. Thus, Kumuly Pocket was born.

Kumuly Pocket

While our journey has been extensive already, Kumuly Pocket is a new project that emerged from the desire to participate in the tournament. Although it will implement a similar idea to a previous endeavour, our approach will be totally different. We're starting from the ground up, new designs, new implementations, leveraging the Breez SDK this time around.

Drawing from our past experiences, we now feel better equipped to create functional iterations swiftly, and the scope is sufficiently limited to being able to build it with our current team - one developer and a UX designer.

Development of the app can be followed here: https://github.com/kumuly/kumuly_pocket
And the construction of a basic prototype is available on Figma: https://www.figma.com/file/pueovMNLdOGP4ZW75zUnwX/Kumuly-Pocket-proto-v1?type=design&node-id=1%3A489&mode=design&t=wdoP2s5uBzNU8hk9-1

Legends of Lightning v2: A Fresh Start

The hackathon has already been transformative for us. It's shifted our mindset from seeking perfection and wanting too much at once to valuing feedback and iterative development. Winning the tournament would be a significant turning point. It would allow us to lessen our full-time dependence on “fiat” jobs, enabling us to wholeheartedly dedicate our energies to building out Kumuly Pocket to a mature and reliable product.