I want to start with the part that still makes me grin.
Women in Tech Malawi now accepts Bitcoin over the Lightning Network. Somebody in any country can support the organisation in a few seconds, for a fee measured in fractions of a cent, without a card, without a bank, without a wire transfer that takes three days and arrives smaller than it left.
I built that today. The same week I learned what a node was.
That is the honest headline of my time at the Lightning Developer Bootcamp run by Africa Free Routing here in Kigali. Not "I attended a bootcamp." Something I did not understand on Monday is running in production on Friday.
Here is how the week went.
Monday: the terminal
Day 1 was setup, and it nearly finished me. We compiled Bitcoin Core from source, which took the better part of an hour of my laptop making noises I had not heard before. Then we set up a private test chain, created wallets, and mined coins.
The moment that broke my brain open was small. I mined 101 blocks, each one paying a 50 BTC reward, then when I checked my balance it was 50 and not 5050. Nothing was broken. Newly mined coins cannot be spent for 100 blocks, because blocks sometimes get orphaned and the network needs a buffer before that money starts moving through the economy. Every single rule in Bitcoin is like this. It looks arbitrary until you find the specific attack it was designed to prevent.
I wrote that day up in detail, because the commands are easy and the reasons are where the learning is.
Tuesday: it was an API the whole time
Day 2 had two halves and both of them reframed something.
First we built a blockchain explorer in Python. And in the process I found out that `bitcoin-cli`, the command I had been typing all day Monday, is not doing anything clever. It wraps your command in JSON, sends it to a web server that has been running on your own laptop this entire time, and prints whatever comes back. That is it. That is the whole thing. Which means every Bitcoin application that exists, every exchange, every wallet service, every block explorer, is talking to a node through a door I can open myself. "Building a Bitcoin application" stopped sounding like something other people did.
Then we mined for real. Not the instant, difficulty-set-to-zero mining from Monday, but actual proof of work on a shared chain, competing against everyone else in the room, with a pool splitting the rewards. The best five minutes of the week happened here. The instructor plugged in a Bitaxe, a small dedicated mining device. Room hashrate jumped roughly forty thousand times, instantly. Block times did not change. At all.
Difficulty simply rose until the blocks kept arriving every thirty seconds. Watching a number climb on screen while the thing it controls refuses to budge taught me more about Bitcoin's design than any explanation had. The network does not care how much power you throw at it. It measures, it adjusts, and the schedule holds.
Wednesday and Thursday: Lightning
Then we got to the thing the whole week was building toward: LIGHTNING (Okay, I just needed a dramatic effect and since I cant do drum rolls on paper, caps will do)...
Lightning solves a problem that is obvious once someone says it out loud: every on-chain Bitcoin payment has to be broadcast, checked by every node on earth, and stored forever. That is an enormous amount of ceremony for buying a coffee. But you only need the blockchain to settle disputes. Not to record every single payment.
So two people lock funds into an output that requires both their signatures, then exchange signed updates between themselves without broadcasting any of them. Alice pays Bob. Then again. Then a thousand more times. All of it instant, all of it free, none of it touching the chain. When they are finished, they broadcast the final state. Two on-chain transactions, unlimited payments in between.
The piece I found genuinely elegant is how a payment routes through a stranger without them being able to steal it. It is called an HTLC, and the trick is that the payment is locked to a secret only the final recipient knows. The person in the middle only ever pays out after learning the secret that lets them collect from the person behind them. They cannot take the money and run, because taking the money is what reveals how they get paid.
Nobody in the middle can steal. Nobody can be left holding the bag. Either the whole route settles or none of it does.
I set all of this up locally with Polar, opened channels, created invoices, watched payments settle in under a second, and broke it in about nine different ways. (Channels that would not open. Nodes that refused to talk. A whole afternoon lost to typing `incli` instead of `lncli`.)
Friday: the hackathon
We ended the week building.
My team made Lightning TipJar, an application that lets anyone send sats to a creator, developer or worker over Lightning. React and TypeScript on the front, Node and Express on the back, Blink handling the Lightning side.
The Lightning part works. You can open someone's page, pick an amount, add a message, and send. The part we did not finish is the part that actually matters here... The plan was for the recipient to convert those sats into Rwandan Francs and withdraw through Mobile Money. We did not get that leg working in the time we had.
Another team did.
That gap is the most interesting thing I am taking away from this week, and I think it is the real story of Bitcoin in this region. Almost every Lightning demo stops at "you can receive sats." Receiving is not the hard part. The hard part is the off-ramp: turning that value into something you can spend at a shop, on a phone, in the currency where you live. Until that leg is solid, Lightning is a very fast pipe into a room with no door.
We are going to keep building it. TipJar is not going to stay a hackathon slide deck. I want the whole flow working end to end, because an idea that only exists in a presentation is not a solution, it is a wish.
And then there is the button
Separately from the hackathon, I added Lightning payments to womenintechmalawi.org.
I want to explain why this one matters to me more than anything else I did this week.
Women in Tech Malawi is an organisation I founded. It runs on goodwill, volunteer time, and small contributions from people who believe in it. And for years, the practical answer to "how do I support you from another country" has been complicated. International cards do not always work. Transfer fees eat small donations alive. Somebody wanting to send the equivalent of ten dollars often finds it is not worth the friction.
Now there is a Lightning option. Send sats, arrives in seconds, costs almost nothing, works from anywhere. That is not a hypothetical use case pulled from a whitepaper. That is a specific problem I have personally had, solved with something I learned five days ago.
This is what I think people miss when they talk about Bitcoin in Africa. The interesting question is not the price. It is not speculation. It is whether a small organisation in Malawi can receive support from someone in Berlin without losing a third of it to intermediaries and waiting a week to find out if it arrived.
What I am taking with me
Three things.
- The barrier was smaller than I thought. I assumed Bitcoin development required years of cryptography background. It requires a terminal, patience, and a willingness to be confused for a few hours. Everything else is learnable.
- Almost every rule exists because of a specific attack. Coinbase maturity exists because of chain reorganisations. SegWit exists because of transaction malleability. Lightning only became possible after SegWit fixed it. Bitcoin is not a pile of arbitrary decisions. It is a long list of answers to hard problems, and once you see that, the whole thing becomes learnable rather than intimidating.
- Custody is a choice, and it is usually made badly. The mining pool we used paid every participant directly inside the block reward itself, so it never held anyone's money and could not refuse to pay. Most pools do not work that way. Most of the horror stories in this industry come down to somebody holding something they did not need to hold.
What is next
TipJar, properly. The off-ramp, working. More writing, because there is very little hands-on Bitcoin development content aimed at African beginners and I would like to fix that.
And more buttons. If a Lightning donation option makes sense for Women in Tech Malawi, it makes sense for a lot of organisations doing similar work across the continent, and most of them do not know it is an option yet.
Thank you to Africa Free Routing and all the sponsors for running the week, to the instructor who answered the same question four different ways until it landed, and to the room, who debugged each other's Docker containers with more patience than anyone was paid for.
I came in able to spell Bitcoin. I am leaving with something in production.
If you are curious about the technical side, I have been writing detailed beginner guides from this bootcamp. Start with the first one on running your own node.
Building something with Lightning, or want to add it to your organisation's site? I would like to hear about it